From 1b332fbad805400b5d7a69d52e5de0685fed885d Mon Sep 17 00:00:00 2001 From: xiebing Date: Thu, 25 Dec 2025 15:09:09 +0800 Subject: [PATCH] =?UTF-8?q?feta=20:=20=E6=96=B0=E5=A2=9E=E5=AE=9E=E5=90=8D?= =?UTF-8?q?=E8=AE=A4=E8=AF=81=E5=88=A4=E6=96=AD=20=E5=85=AC=E5=8F=B8/?= =?UTF-8?q?=E5=B2=97=E4=BD=8D=E6=94=B6=E8=97=8F=20=20=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E8=AE=A4=E8=AF=81=20=E6=8B=9B=E8=81=98=E4=BC=9A=E9=A2=84?= =?UTF-8?q?=E7=BA=A6=20=20=20=20=20=20=20=20=E9=9C=80=E8=A6=81=E8=AE=A4?= =?UTF-8?q?=E8=AF=81=20=E5=A4=96=E9=83=A8=E5=B2=97=E4=BD=8D=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=20=20=20=20=E9=9C=80=E8=A6=81=E8=AE=A4=E8=AF=81=20?= =?UTF-8?q?=E5=86=85=E9=83=A8=E5=B2=97=E4=BD=8D=E7=94=B3=E8=AF=B7=20=20=20?= =?UTF-8?q?=20=E4=B8=8D=E9=9C=80=E8=A6=81=E8=AE=A4=E8=AF=81=20=E6=88=91?= =?UTF-8?q?=E7=9A=84=E9=A1=B5=E9=9D=A2-=E8=AE=A4=E8=AF=81=E7=8A=B6?= =?UTF-8?q?=E6=80=81=20=E6=94=B9=E4=B8=BA=E7=9C=9F=E5=AE=9E=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packageA/pages/UnitDetails/UnitDetails.vue | 6 +- packageA/pages/exhibitors/exhibitors.vue | 5 + packageA/pages/post/post.vue | 12 +- pages.json | 9 +- pages/auth/index.vue | 729 +++++++++++++++++++++ pages/mine/mine.vue | 16 +- static/icon/input-delete.png | Bin 0 -> 6580 bytes stores/useUserStore.js | 22 +- utils/request.js | 1 + 9 files changed, 785 insertions(+), 15 deletions(-) create mode 100644 pages/auth/index.vue create mode 100644 static/icon/input-delete.png diff --git a/packageA/pages/UnitDetails/UnitDetails.vue b/packageA/pages/UnitDetails/UnitDetails.vue index 86b22b8..e477161 100644 --- a/packageA/pages/UnitDetails/UnitDetails.vue +++ b/packageA/pages/UnitDetails/UnitDetails.vue @@ -75,8 +75,9 @@ import { reactive, inject, watch, ref, onMounted, computed } from 'vue'; import { onLoad, onShow } from '@dcloudio/uni-app'; import dictLabel from '@/components/dict-Label/dict-Label.vue'; import { storeToRefs } from 'pinia'; -const { isMiniProgram } = storeToRefs(useUserStore()); import useUserStore from '@/stores/useUserStore'; +const { isMiniProgram } = storeToRefs(useUserStore()); +const { checkAuth } = useUserStore(); import useLocationStore from '@/stores/useLocationStore'; const { longitudeVal, latitudeVal } = storeToRefs(useLocationStore()); const { $api, navTo, vacanciesTo, navBack } = inject('globalFunction'); @@ -111,6 +112,9 @@ onLoad((options) => { }); function companyCollection() { + if (!checkAuth()) { + return + } if (dataType.value === 2) { // 第三方数据收藏逻辑 const id = companyInfo.value.id; diff --git a/packageA/pages/exhibitors/exhibitors.vue b/packageA/pages/exhibitors/exhibitors.vue index ca6fce1..69ba464 100644 --- a/packageA/pages/exhibitors/exhibitors.vue +++ b/packageA/pages/exhibitors/exhibitors.vue @@ -112,6 +112,7 @@ import { storeToRefs } from 'pinia'; const { longitudeVal, latitudeVal } = storeToRefs(useLocationStore()); import useUserStore from '@/stores/useUserStore'; const { isMiniProgram } = storeToRefs(useUserStore()); +const { checkAuth } = useUserStore(); import { playTextDirectly } from '@/hook/useTTSPlayer-all-in-one'; const isExpanded = ref(false); @@ -204,6 +205,10 @@ function expand() { // 取消/预约招聘会 function applyExhibitors() { + if (!checkAuth()) { + return + } + const fairId = fairInfo.value.zphID; if (fairInfo.value.isCollection) { $api.createRequest(`/app/fair/collection/${fairId}`, {}, 'DELETE').then((resData) => { diff --git a/packageA/pages/post/post.vue b/packageA/pages/post/post.vue index fe3e575..66806d3 100644 --- a/packageA/pages/post/post.vue +++ b/packageA/pages/post/post.vue @@ -187,6 +187,7 @@ import { storeToRefs } from 'pinia'; import useUserStore from '@/stores/useUserStore'; import { playTextDirectly } from '@/hook/useTTSPlayer-all-in-one'; const { isMiniProgram, hasLogin } = storeToRefs(useUserStore()); +const { checkAuth } = useUserStore(); const { $api, navTo, getLenPx, parseQueryParams, navBack, isEmptyObject } = inject('globalFunction'); import config from '@/config.js'; @@ -322,10 +323,14 @@ function getCompetivetuveness(jobId) { } } -// 申请岗位 +// 申请岗位 第三方需要认证 function jobApply() { if (dataType.value === 2) { // 第三方数据申请逻辑 + + if (!checkAuth()) { + return + } const params = { jobid: jobInfo.value.id, jobname: jobInfo.value.gwmc, @@ -359,8 +364,11 @@ function jobApply() { } } -// 取消/收藏岗位 +// 取消/收藏岗位 都需要认证 function jobCollection() { + if (!checkAuth()) { + return + } if (dataType.value === 2) { // 第三方数据收藏逻辑 const id = jobInfo.value.id; diff --git a/pages.json b/pages.json index cd14c31..a2857eb 100644 --- a/pages.json +++ b/pages.json @@ -63,7 +63,14 @@ { "path": "pages/search/search", "style": { - "navigationBarTitleText": "", + "navigationBarTitleText": "搜索", + "navigationStyle": "custom" + } + }, + { + "path": "pages/auth/index", + "style": { + "navigationBarTitleText": "实名认证", "navigationStyle": "custom" } } diff --git a/pages/auth/index.vue b/pages/auth/index.vue new file mode 100644 index 0000000..3b8afd0 --- /dev/null +++ b/pages/auth/index.vue @@ -0,0 +1,729 @@ + + + + + + + \ No newline at end of file diff --git a/pages/mine/mine.vue b/pages/mine/mine.vue index de85063..a9d7d03 100644 --- a/pages/mine/mine.vue +++ b/pages/mine/mine.vue @@ -49,12 +49,12 @@ 服务专区 - + 实名认证 - 已认证 + {{isAuth ? '已认证' : '未认证'}} @@ -112,7 +112,7 @@ const { $api, navTo } = inject('globalFunction'); import useUserStore from '@/stores/useUserStore'; const popup = ref(null); -const { userInfo, Completion, counts, isMachineEnv } = storeToRefs(useUserStore()); +const { userInfo, Completion, counts, isMachineEnv, isAuth } = storeToRefs(useUserStore()); import useScreenStore from '@/stores/useScreenStore'; const screenStore = useScreenStore(); @@ -144,12 +144,10 @@ function confirm() { const isAbove90 = (percent) => parseFloat(percent) < 90; -function selectFile() { - // FileUploader.showMenuAndUpload({ - // success: function (res) { - // alert('上传成功: ' + JSON.stringify(res)); - // }, - // }); +function goAuth() { + if(!isAuth.value){ + navTo('/pages/auth/index') + } } function chooseFileUploadTest(pam) {} diff --git a/static/icon/input-delete.png b/static/icon/input-delete.png new file mode 100644 index 0000000000000000000000000000000000000000..dcb2276275dcf89862459da5b2c8bfc9532a427a GIT binary patch literal 6580 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 { const counts = ref({}) const isMiniProgram = ref(false) const isMachineEnv = ref(false) + const isAuth = ref(false) //是否认证(身份证+手机号) const login = (value) => { hasLogin.value = true; @@ -135,6 +138,19 @@ const useUserStore = defineStore("user", () => { userInfo.value = values.data; // role.value = values.role; hasLogin.value = true; + isAuth.value = values.data?.isCert ?? false + } + + const checkAuth = () => { + if (!hasLogin.value) { + logOut() + return false //验证失败 + } + if (hasLogin.value && !isAuth.value) { + navTo('/pages/auth/index') + return false //验证失败 + } + return true // 验证通过 } @@ -186,7 +202,9 @@ const useUserStore = defineStore("user", () => { isMiniProgram, changMiniProgramAppStatus, changMachineEnv, - isMachineEnv + isMachineEnv, + isAuth, + checkAuth } }, { unistorage: true, diff --git a/utils/request.js b/utils/request.js index c354acb..27261da 100644 --- a/utils/request.js +++ b/utils/request.js @@ -137,6 +137,7 @@ export function createRequest(url, data = {}, method = 'GET', loading = false, h } = resData.data if (code === 200) { resolve(resData.data) + console.log(resData.data.data,'接口解密') return } if (msg) {