From 77dfab84f1d0351591d71b410056da232f4f4bd7 Mon Sep 17 00:00:00 2001
From: Apcallover <1503963513@qq.com>
Date: Tue, 16 Dec 2025 15:36:42 +0800
Subject: [PATCH] =?UTF-8?q?flat:=20=E6=9A=82=E5=AD=98=EF=BC=8C=E6=96=B0?=
=?UTF-8?q?=E5=A2=9E=E4=B8=80=E4=BD=93=E6=9C=BAsdk=EF=BC=8C=E5=92=8C?=
=?UTF-8?q?=E4=B8=80=E4=BD=93=E6=9C=BA=E7=8E=AF=E5=A2=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
App.vue | 50 +++++++-------
config.js | 7 +-
hook/piper-sdk.js | 4 +-
index.html | 8 ++-
packageA/pages/post/post.vue | 17 +++--
pages.json | 2 +-
pages/index/components/index-refactor.vue | 78 +++++++++++++++++++---
pages/mine/mine.vue | 16 ++---
static/font/DIN-Medium.woff2 | Bin 0 -> 14940 bytes
static/js/jsbridge.js | 69 +++++++++++++++++++
stores/useUserStore.js | 23 ++++++-
11 files changed, 214 insertions(+), 60 deletions(-)
create mode 100644 static/font/DIN-Medium.woff2
create mode 100644 static/js/jsbridge.js
diff --git a/App.vue b/App.vue
index 3a24242..dac90e1 100644
--- a/App.vue
+++ b/App.vue
@@ -11,26 +11,32 @@ const appword = 'aKd20dbGdFvmuwrt'; // 固定值
onLaunch((options) => {
useDictStore().getDictData();
- try {
+ if (lightAppJssdk.user) {
+ console.warn('爱山东环境');
getUserInfo();
useUserStore().changMiniProgramAppStatus(false);
- } catch {
- console.log('不是爱山东平台,使用测试登陆');
+ return;
+ }
+ if (window.hh) {
+ console.warn('求职一体机环境');
+ useUserStore().logOutApp();
useUserStore().changMiniProgramAppStatus(true);
- useUserStore().initSeesionId(); //更新
- let token = uni.getStorageSync('token') || ''; // 同步获取 缓存信息
- if (token) {
- useUserStore()
- .loginSetToken(token)
- .then(() => {
- $api.msg('登录成功');
- });
- } else {
- safeReLaunch('/pages/login/login');
- // uni.redirectTo({
- // url: '/pages/login/login',
- // });
- }
+ useUserStore().changMachineEnv(true);
+ return;
+ }
+ // 正式上线去除此方法
+ console.warn('浏览器环境');
+ useUserStore().changMiniProgramAppStatus(true);
+ useUserStore().initSeesionId(); //更新
+ let token = uni.getStorageSync('token') || '';
+ if (token) {
+ useUserStore()
+ .loginSetToken(token)
+ .then(() => {
+ $api.msg('登录成功');
+ });
+ } else {
+ safeReLaunch('/pages/login/login');
}
});
@@ -110,15 +116,9 @@ function loginCallback(userInfo) {
.then((resume) => {
if (resume.data.jobTitleId) {
useUserStore().initSeesionId();
- // uni.reLaunch({
- // url: '/pages/index/index',
- // });
safeReLaunch('/pages/index/index');
} else {
safeReLaunch('/pages/login/login');
- // uni.redirectTo({
- // url: '/pages/login/login',
- // });
}
});
});
@@ -130,7 +130,6 @@ function loginCallback(userInfo) {
@import '@/common/animation.css';
@import '@/common/common.css';
-
/* 修改pages tabbar样式 H5才有效 */
.uni-tabbar .uni-tabbar__item:nth-child(4) .uni-tabbar__bd .uni-tabbar__icon {
width: 108rpx !important;
@@ -163,7 +162,6 @@ uni-modal,
z-index: 998;
}
-
@font-face {
font-family: DingTalk JinBuTi;
src: url('/static/font/DingTalk JinBuTi_min.woff2') format('woff2');
@@ -184,7 +182,7 @@ uni-modal,
@font-face {
font-family: DIN-Medium;
- src: url('https://qd.zhaopinzao8dian.com/file/csn/DIN-Medium.woff2') format('woff2');
+ src: url('./static/font/DIN-Medium.woff2') format('woff2');
font-display: swap;
}
diff --git a/config.js b/config.js
index 5da92a2..502066f 100644
--- a/config.js
+++ b/config.js
@@ -4,11 +4,12 @@ export default {
// baseUrl: 'http://192.168.3.29:8081',
// baseUrl: 'http://10.213.6.207:19010/api',
// 语音转文字
- // vioceBaseURl: 'wss://qd.zhaopinzao8dian.com/api/system/asr/connect', // 自定义
- vioceBaseURl: 'wss://fw.rc.qingdao.gov.cn/rgpp-api/api/system/asr/connect', // 内网
+ vioceBaseURl: 'wss://qd.zhaopinzao8dian.com/api/app/asr/connect', // 自定义
+ // vioceBaseURl: 'wss://fw.rc.qingdao.gov.cn/rgpp-api/api/app/asr/connect', // 内网
// 语音合成
- speechSynthesis: 'wss://qd.zhaopinzao8dian.com/api/speech-synthesis',
+ // speechSynthesis: 'wss://qd.zhaopinzao8dian.com/api/speech-synthesis',
speechSynthesis2: 'wss://resource.zhuoson.com/synthesis/', //直接替换即可
+ // speechSynthesis2: 'http://39.98.44.136:19527', //直接替换即可
// indexedDB
DBversion: 3,
// 只使用本地缓寸的数据
diff --git a/hook/piper-sdk.js b/hook/piper-sdk.js
index 17ab55a..e8921a3 100644
--- a/hook/piper-sdk.js
+++ b/hook/piper-sdk.js
@@ -8,11 +8,13 @@
export class PiperTTS {
constructor(config = {}) {
this.baseUrl = config.baseUrl || 'http://localhost:5001';
+ this.wsUrl = config.wsUrl || '/ws/synthesize'
this.audioCtx = config.audioCtx || new(window.AudioContext || window.webkitAudioContext)();
this.onStatus = config.onStatus || ((msg, type) => console.log(`[Piper] ${msg}`));
this.onStart = config.onStart || (() => {});
this.onEnd = config.onEnd || (() => {});
+
// 内部状态
this.ws = null;
this.nextTime = 0; // 下一段音频的预定播放时间
@@ -56,7 +58,7 @@ export class PiperTTS {
this.onStatus('正在建立连接...', 'processing');
try {
- const wsUrl = this.baseUrl.replace(/^http/, 'ws') + '/ws/synthesize';
+ const wsUrl = this.baseUrl.replace(/^http/, 'ws') + this.wsUrl;
this.ws = new WebSocket(wsUrl);
this.ws.binaryType = 'arraybuffer';
diff --git a/index.html b/index.html
index 0ea9071..0760052 100644
--- a/index.html
+++ b/index.html
@@ -22,17 +22,19 @@
-->
-
+
+
+
+
-
diff --git a/packageA/pages/post/post.vue b/packageA/pages/post/post.vue
index 86d82cb..10f5f48 100644
--- a/packageA/pages/post/post.vue
+++ b/packageA/pages/post/post.vue
@@ -168,7 +168,7 @@
立即前往
- 立即投递
+ 立即前往
@@ -185,7 +185,7 @@ import dictLabel from '@/components/dict-Label/dict-Label.vue';
import RadarMap from './component/radarMap.vue';
import { storeToRefs } from 'pinia';
import useUserStore from '@/stores/useUserStore';
-const { isMiniProgram } = storeToRefs(useUserStore());
+const { isMiniProgram, hasLogin } = storeToRefs(useUserStore());
const { $api, navTo, getLenPx, parseQueryParams, navBack, isEmptyObject } = inject('globalFunction');
import config from '@/config.js';
@@ -252,7 +252,10 @@ function getDetail(jobId) {
const { latitude, longitude, companyName, companyId } = resData.data;
jobInfo.value = resData.data;
getCompanyIsAJobs(companyId);
- getCompetivetuveness(jobId);
+
+ if (hasLogin.value) {
+ getCompetivetuveness(jobId);
+ }
if (latitude && longitude) {
initMapCovers(latitude, longitude, companyName);
@@ -285,12 +288,12 @@ function getCompanyIsAJobs(...args) {
if (dataType.value === 2) {
// 第三方数据获取公司职位数量
const [gsID, gsmc, zphID] = args;
- const params={
+ const params = {
gsID,
gsmc,
- zphID
- }
- $api.createRequest(`/app/internal/jobThirdPart`,params).then((resData) => {
+ zphID,
+ };
+ $api.createRequest(`/app/internal/jobThirdPart`, params).then((resData) => {
companyCount.value = resData.total;
});
} else {
diff --git a/pages.json b/pages.json
index bab627a..cd14c31 100644
--- a/pages.json
+++ b/pages.json
@@ -281,7 +281,7 @@
// "enablePullDownRefresh": false,
// "navigationStyle": "custom",
"rpxCalcBaseDeviceWidth": 375,
- "rpxCalcMaxDeviceWidth": 1200,
+ "rpxCalcMaxDeviceWidth": 960,
"rpxCalcIncludeWidth": 750
},
"uniIdRouter": {}
diff --git a/pages/index/components/index-refactor.vue b/pages/index/components/index-refactor.vue
index d50b1b8..da8904d 100644
--- a/pages/index/components/index-refactor.vue
+++ b/pages/index/components/index-refactor.vue
@@ -259,7 +259,7 @@ const { $api, navTo, vacanciesTo, formatTotal, throttle } = inject('globalFuncti
import { onLoad, onShow } from '@dcloudio/uni-app';
import { storeToRefs } from 'pinia';
import useUserStore from '@/stores/useUserStore';
-const { userInfo } = storeToRefs(useUserStore());
+const { userInfo, hasLogin } = storeToRefs(useUserStore());
import useDictStore from '@/stores/useDictStore';
const { getTransformChildren, oneDictData } = useDictStore();
import useLocationStore from '@/stores/useLocationStore';
@@ -316,6 +316,49 @@ const isLoaded = ref(false);
const colors = ['#0069FE', '#FF9400', '#FF6969', '#21EA85', '#87E2EC'];
+const occupations = [
+ '律师',
+ '工程师',
+ '医生',
+ '教师',
+ '设计师',
+ '程序员',
+ '会计师',
+ '建筑师',
+ '护士',
+ '销售',
+ '经理',
+ '顾问',
+ '分析师',
+ '研究员',
+ '编辑',
+ '记者',
+ '摄影师',
+ '厨师',
+ '司机',
+ '保安',
+ '客服',
+ '行政',
+ '人事',
+ '市场',
+ '运营',
+ '产品',
+ '测试',
+ '运维',
+ '前端',
+ '后端',
+ '全栈',
+ '数据',
+ '策划',
+ '导演',
+ '演员',
+ '歌手',
+ '作家',
+ '画家',
+ '翻译',
+ '导游',
+];
+
onMounted(() => {
let firstEntry = uni.getStorageSync('firstEntry') === false ? false : true; // 默认未读
maskFirstEntry.value = firstEntry;
@@ -323,17 +366,34 @@ onMounted(() => {
});
async function getMatchTags() {
- try {
- matchLoading.value = true;
- const { data } = await $api.createRequest('/app/user/getJobAdviceByResume');
- matchTags.value = data;
- matchLoading.value = false;
- } catch (err) {
- console.err('简历匹配职位获取失败');
- } finally {
+ if (hasLogin.value) {
+ try {
+ matchLoading.value = true;
+ const { data } = await $api.createRequest('/app/user/getJobAdviceByResume');
+ matchTags.value = data;
+ matchLoading.value = false;
+ } catch (err) {
+ console.error('简历匹配职位获取失败');
+ }
+ } else {
+ const vals = getRandomStrings(occupations).map((text) => ({
+ job_name: text,
+ score: 0,
+ }));
+ matchTags.value = vals;
}
}
+function getRandomStrings(arr, count = 10) {
+ const size = Math.min(arr.length, count);
+ const shuffled = [...arr];
+ for (let i = shuffled.length - 1; i > 0; i--) {
+ const j = Math.floor(Math.random() * (i + 1));
+ [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]];
+ }
+ return shuffled.slice(0, size);
+}
+
const checkStickyStatus = (e) => {
scrollTop.value = e.detail.scrollTop;
nextTick(() => {
diff --git a/pages/mine/mine.vue b/pages/mine/mine.vue
index 36e8f70..eb03b2a 100644
--- a/pages/mine/mine.vue
+++ b/pages/mine/mine.vue
@@ -82,7 +82,7 @@
已开启
-
+ 退出登录
screenStore.isWideScreen,
(newVal) => {
- showTabbar.value = newVal
+ showTabbar.value = newVal;
},
{ immediate: true }
-)
-
-
+);
function logOut() {
popup.value.open();
diff --git a/static/font/DIN-Medium.woff2 b/static/font/DIN-Medium.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..fb53b4701d1655141a208254a20cd880ed4dbc38
GIT binary patch
literal 14940
zcmV-iI-|vRPew8T0RR9106JU%4gdfE0CC&^06GHz0RR9100000000000000000000
z00006P8Bu)hJFZw8VQ3~3W2;lfuc1Fhg<*wHUcCAhgbw41%gutgboZO8~D@$w;~{rwsFR`NOGu
zF~${gkjtsC6{eP(x+-uXr9Z_7)wnPfj0`5J%uS*X7v=T|3||b71nrTImMi>Uo?7|B
z_bXy+xww;3R7e_D?z%YpCVENUdxXY5$u)pZy=O2LndH*?IwezOWvbDR@_%N}TfF8W
zZ#%GoUJ1e`y7%&T4ba@W=LNA)Bt=ltK!lCxu{CRIEQ>K<$rv>lBXWdfiuOO#R|FF*
zO5MM{Z-52whxJwd)R=n?5(zJDwGyiMOqhrY{=aKlK=@Y#H^8JhU7)yTWnuOvr_ZT>
zC+AT4RSt*;_{+V!2BynP11uejGzu)jXbmjTF)iJo{lh#b7tW;sW`DPLiMJNtI?2oI
zKXuX~Bnn|P(j(D0YR7-lDc|37XILY#NwRFou|p2vL!e~I4{$dNSoFVWn*V=x`6ub*
zHl?+Sych&PxreUK>r=G!;DmdferW(1Gb4dn%6^MVNc@m-NV|KHFb%Z+Z`+Gi3RTF#
zp}vEr8VZQde3W(WFm=BD)!zyr=I^*rmrD|&b+dCw!rdx1GR
zV2n8lE{z%T=+gLJ!?XyZ_H|*2$*)!B-Tc)zop(gc$d!{2xp+I0OU^4GWKmjEatljf;mQKw)qM5{1SjVsUr^kwi{PPDxFp
zq*G~h29w3+aCv-zP$ZT}Gh~_atn3_xQl-{tb9H%uKEI%_sMt_aYAiFAS5#J2*VNY4
zH<%lnnp+OFwzYS3c6Imk_Vo`iRf9vrBcp&~2&jP_BLD!9Edj^o{Nx3|2khTnJv1|W
z{l?8(x98>;7MFn19;lw~1K`H}(c>pimsg%WfAR9w>e{!!>iPW-!2b6R0QgJ?(6I{u
zqipl3!pZ+2D!&f(aemsxPMtPwto#C|7>bOz7N_a4?kHbI&DB|T{r!KC#O&Z
z+0B~|Uw-@r*kiAK_6u}Ckb{DS009dXCR~I_QKH3&6(=4<0w@?b1SAwRj6_&CcmzZw
zWJ!{xNR@^n9Tg270}~4y2Nw^YfRKoogj5EZOmbPW+M#DYE+S6@s)jkjN+=NA00I~E!VuoEj>IIagMX
zaf4*IC(u=kbtHi8dRX{Ce%*w7QeSN?H)}Klpt4aRd4wSH4)DJ5T+9X6!e2Nppne*N
z9(Q#+sTHKxkaLMut%(8+)bCF*)LS%}Rrte>{mYU+S>od^lYYXc4J0@QIbfU2)jUPP
zSVO8H8)FD4ZYtU@Uh6{2cWGwCbVD~kra(M#Is>$~avq%W!DLNnt1>hR7K$yr@6o2xQ2JxF&3v73juiW{;UuDON0Ospt;bebo@Uj$hO9s5b0xal-?mv(64
z;JlUANZE!-+Sh3vRjW`bIft+{995IFPRrd&bS`p#C=aJ057TIRo)!5~m8Y)C+SsaJ
zjA9wWG{iwVH>q~Y*xITMqw3-$gw}gGmr}cGJeER7B&}|;KFLIw(~OlWPpTxq@mY{&
zEK`})Ynb@QtTCd@x*l+cxII)XQWAk=@{l|Tu7-OuwwFc9(;^JtvM1FdVea41TP}fm
z#ePyBs&4zl_SG%rBrvb{%jTbYp?!y-6Qb#x7wk=`s@6*bPEv3qE?Y^08;Sg#V$TWF
z>VAvq|Dm?JhfJQnttmyCP#fUd9Sle}s3d}aX|apyKnJtRD{`?WGluE6sQiY;gWl_10=
zCN$@X4d~n