diff --git a/pages/home/home.vue b/pages/home/home.vue index 5a3ba8f..453d470 100644 --- a/pages/home/home.vue +++ b/pages/home/home.vue @@ -53,14 +53,16 @@ - + - {{ userInfo.id_type === -1 ? '资质认证中' : '资质未认证' }} + + {{ isUnderReview ? '资质认证中' : '资质未认证' }} 请完成资质认证 - - {{ userInfo.id_type === -1 ? '查看进度' : '去认证' }} + + + {{ isUnderReview ? '查看进度' : '去认证' }} @@ -81,14 +83,14 @@ - + {{ item.name }} - + 接单管理 @@ -113,7 +115,7 @@ - + 当日实时数据 @@ -247,14 +249,30 @@ export default { }; }, computed: { + // 依靠后端实际返回的资料详情来判断是否真的提交过申请,而不是无脑信 id_type: -1 + isUnderReview() { + if (!this.isLogin) return false; + // 只要拿到了具体的入驻详情数据对象(比如填了各种地址、执照等,内容肯定不为空),就说明填过表了 + if (this.authDetails && Object.keys(this.authDetails).length > 0) { + // 如果后端是用特定的状态值判断,比如 this.authDetails.state === 0,你可以自己加 && 后面 + return true; + } + return false; // 啥也没返回,说明只是刚注册没填资料 + }, + // 判断是否具备接单的大前提条件 canOpenStore() { return this.hasBusinessTime && this.hasServiceSkill && this.isCertified; }, // 修复:使用 authDetails 里的真实接口返回字段判定服务技能 hasServiceSkill() { - // 只要 authDetails 里拿到了后端的 servers_kill 且该数组有内容,就说明配置过了 - return this.authDetails && Array.isArray(this.authDetails.servers_kill) && this.authDetails.servers_kill.length > 0; + // 检查 userInfo 中是否有值 + const fromUser = this.userInfo && Array.isArray(this.userInfo.servers_kill) && this.userInfo.servers_kill.length > 0; + // 检查 authDetails 中是否有值 + const fromAuth = this.authDetails && Array.isArray(this.authDetails.servers_kill) && this.authDetails.servers_kill.length > 0; + + // 只要有一边配了,就算已配置 + return this.isLogin && (fromUser || fromAuth); }, // 状态显示完全由计算属性控制,去除了手动修改可能导致的冲突 @@ -353,9 +371,51 @@ export default { this.showSetupModal = false; uni.navigateTo({ url: '/pages/shop/service-skills' }); }, + + // 专门给【提示弹窗】点击用的 (查看进度 / 去认证) goToAuth() { + // 1. 点击后先关闭提示弹窗 this.showSetupModal = false; - uni.navigateTo({ url: '/pages/ruzhu/ruzhu' }); + + // 2. 根据咱们新的严谨判断,决定它是真提交了还是纯没填 + if (this.isUnderReview) { + // === 查看进度 === + uni.navigateTo({ + url: '/pages/ruzhu/submitres' + }); + } else { + // === 去认证 / 被驳回重新认证 === + this.navigateToForm(); + } + }, + + // 专门给【横幅】点击用的 (去入驻 / 去认证) + goToSettle() { + if (!this.isSettled) { + // 完全没入驻过(新手),从头开始 + uni.navigateTo({ url: '/pages/ruzhu/ruzhu' }); + } else if (this.isUnderReview) { + // 如果在横幅里处于审核中,也送去进度页 + uni.navigateTo({ url: '/pages/ruzhu/submitres' }); + } else { + // 已经开启入驻但没完成表单,继续去填表! + this.navigateToForm(); + } + }, + + // 提取公共的【去填表】路由分发大脑 + navigateToForm() { + if (this.isSettled) { + // 已经开启入驻(老手),直接空降到 ruzhu 的最后一个流程(第3步:门店信息) + uni.navigateTo({ + url: '/pages/ruzhu/ruzhu?step=3' + }); + } else { + // 完全没入驻过(纯新手),老老实实从第 0 步开始 + uni.navigateTo({ + url: '/pages/ruzhu/ruzhu' + }); + } }, goToBrandList() { @@ -399,12 +459,14 @@ export default { uni.setStorageSync("sjId", result.data.id); this.sjId = result.data.id; - // 如果在系统里(即使没通过认证),检查一下条件 - if (this.isSettled) { + // 优化 1:只有完全通过认证,才去后台查单量和收益数据 + if (this.isCertified) { this.fetchOrderNum(); this.fetchRealTimeData(); + } - // 必须先去拉取认证详情(包含服务技能配置),再判断弹窗逻辑 + // 优化 2:只要开启了入驻流程(哪怕只是在“去认证”阶段),依然需要拉详情来判断有没有补全三大件 + if (this.isSettled) { this.fetchAuthDetails(); } } @@ -522,10 +584,6 @@ export default { goToNoticeList() { uni.navigateTo({ url: '/pages/notice/notice_list' }); }, - // 跳转:去入驻 - goToSettle() { - uni.navigateTo({ url: '/pages/ruzhu/ruzhu' }); - }, // 营业中 / 休息中 按钮逻辑判断 toggleStatus() { @@ -647,7 +705,7 @@ export default { position: relative; z-index: 1; flex: 1; - padding: 50rpx 40rpx; + padding: 24rpx 40rpx; .modal-subtitle { font-size: 28rpx; @@ -668,12 +726,14 @@ export default { .item-left { display: flex; - align-items: center; + align-items: flex-start; .item-icon { - width: 36rpx; - height: 36rpx; + width: 32rpx; + height: 32rpx; margin-right: 16rpx; + flex-shrink: 0; /* 防止图标被挤压变形 */ + margin-top: 6rpx; } .item-texts { @@ -685,6 +745,11 @@ export default { color: #333333; font-weight: 500; margin-bottom: 8rpx; + + /* 增加蓝色字体样式 */ + &.blue-text { + color: #2b85e4; + } } .item-desc { @@ -697,9 +762,12 @@ export default { .item-right { font-size: 26rpx; font-weight: 400; + margin-top: -45rpx; &.orange { color: #FF7B00; } &.grey { color: #999999; } + /* 增加浅绿色样式 */ + &.light-green { color: #5CAC81; } } } }