入驻步骤逻辑
This commit is contained in:
parent
92637b114f
commit
d6bae3034b
|
|
@ -53,14 +53,16 @@
|
|||
|
||||
<view class="missing-item" v-if="!isCertified">
|
||||
<view class="item-left">
|
||||
<image class="item-icon" :src="userInfo.id_type === -1 ? 'https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/25c444be-a66e-45d6-b50d-922149ff059f.png' : 'https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/21b26b44-5e36-4291-8900-705a3d5bfa90.png'"></image>
|
||||
<image class="item-icon" :src="isUnderReview ? 'https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/25c444be-a66e-45d6-b50d-922149ff059f.png' : 'https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/21b26b44-5e36-4291-8900-705a3d5bfa90.png'"></image>
|
||||
<view class="item-texts">
|
||||
<text class="item-title">{{ userInfo.id_type === -1 ? '资质认证中' : '资质未认证' }}</text>
|
||||
<!-- 只有在审核中时赋予蓝色样式 blue-text -->
|
||||
<text class="item-title" :class="{'blue-text': isUnderReview}">{{ isUnderReview ? '资质认证中' : '资质未认证' }}</text>
|
||||
<text class="item-desc">请完成资质认证</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item-right" :class="userInfo.id_type === -1 ? 'grey' : 'orange'" @tap="goToAuth">
|
||||
{{ userInfo.id_type === -1 ? '查看进度' : '去认证' }}
|
||||
<!-- 只有在审核中时为灰色,其余未认证状态为浅绿色 light-green -->
|
||||
<view class="item-right" :class="isUnderReview ? 'grey' : 'light-green'" @tap="goToAuth">
|
||||
{{ isUnderReview ? '查看进度' : '去认证' }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -81,14 +83,14 @@
|
|||
</view>
|
||||
</view>
|
||||
|
||||
<view class="quick-actions card-box" v-if="isLogin && isSettled">
|
||||
<view class="quick-actions card-box" v-if="isLogin && isCertified">
|
||||
<view class="action-item" v-for="(item, index) in quickActions" :key="index" @tap="handleQuickAction(item)">
|
||||
<image class="action-icon" :src="item.icon"></image>
|
||||
<text class="action-text">{{ item.name }}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="order-stats-basic card-box" v-if="isLogin && isSettled">
|
||||
<view class="order-stats-basic card-box" v-if="isLogin && isCertified">
|
||||
<view class="card-header">
|
||||
<view class="header-left">
|
||||
<text class="title">接单管理</text>
|
||||
|
|
@ -113,7 +115,7 @@
|
|||
</view>
|
||||
</view>
|
||||
|
||||
<view class="order-stats-detail card-box" v-if="isLogin && isSettled">
|
||||
<view class="order-stats-detail card-box" v-if="isLogin && isCertified">
|
||||
<view class="card-header">
|
||||
<view class="header-left">
|
||||
<text class="title">当日实时数据</text>
|
||||
|
|
@ -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;
|
||||
|
||||
// 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; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue