修复若干bug
This commit is contained in:
parent
5c42041cbd
commit
adf6cea0b7
|
|
@ -165,7 +165,7 @@
|
|||
v-if="userInfo.credentials_state === 0">
|
||||
</image>
|
||||
<text style="margin-right: 16rpx;"
|
||||
:style="{ color: userInfo.credentials_state === 0 ? '#ec5d57' : userInfo.credentials_state === 1 ? '#e59e45' : '#c9c9c9' }">
|
||||
:style="{ color: userInfo.credentials_state === 0 ? '#ec5d57' : userInfo.credentials_state === 1 ? '#e59e45' : '#389930' }">
|
||||
{{ userInfo.credentials_state === 0 ? '待完善' : userInfo.credentials_state === 1 ? '审核中' :
|
||||
'已认证' }}
|
||||
</text>
|
||||
|
|
@ -640,12 +640,17 @@ export default {
|
|||
url: '/pages/ruzhu/ruzhu'
|
||||
});
|
||||
} else if (idType > 0 && credentialsState === 0) {
|
||||
// 已认证 + 待完善
|
||||
// 已入驻 + 待完善
|
||||
uni.navigateTo({
|
||||
url: '/pages/shop/qualification_sj_change'
|
||||
});
|
||||
} else if (idType > 0 && credentialsState === 1) {
|
||||
// 已认证 + 申请中
|
||||
// 已入驻 + 申请中
|
||||
uni.navigateTo({
|
||||
url: '/pages/shop/qualification_sj_change'
|
||||
});
|
||||
} else if (idType > 0 && credentialsState === 2) {
|
||||
// 已入驻 + 已完善
|
||||
uni.navigateTo({
|
||||
url: '/pages/shop/qualification_sj_change'
|
||||
});
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
<view class="header-section">
|
||||
<view class="user-info" @tap="handleLoginRedirect">
|
||||
<image class="avatar" :src="currentAvatar"></image>
|
||||
<image mode="aspectFill" class="avatar" :src="currentAvatar"></image>
|
||||
<view class="info-text">
|
||||
<view class="name">{{ currentName }}</view>
|
||||
<view class="desc">欢迎登录美融融商家版</view>
|
||||
|
|
@ -117,7 +117,7 @@
|
|||
</image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="stats-content">
|
||||
<view class="stats-content" @tap="goToOrderList">
|
||||
<view class="stat-item">
|
||||
<text class="num">{{ orderBasic.waitStart }}</text>
|
||||
<text class="label">待开始</text>
|
||||
|
|
|
|||
308
pages/my/my.vue
308
pages/my/my.vue
|
|
@ -133,6 +133,70 @@
|
|||
</template>
|
||||
</view>
|
||||
|
||||
<view class="setup-modal-mask" v-if="showSetupModal" catchtouchmove="true">
|
||||
<view class="setup-modal-content">
|
||||
<image class="modal-bg"
|
||||
src="https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/ac2cb4aa-a7c5-4776-98f4-b77e9c0cfa85.png">
|
||||
</image>
|
||||
|
||||
<view class="modal-header">
|
||||
<text>温馨提示</text>
|
||||
</view>
|
||||
|
||||
<view class="modal-body">
|
||||
<text class="modal-subtitle">发布服务请完善以下资料:</text>
|
||||
|
||||
<view class="missing-list">
|
||||
<view class="missing-item" v-if="!hasBusinessTime">
|
||||
<view class="item-left">
|
||||
<image class="item-icon"
|
||||
src="https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/21b26b44-5e36-4291-8900-705a3d5bfa90.png">
|
||||
</image>
|
||||
<view class="item-texts">
|
||||
<text class="item-title">营业时间未配置</text>
|
||||
<text class="item-desc">请完善店铺的营业时间</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item-right orange" @tap="goToBusinessTime">去配置</view>
|
||||
</view>
|
||||
|
||||
<view class="missing-item" v-if="!hasServiceSkill">
|
||||
<view class="item-left">
|
||||
<image class="item-icon"
|
||||
src="https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/21b26b44-5e36-4291-8900-705a3d5bfa90.png">
|
||||
</image>
|
||||
<view class="item-texts">
|
||||
<text class="item-title">服务技能未配置</text>
|
||||
<text class="item-desc">请完善服务技能</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item-right orange" @tap="goToServiceSkill">去配置</view>
|
||||
</view>
|
||||
|
||||
<view class="missing-item" v-if="!isCertified">
|
||||
<view class="item-left">
|
||||
<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" :class="{ 'blue-text': isUnderReview }">{{ isUnderReview ?
|
||||
'资质认证中' : '资质未认证' }}</text>
|
||||
<text class="item-desc">请完成资质认证</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item-right" :class="isUnderReview ? 'grey' : 'light-green'" @tap="goToAuth">
|
||||
{{ isUnderReview ? '查看进度' : '去认证' }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="modal-footer">
|
||||
<view class="btn-know" @tap="closeSetupModal">知道了</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<tipsPopup2 :show="tipShow" @closePopup="closePopup" sureText="确认" @okBtn="okBtn">
|
||||
{{ tipsText }}
|
||||
</tipsPopup2>
|
||||
|
|
@ -325,6 +389,8 @@ export default {
|
|||
inviteList: [],
|
||||
// 账号停用弹窗控制
|
||||
stopUseModal: false,
|
||||
showSetupModal: false,
|
||||
authDetails: null,
|
||||
};
|
||||
},
|
||||
onPageScroll(e) {
|
||||
|
|
@ -343,6 +409,37 @@ export default {
|
|||
return this.userInfo?.is_ok === 2;
|
||||
},
|
||||
|
||||
// 是否认证通过 (根据规则,> 0 说明认证通过了)
|
||||
isCertified() {
|
||||
if (!this.isLogin || typeof this.userInfo.id_type === 'undefined') return false;
|
||||
return this.userInfo.id_type > 0;
|
||||
},
|
||||
// 是否已入驻
|
||||
isSettled() {
|
||||
if (!this.isLogin || typeof this.userInfo.id_type === 'undefined') return false;
|
||||
return this.userInfo.id_type !== 0;
|
||||
},
|
||||
// 是否在审核中
|
||||
isUnderReview() {
|
||||
if (!this.isLogin) return false;
|
||||
if (this.authDetails && Object.keys(this.authDetails).length > 0) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
// 服务技能是否已配置
|
||||
hasServiceSkill() {
|
||||
const fromUser = this.userInfo && Array.isArray(this.userInfo.servers_kill) && this.userInfo.servers_kill.length > 0;
|
||||
const fromAuth = this.authDetails && Array.isArray(this.authDetails.servers_kill) && this.authDetails.servers_kill.length > 0;
|
||||
return this.isLogin && (fromUser || fromAuth);
|
||||
},
|
||||
// 营业时间是否已配置
|
||||
hasBusinessTime() {
|
||||
const timeFromUser = this.userInfo && this.userInfo.business_time;
|
||||
const timeFromAuth = this.authDetails && this.authDetails.business_time;
|
||||
return this.isLogin && !!(timeFromUser || timeFromAuth);
|
||||
},
|
||||
|
||||
currentCardList() {
|
||||
return this.cardList
|
||||
.filter((card) => this.checkShow(card))
|
||||
|
|
@ -671,9 +768,24 @@ export default {
|
|||
"https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/4b558456-2e38-4185-8713-d1f0e6645820.png";
|
||||
}
|
||||
}
|
||||
// 获取入驻详情用于判断认证状态
|
||||
if (this.isSettled) {
|
||||
this.fetchAuthDetails();
|
||||
}
|
||||
});
|
||||
this.getInviteList();
|
||||
},
|
||||
// 获取入驻详情
|
||||
fetchAuthDetails() {
|
||||
request.post("/sj/userSjAuth/details", {
|
||||
type: 1,
|
||||
id_type: '1'
|
||||
}).then(res => {
|
||||
if (res.code == 200 && res.data) {
|
||||
this.authDetails = res.data;
|
||||
}
|
||||
});
|
||||
},
|
||||
async goLogin() {
|
||||
// 添加访问检查
|
||||
if (this.isAccountDisabled) {
|
||||
|
|
@ -761,11 +873,8 @@ export default {
|
|||
url: `${item.path}?type=${item.type}`,
|
||||
});
|
||||
} else {
|
||||
if (item.go_id_type == 1 && this.userInfo?.id_type == 0) {
|
||||
uni.showToast({
|
||||
title: `您暂未入驻,无法使用${item.title}!`,
|
||||
icon: "none",
|
||||
});
|
||||
if (item.go_id_type == 1 && (!this.isCertified || !this.hasBusinessTime || !this.hasServiceSkill)) {
|
||||
this.showSetupModal = true;
|
||||
return;
|
||||
}
|
||||
if (!this.isLogin && item.go_id_type) {
|
||||
|
|
@ -803,12 +912,17 @@ export default {
|
|||
url: '/pages/ruzhu/ruzhu'
|
||||
});
|
||||
} else if (idType > 0 && credentialsState === 0) {
|
||||
// 已认证 + 待完善
|
||||
// 已入驻 + 待完善
|
||||
uni.navigateTo({
|
||||
url: '/pages/shop/qualification_sj_change'
|
||||
});
|
||||
} else if (idType > 0 && credentialsState === 1) {
|
||||
// 已认证 + 申请中
|
||||
// 已入驻 + 申请中
|
||||
uni.navigateTo({
|
||||
url: '/pages/shop/qualification_sj_change'
|
||||
});
|
||||
} else if (idType > 0 && credentialsState === 2) {
|
||||
// 已入驻 + 已完善
|
||||
uni.navigateTo({
|
||||
url: '/pages/shop/qualification_sj_change'
|
||||
});
|
||||
|
|
@ -819,6 +933,39 @@ export default {
|
|||
});
|
||||
}
|
||||
},
|
||||
closeSetupModal() {
|
||||
this.showSetupModal = false;
|
||||
},
|
||||
goToBusinessTime() {
|
||||
this.showSetupModal = false;
|
||||
uni.navigateTo({
|
||||
url: '/pages/shop/business-time'
|
||||
});
|
||||
},
|
||||
goToServiceSkill() {
|
||||
this.showSetupModal = false;
|
||||
uni.navigateTo({
|
||||
url: '/pages/shop/service-skills'
|
||||
});
|
||||
},
|
||||
goToAuth() {
|
||||
this.showSetupModal = false;
|
||||
if (this.isUnderReview) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/ruzhu/ruzhu?type=1'
|
||||
});
|
||||
} else {
|
||||
if (this.isSettled) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/ruzhu/ruzhu?step=3'
|
||||
});
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: '/pages/ruzhu/ruzhu'
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
goToInviteList() {
|
||||
// 添加访问检查
|
||||
if (this.isAccountDisabled) {
|
||||
|
|
@ -1562,4 +1709,151 @@ button::after {
|
|||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
/* ============ 提示弹窗样式 ============ */
|
||||
.setup-modal-mask {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
z-index: 9999;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
.setup-modal-content {
|
||||
width: 630rpx;
|
||||
height: 775rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 32rpx;
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.modal-bg {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 630rpx;
|
||||
height: 265rpx;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.modal-header {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
height: 150rpx;
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
justify-content: center;
|
||||
padding-bottom: 20rpx;
|
||||
|
||||
text {
|
||||
font-size: 36rpx;
|
||||
font-weight: bold;
|
||||
color: #333333;
|
||||
letter-spacing: 2rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.modal-body {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
flex: 1;
|
||||
padding: 24rpx 40rpx;
|
||||
|
||||
.modal-subtitle {
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
margin-bottom: 40rpx;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.missing-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 46rpx;
|
||||
|
||||
.missing-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
.item-left {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
|
||||
.item-icon {
|
||||
width: 32rpx;
|
||||
height: 32rpx;
|
||||
margin-right: 16rpx;
|
||||
flex-shrink: 0;
|
||||
margin-top: 6rpx;
|
||||
}
|
||||
|
||||
.item-texts {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.item-title {
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
font-weight: 500;
|
||||
margin-bottom: 8rpx;
|
||||
|
||||
&.blue-text {
|
||||
color: #2b85e4;
|
||||
}
|
||||
}
|
||||
|
||||
.item-desc {
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.item-right {
|
||||
font-size: 26rpx;
|
||||
font-weight: 400;
|
||||
margin-top: -45rpx;
|
||||
|
||||
&.orange {
|
||||
color: #FF7B00;
|
||||
}
|
||||
|
||||
&.grey {
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
&.light-green {
|
||||
color: #5CAC81;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.modal-footer {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
padding: 0 50rpx 50rpx;
|
||||
|
||||
.btn-know {
|
||||
width: 100%;
|
||||
height: 88rpx;
|
||||
background: #FF4767;
|
||||
border-radius: 44rpx;
|
||||
color: #FFFFFF;
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -169,16 +169,14 @@
|
|||
<view class="radio-group">
|
||||
<view class="radio-item" @click="editable && setIdcardValidType('permanent')">
|
||||
<view class="radio" :class="{ checked: displayData.legal_idcard_expiry_type === 1 }">
|
||||
<image v-if="displayData.legal_idcard_expiry_type === 1"
|
||||
src="/static/images/agree_y.png"
|
||||
<image v-if="displayData.legal_idcard_expiry_type === 1" src="/static/images/agree_y.png"
|
||||
class="radio-icon-image" mode="aspectFit"></image>
|
||||
</view>
|
||||
<text class="radio-label">长久有效</text>
|
||||
</view>
|
||||
<view class="radio-item" @click="editable && setIdcardValidType('date')">
|
||||
<view class="radio" :class="{ checked: displayData.legal_idcard_expiry_type === 2 }">
|
||||
<image v-if="displayData.legal_idcard_expiry_type === 2"
|
||||
src="/static/images/agree_y.png"
|
||||
<image v-if="displayData.legal_idcard_expiry_type === 2" src="/static/images/agree_y.png"
|
||||
class="radio-icon-image" mode="aspectFit"></image>
|
||||
</view>
|
||||
<text class="radio-label">指定日期有效</text>
|
||||
|
|
@ -313,8 +311,7 @@
|
|||
<view class="radio-item" v-for="(item, index) in merchantTypeList" :key="index"
|
||||
@click="selectMerchantType(item)">
|
||||
<view class="radio" :class="{ checked: displayData.uscc_type === item.value }">
|
||||
<image v-if="displayData.uscc_type === item.value"
|
||||
src="/static/images/agree_y.png"
|
||||
<image v-if="displayData.uscc_type === item.value" src="/static/images/agree_y.png"
|
||||
class="radio-icon-image" mode="aspectFit"></image>
|
||||
</view>
|
||||
<text class="radio-label">{{ item.label }}</text>
|
||||
|
|
@ -2724,23 +2721,40 @@ export default {
|
|||
|
||||
.popup-footer {
|
||||
margin-top: 32rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 0 28rpx;
|
||||
}
|
||||
|
||||
.popup-btn {
|
||||
width: 280rpx;
|
||||
height: 88rpx;
|
||||
border-radius: 44rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.popup-btn.confirm {
|
||||
background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
|
||||
}
|
||||
|
||||
.popup-btn .btn-text {
|
||||
.popup-btn.cancel {
|
||||
border: 2rpx solid #FF4767;
|
||||
}
|
||||
|
||||
.popup-btn.confirm .btn-text {
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
.popup-btn.cancel .btn-text {
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
color: #FF4767;
|
||||
}
|
||||
|
||||
.cancel-text,
|
||||
.confirm-text {
|
||||
font-size: 32rpx;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<view class="container">
|
||||
<custom-navbar title="添加员工" :leftImg="'/static/images/back.png'" :showUser="true"
|
||||
backgroundColor="transparent" titleColor="#000" borderBottom="none">
|
||||
<custom-navbar title="添加员工" :leftImg="'/static/images/back.png'" :showUser="true" backgroundColor="transparent"
|
||||
titleColor="#000" borderBottom="none">
|
||||
<template #right>
|
||||
<view class="navbar-right" @click="goRecord">
|
||||
<image class="navbar-right-img" src="/static/images/icons/record.png"></image>
|
||||
|
|
@ -9,10 +9,10 @@
|
|||
</view>
|
||||
</template>
|
||||
</custom-navbar>
|
||||
<searchBox placeholder="请输入员工手机号" class="searchBox" v-model="queryData.phone" bgClor="transparent" @confirm="search"
|
||||
@search="search">
|
||||
<searchBox placeholder="请输入员工手机号" class="searchBox" v-model="queryData.phone" bgClor="transparent"
|
||||
@confirm="search" @search="search">
|
||||
</searchBox>
|
||||
<scroll-view scroll-y :style="{ height:`calc(100vh - ${statusBarHeight + 200}rpx)`} ">
|
||||
<scroll-view scroll-y :style="{ height: `calc(100vh - ${statusBarHeight + 200}rpx)` }">
|
||||
<view class="page-container" v-if="sryDetail && sryDetail.id">
|
||||
<!-- 个人信息栏 -->
|
||||
<view class="user-info">
|
||||
|
|
@ -74,7 +74,8 @@
|
|||
</view>
|
||||
|
||||
<view class="" style="height: 200rpx;"></view>
|
||||
<view class="agreement-footer" @click="sjinvitesyr" v-if="sryDetail && sryDetail.id && sryDetail.bind_state!=1">
|
||||
<view class="agreement-footer" @click="sjinvitesyr"
|
||||
v-if="sryDetail && sryDetail.id && sryDetail.bind_state != 1">
|
||||
<view class="agreement-btn">邀请员工</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
|
|
@ -83,406 +84,407 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import request from "@/utils/request";
|
||||
import searchBox from "./components/search-box.vue";
|
||||
export default {
|
||||
name: "addStaff",
|
||||
components: {
|
||||
searchBox,
|
||||
import request from "@/utils/request";
|
||||
import searchBox from "./components/search-box.vue";
|
||||
export default {
|
||||
name: "addStaff",
|
||||
components: {
|
||||
searchBox,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
queryData: {
|
||||
phone: "",
|
||||
},
|
||||
statusBarHeight: 0,
|
||||
isSubmit: false,
|
||||
sryDetail: {},
|
||||
serversList: {},
|
||||
};
|
||||
},
|
||||
async onLoad(options) {
|
||||
this.statusBarHeight = this.getRpxStatusBarHeight();
|
||||
let type = 3;
|
||||
let result = await request.post("/sj/user/getuser", {
|
||||
type,
|
||||
});
|
||||
this.userInfo = result.data;
|
||||
this.queryData.sjid = this.userInfo.id;
|
||||
await this.sjservers();
|
||||
if (options.phone) {
|
||||
this.queryData.phone = options.phone
|
||||
this.search()
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
mergeServiceList() {
|
||||
// 1. 提取原始对象的所有子数组
|
||||
let allSubArrays = Object.values(this.$store.state.sjServiceList);
|
||||
// 2. 遍历每个子数组,过滤掉server_time>100的元素,再合并
|
||||
return allSubArrays
|
||||
.map((subArr) => {
|
||||
// 过滤
|
||||
return subArr.filter((item) => {
|
||||
// 只保留is_choice为true的项目
|
||||
return item.is_choice;
|
||||
});
|
||||
})
|
||||
.flat(); // 扁平化合并所有过滤后的子数组
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
queryData: {
|
||||
phone: "",
|
||||
},
|
||||
statusBarHeight:0,
|
||||
isSubmit:false,
|
||||
sryDetail: {},
|
||||
serversList: {},
|
||||
};
|
||||
},
|
||||
async onLoad(options) {
|
||||
this.statusBarHeight = this.getRpxStatusBarHeight();
|
||||
let type = 3;
|
||||
let result = await request.post("/user/getuser", {
|
||||
type,
|
||||
},
|
||||
methods: {
|
||||
goServiceList() {
|
||||
uni.navigateTo({
|
||||
url: "/pages/shop/staff/serviceList",
|
||||
});
|
||||
this.userInfo = result.data;
|
||||
this.queryData.sjid = this.userInfo.id;
|
||||
await this.sjservers();
|
||||
if (options.phone) {
|
||||
this.queryData.phone = options.phone
|
||||
this.search()
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
mergeServiceList() {
|
||||
// 1. 提取原始对象的所有子数组
|
||||
let allSubArrays = Object.values(this.$store.state.sjServiceList);
|
||||
// 2. 遍历每个子数组,过滤掉server_time>100的元素,再合并
|
||||
return allSubArrays
|
||||
.map((subArr) => {
|
||||
// 过滤
|
||||
return subArr.filter((item) => {
|
||||
// 只保留is_choice为true的项目
|
||||
return item.is_choice;
|
||||
});
|
||||
})
|
||||
.flat(); // 扁平化合并所有过滤后的子数组
|
||||
},
|
||||
async search() {
|
||||
await request.post("/sj/searchsyr", this.queryData).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.$store.commit("setSjServiceList", this.serversList);
|
||||
this.sryDetail = res.data;
|
||||
if (this.sryDetail?.servers_kill_arr) {
|
||||
this.sryDetail.servers_kill_arr_text =
|
||||
this.sryDetail.servers_kill_arr.join("、");
|
||||
}
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
duration: 2000,
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
goServiceList() {
|
||||
uni.navigateTo({
|
||||
url: "/pages/shop/staff/serviceList",
|
||||
});
|
||||
},
|
||||
async search() {
|
||||
await request.post("/sj/searchsyr", this.queryData).then((res) => {
|
||||
async sjservers() {
|
||||
await request
|
||||
.post("/sj/sjservers", {
|
||||
sjid: this.queryData.sjid
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.$store.commit("setSjServiceList", this.serversList);
|
||||
this.sryDetail = res.data;
|
||||
if (this.sryDetail?.servers_kill_arr) {
|
||||
this.sryDetail.servers_kill_arr_text =
|
||||
this.sryDetail.servers_kill_arr.join("、");
|
||||
}
|
||||
}else{
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
duration: 2000,
|
||||
icon: 'none'
|
||||
});
|
||||
//将数据存在vuex里作为依据
|
||||
this.serversList = res.data;
|
||||
this.$store.commit("setSjServiceList", res.data);
|
||||
}
|
||||
});
|
||||
},
|
||||
async sjservers() {
|
||||
await request
|
||||
.post("/sj/sjservers", {
|
||||
sjid: this.queryData.sjid
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 200) {
|
||||
//将数据存在vuex里作为依据
|
||||
this.serversList = res.data;
|
||||
this.$store.commit("setSjServiceList", res.data);
|
||||
},
|
||||
sjinvitesyr() {
|
||||
let form = {
|
||||
sj_id: this.queryData.sjid,
|
||||
syr_id: this.sryDetail.id,
|
||||
service_data: this.mergeServiceList.map(item => item.id),
|
||||
}
|
||||
if (this.isSubmit) {
|
||||
return
|
||||
}
|
||||
this.isSubmit = true
|
||||
request.post("/sj/sjinvitesyr", form).then((res) => {
|
||||
if (res.code == 200) {
|
||||
uni.showModal({
|
||||
title: '成功',
|
||||
content: '邀请成功,等待员工同意。',
|
||||
showCancel: false,
|
||||
success: () => {
|
||||
uni.navigateTo({
|
||||
url: `/pages/shop/staff/record`,
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
sjinvitesyr() {
|
||||
let form = {
|
||||
sj_id: this.queryData.sjid,
|
||||
syr_id: this.sryDetail.id,
|
||||
service_data: this.mergeServiceList.map(item => item.id),
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: "none",
|
||||
});
|
||||
}
|
||||
if(this.isSubmit){
|
||||
return
|
||||
}
|
||||
this.isSubmit = true
|
||||
request.post("/sj/sjinvitesyr", form).then((res) => {
|
||||
if (res.code == 200) {
|
||||
uni.showModal({
|
||||
title: '成功',
|
||||
content: '邀请成功,等待员工同意。',
|
||||
showCancel: false,
|
||||
success: () => {
|
||||
uni.navigateTo({
|
||||
url: `/pages/shop/staff/record`,
|
||||
});
|
||||
}
|
||||
});
|
||||
}else{
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: "none",
|
||||
});
|
||||
}
|
||||
}).finally(()=>{
|
||||
this.isSubmit = false
|
||||
});
|
||||
},
|
||||
goDetail() {
|
||||
uni.navigateTo({
|
||||
url: `/pages/shop/staff/staffDetail?syrid=${this.sryDetail.id}`,
|
||||
});
|
||||
},
|
||||
goRecord() {
|
||||
uni.navigateTo({
|
||||
url: "/pages/shop/staff/record",
|
||||
});
|
||||
},
|
||||
}).finally(() => {
|
||||
this.isSubmit = false
|
||||
});
|
||||
},
|
||||
};
|
||||
goDetail() {
|
||||
uni.navigateTo({
|
||||
url: `/pages/shop/staff/staffDetail?syrid=${this.sryDetail.id}`,
|
||||
});
|
||||
},
|
||||
goRecord() {
|
||||
uni.navigateTo({
|
||||
url: "/pages/shop/staff/record",
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less">
|
||||
.container {
|
||||
position: relative;
|
||||
background-image: url("/static/images/background/bj2.png");
|
||||
background-size: 100% auto;
|
||||
background-position: center top;
|
||||
background-repeat: no-repeat;
|
||||
.container {
|
||||
position: relative;
|
||||
background-image: url("/static/images/background/bj2.png");
|
||||
background-size: 100% auto;
|
||||
background-position: center top;
|
||||
background-repeat: no-repeat;
|
||||
|
||||
.container-tip {
|
||||
width: 710rpx;
|
||||
height: 311rpx;
|
||||
background: #ffffff;
|
||||
border-radius: 20rpx;
|
||||
margin: 0 auto;
|
||||
.container-tip {
|
||||
width: 710rpx;
|
||||
height: 311rpx;
|
||||
background: #ffffff;
|
||||
border-radius: 20rpx;
|
||||
margin: 0 auto;
|
||||
|
||||
.tip-title {
|
||||
.tip-title {
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
line-height: 40rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
padding-top: 46rpx;
|
||||
margin-left: 6rpx;
|
||||
|
||||
.tip-icon {
|
||||
width: 32rpx;
|
||||
height: 32rpx;
|
||||
margin-right: 8rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.tip-text {
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
line-height: 40rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
padding: 18rpx 24rpx 0 20rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.page-container {
|
||||
padding: 0rpx 20rpx 0 20rpx;
|
||||
|
||||
// 个人信息样式
|
||||
.user-info {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 20rpx;
|
||||
background-color: #fff;
|
||||
padding: 20rpx;
|
||||
border-radius: 8px;
|
||||
|
||||
.avatar {
|
||||
width: 56px;
|
||||
height: 56px;
|
||||
border-radius: 50%;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.user-detail {
|
||||
flex: 1;
|
||||
|
||||
.user-name {
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
font-size: 36rpx;
|
||||
color: #333333;
|
||||
line-height: 40rpx;
|
||||
line-height: 50rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
padding-top: 46rpx;
|
||||
margin-left: 6rpx;
|
||||
|
||||
.tip-icon {
|
||||
width: 32rpx;
|
||||
height: 32rpx;
|
||||
margin-right: 8rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.tip-text {
|
||||
.enter-btn {
|
||||
padding: 0 20rpx;
|
||||
height: 50rpx;
|
||||
border-radius: 25rpx;
|
||||
border: 1rpx solid rgba(232, 16, 30, 0.28);
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
line-height: 40rpx;
|
||||
font-size: 24rpx;
|
||||
color: #FF4767;
|
||||
text-align: right;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.tags {
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
line-height: 33rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
padding: 18rpx 24rpx 0 20rpx;
|
||||
margin-top: 18rpx;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
max-width: 500rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.page-container {
|
||||
padding: 0rpx 20rpx 0 20rpx;
|
||||
// 服务列表样式
|
||||
.service-list {
|
||||
background-color: #fff;
|
||||
border-radius: 20rpx;
|
||||
padding: 30rpx 20rpx;
|
||||
margin-bottom: 20rpx;
|
||||
|
||||
// 个人信息样式
|
||||
.user-info {
|
||||
// 营销中心样式
|
||||
.marketing-center {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 20rpx;
|
||||
background-color: #fff;
|
||||
padding: 20rpx;
|
||||
border-radius: 8px;
|
||||
margin-bottom: 30rpx;
|
||||
|
||||
.avatar {
|
||||
width: 56px;
|
||||
height: 56px;
|
||||
border-radius: 50%;
|
||||
margin-right: 10px;
|
||||
.mc-line {
|
||||
width: 6rpx;
|
||||
height: 22rpx;
|
||||
background: #FF4767;
|
||||
border-radius: 4rpx;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
|
||||
.user-detail {
|
||||
.mc-title {
|
||||
font-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
line-height: 42rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.select-btn {
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #666666;
|
||||
line-height: 32rpx;
|
||||
text-align: right;
|
||||
font-style: normal;
|
||||
|
||||
.select-btn-img {
|
||||
width: 9rpx;
|
||||
height: 18rpx;
|
||||
margin-left: 8rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 服务项目标题
|
||||
.service-title {
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
color: #5b5b5b;
|
||||
line-height: 37rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
padding-bottom: 10rpx;
|
||||
border-bottom: 1rpx solid #f1f1f1;
|
||||
margin-bottom: 30rpx;
|
||||
}
|
||||
|
||||
.service-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 30rpx;
|
||||
|
||||
.item-index {
|
||||
font-weight: 500;
|
||||
font-size: 18rpx;
|
||||
color: #FF4767;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
width: 30rpx;
|
||||
height: 30rpx;
|
||||
background: #fdf0eb;
|
||||
border-radius: 50%;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.item-info {
|
||||
flex: 1;
|
||||
|
||||
.user-name {
|
||||
font-weight: 500;
|
||||
font-size: 36rpx;
|
||||
.item-name {
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
color: #333333;
|
||||
line-height: 50rpx;
|
||||
line-height: 37rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.enter-btn {
|
||||
padding: 0 20rpx;
|
||||
height: 50rpx;
|
||||
border-radius: 25rpx;
|
||||
border: 1rpx solid rgba(232, 16, 30, 0.28);
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #FF4767;
|
||||
text-align: right;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.tags {
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
line-height: 33rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
margin-top: 18rpx;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
max-width: 500rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 服务列表样式
|
||||
.service-list {
|
||||
background-color: #fff;
|
||||
border-radius: 20rpx;
|
||||
padding: 30rpx 20rpx;
|
||||
margin-bottom: 20rpx;
|
||||
|
||||
// 营销中心样式
|
||||
.marketing-center {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 30rpx;
|
||||
|
||||
.mc-line {
|
||||
width: 6rpx;
|
||||
height: 22rpx;
|
||||
background: #FF4767;
|
||||
border-radius: 4rpx;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
|
||||
.mc-title {
|
||||
font-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
line-height: 42rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.select-btn {
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #666666;
|
||||
line-height: 32rpx;
|
||||
text-align: right;
|
||||
font-style: normal;
|
||||
|
||||
.select-btn-img {
|
||||
width: 9rpx;
|
||||
height: 18rpx;
|
||||
margin-left: 8rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 服务项目标题
|
||||
.service-title {
|
||||
.item-duration {
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
color: #5b5b5b;
|
||||
color: #8a8a8a;
|
||||
line-height: 37rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
padding-bottom: 10rpx;
|
||||
border-bottom: 1rpx solid #f1f1f1;
|
||||
margin-bottom: 30rpx;
|
||||
}
|
||||
|
||||
.service-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 30rpx;
|
||||
|
||||
.item-index {
|
||||
font-weight: 500;
|
||||
font-size: 18rpx;
|
||||
color: #FF4767;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
width: 30rpx;
|
||||
height: 30rpx;
|
||||
background: #fdf0eb;
|
||||
border-radius: 50%;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.item-info {
|
||||
flex: 1;
|
||||
|
||||
.item-name {
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
color: #333333;
|
||||
line-height: 37rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
max-width: 500rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.item-duration {
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
color: #8a8a8a;
|
||||
line-height: 37rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.agreement-footer {
|
||||
padding: 20rpx 20rpx 50rpx 20rpx;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: #ffffff;
|
||||
.agreement-btn {
|
||||
width: 710rpx;
|
||||
height: 98rpx;
|
||||
background: #FF4767;
|
||||
border-radius: 49rpx;
|
||||
font-weight: 400;
|
||||
font-size: 38rpx;
|
||||
color: #ffffff;
|
||||
line-height: 53rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
.agreement-footer {
|
||||
padding: 20rpx 20rpx 50rpx 20rpx;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: #ffffff;
|
||||
|
||||
::v-deep .right-area {
|
||||
width: 120rpx !important;
|
||||
height: auto !important;
|
||||
.agreement-btn {
|
||||
width: 710rpx;
|
||||
height: 98rpx;
|
||||
background: #FF4767;
|
||||
border-radius: 49rpx;
|
||||
font-weight: 400;
|
||||
font-size: 38rpx;
|
||||
color: #ffffff;
|
||||
line-height: 53rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .right-area {
|
||||
width: 120rpx !important;
|
||||
height: auto !important;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.navbar-right {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
flex-direction: column;
|
||||
align-content: center;
|
||||
|
||||
.navbar-right-img {
|
||||
width: 32rpx;
|
||||
height: 32rpx;
|
||||
margin: 0 auto 4rpx auto;
|
||||
}
|
||||
|
||||
.navbar-right {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
flex-direction: column;
|
||||
align-content: center;
|
||||
|
||||
.navbar-right-img {
|
||||
width: 32rpx;
|
||||
height: 32rpx;
|
||||
margin: 0 auto 4rpx auto;
|
||||
}
|
||||
|
||||
.navbar-right-text {
|
||||
font-weight: 400;
|
||||
font-size: 16rpx;
|
||||
color: #333333;
|
||||
line-height: 22rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.navbar-right-text {
|
||||
font-weight: 400;
|
||||
font-size: 16rpx;
|
||||
color: #333333;
|
||||
line-height: 22rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
.searchBox{
|
||||
padding: 18rpx 30rpx 30rpx 30rpx;
|
||||
}
|
||||
.searchBox {
|
||||
padding: 18rpx 30rpx 30rpx 30rpx;
|
||||
}
|
||||
|
||||
::v-deep .navbar-content .title{
|
||||
margin-left: 20rpx!important;
|
||||
}
|
||||
::v-deep .navbar-content .title {
|
||||
margin-left: 20rpx !important;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
<template>
|
||||
<view class="container">
|
||||
<custom-navbar title="给员工分配服务" :leftImg="'/static/images/whiteBack.png'" :showUser="true"
|
||||
backgroundColor="linear-gradient( 134deg, #F52540 0%, #FF4767 100%)" titleColor="#fff" borderBottom="none"></custom-navbar>
|
||||
backgroundColor="linear-gradient( 134deg, #F52540 0%, #FF4767 100%)" titleColor="#fff"
|
||||
borderBottom="none"></custom-navbar>
|
||||
<searchBox placeholder="服务名称" v-model="queryData.title" :showAdd="false" @confirm="search" @search="search">
|
||||
</searchBox>
|
||||
<view class="container-tip flex-row-center">
|
||||
|
|
@ -22,8 +23,8 @@
|
|||
</view>
|
||||
<view class="flex-row-center">
|
||||
<text class="item-left-text2" style="color: #FF4767">¥</text>
|
||||
<text class="item-left-text2"
|
||||
style="color: #FF4767; font-size: 28rpx">{{ item.server_price }}</text>
|
||||
<text class="item-left-text2" style="color: #FF4767; font-size: 28rpx">{{
|
||||
item.server_price }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -43,156 +44,156 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import request from "@/utils/request";
|
||||
import searchBox from "./components/search-box.vue";
|
||||
import CommonList from "@/components/common/CommonList.vue";
|
||||
export default {
|
||||
components: {
|
||||
searchBox,
|
||||
CommonList,
|
||||
import request from "@/utils/request";
|
||||
import searchBox from "./components/search-box.vue";
|
||||
import CommonList from "@/components/common/CommonList.vue";
|
||||
export default {
|
||||
components: {
|
||||
searchBox,
|
||||
CommonList,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
userInfo: {},
|
||||
queryData: {
|
||||
title: "",
|
||||
},
|
||||
statusBarHeight: 0,
|
||||
};
|
||||
},
|
||||
async onLoad(options) {
|
||||
let type = 3;
|
||||
let result = await request.post("/sj/user/getuser", {
|
||||
type,
|
||||
});
|
||||
this.userInfo = result.data;
|
||||
this.queryData.sjid = this.userInfo.id;
|
||||
this.statusBarHeight = this.getRpxStatusBarHeight();
|
||||
this.$nextTick(() => {
|
||||
this.search();
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
search() {
|
||||
this.$refs.groupRef.manualRefresh(this.queryData);
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
userInfo: {},
|
||||
queryData: {
|
||||
title: "",
|
||||
},
|
||||
statusBarHeight: 0,
|
||||
};
|
||||
},
|
||||
async onLoad(options) {
|
||||
let type = 3;
|
||||
let result = await request.post("/user/getuser", {
|
||||
type,
|
||||
});
|
||||
this.userInfo = result.data;
|
||||
this.queryData.sjid = this.userInfo.id;
|
||||
this.statusBarHeight = this.getRpxStatusBarHeight();
|
||||
this.$nextTick(() => {
|
||||
this.search();
|
||||
goSlectSyr(item) {
|
||||
uni.navigateTo({
|
||||
url: `/pages/shop/staff/selectSyr?server_id=${item.id}`,
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
search() {
|
||||
this.$refs.groupRef.manualRefresh(this.queryData);
|
||||
},
|
||||
goSlectSyr(item) {
|
||||
uni.navigateTo({
|
||||
url: `/pages/shop/staff/selectSyr?server_id=${item.id}`,
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less">
|
||||
.container {
|
||||
.container-tip {
|
||||
width: 750rpx;
|
||||
padding: 27rpx 16rpx 22rpx 32rpx;
|
||||
background: #fae7ec;
|
||||
.container {
|
||||
.container-tip {
|
||||
width: 750rpx;
|
||||
padding: 27rpx 16rpx 22rpx 32rpx;
|
||||
background: #fae7ec;
|
||||
|
||||
.container-tip-text {
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
.container-tip-text {
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
color: #FF4767;
|
||||
line-height: 37rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.tip-icon {
|
||||
width: 46rpx;
|
||||
height: 46rpx;
|
||||
margin-right: 8rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.service-list {
|
||||
// background-color: #fff;
|
||||
// margin: 20rpx 20rpx 26rpx 20rpx;
|
||||
// border-radius: 10rpx;
|
||||
|
||||
.service-item {
|
||||
// padding-top: 20rpx;
|
||||
// margin: 0rpx 20rpx 30rpx 20rpx;
|
||||
// padding-bottom: 30rpx;
|
||||
// border-bottom: 1rpx solid #f1f1f1;
|
||||
padding: 30rpx 20rpx;
|
||||
margin: 20rpx;
|
||||
|
||||
background: #FFFFFF;
|
||||
border-radius: 10rpx;
|
||||
|
||||
.item-left {
|
||||
.item-left-photo {
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
border-radius: 20rpx;
|
||||
background: #000;
|
||||
}
|
||||
|
||||
.item-left-texts {
|
||||
margin-left: 20rpx;
|
||||
|
||||
.item-left-text1 {
|
||||
font-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
line-height: 34rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
margin-bottom: 27rpx;
|
||||
margin-top: 6rpx;
|
||||
max-width: 400rpx;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.item-left-text2 {
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
color: #666666;
|
||||
line-height: 34rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.item-left-line {
|
||||
margin: 0 10rpx;
|
||||
width: 2rpx;
|
||||
height: 20rpx;
|
||||
background: #666666;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.item-right {
|
||||
width: 124rpx;
|
||||
height: 53rpx;
|
||||
border-radius: 27rpx;
|
||||
border: 1rpx solid rgba(232, 16, 30, 0.5);
|
||||
font-size: 24rpx;
|
||||
color: #FF4767;
|
||||
line-height: 37rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.tip-icon {
|
||||
width: 46rpx;
|
||||
height: 46rpx;
|
||||
margin-right: 8rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.service-list {
|
||||
// background-color: #fff;
|
||||
// margin: 20rpx 20rpx 26rpx 20rpx;
|
||||
// border-radius: 10rpx;
|
||||
|
||||
.service-item {
|
||||
// padding-top: 20rpx;
|
||||
// margin: 0rpx 20rpx 30rpx 20rpx;
|
||||
// padding-bottom: 30rpx;
|
||||
// border-bottom: 1rpx solid #f1f1f1;
|
||||
padding: 30rpx 20rpx;
|
||||
margin: 20rpx;
|
||||
|
||||
background: #FFFFFF;
|
||||
border-radius: 10rpx;
|
||||
|
||||
.item-left {
|
||||
.item-left-photo {
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
border-radius: 20rpx;
|
||||
background: #000;
|
||||
}
|
||||
|
||||
.item-left-texts {
|
||||
margin-left: 20rpx;
|
||||
|
||||
.item-left-text1 {
|
||||
font-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
line-height: 34rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
margin-bottom: 27rpx;
|
||||
margin-top: 6rpx;
|
||||
max-width: 400rpx;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.item-left-text2 {
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
color: #666666;
|
||||
line-height: 34rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.item-left-line {
|
||||
margin: 0 10rpx;
|
||||
width: 2rpx;
|
||||
height: 20rpx;
|
||||
background: #666666;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.item-right {
|
||||
width: 124rpx;
|
||||
height: 53rpx;
|
||||
border-radius: 27rpx;
|
||||
border: 1rpx solid rgba(232, 16, 30, 0.5);
|
||||
font-size: 24rpx;
|
||||
color: #FF4767;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.common-list {
|
||||
background: #f5f5f5 !important;
|
||||
border-radius: 30rpx !important;
|
||||
padding-bottom: 0 !important;
|
||||
}
|
||||
.common-list {
|
||||
background: #f5f5f5 !important;
|
||||
border-radius: 30rpx !important;
|
||||
padding-bottom: 0 !important;
|
||||
}
|
||||
|
||||
::v-deep .list-container {
|
||||
padding: 0 !important;
|
||||
}
|
||||
::v-deep .list-container {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
::v-deep .list-scroll {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
::v-deep .list-scroll {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -4,8 +4,8 @@
|
|||
backgroundColor="linear-gradient( 134deg, #F52540 0%, #FF4767 100%)"
|
||||
headleSrc="/static/images/recruit/guide.png" :showHeadle="false" titleColor="#fff" borderBottom="none"
|
||||
@onHeadleClick="openPop"></custom-navbar>
|
||||
<searchBox placeholder="手艺人名字/手机号" v-model="queryData.nameorphone" :showAdd="true" @confirm="search" @search="search"
|
||||
@add="goAddStaff">
|
||||
<searchBox placeholder="手艺人名字/手机号" v-model="queryData.nameorphone" :showAdd="true" @confirm="search"
|
||||
@search="search" @add="goAddStaff">
|
||||
</searchBox>
|
||||
|
||||
<!-- Tab 内容区域 -->
|
||||
|
|
@ -20,20 +20,22 @@
|
|||
:listScrollHeight="`calc(100vh - ${statusBarHeight + 350}rpx)`">
|
||||
<template #listData="{ list }">
|
||||
<view class="scoll-lists">
|
||||
<view class="list-item" v-for="(item, index) in list" :key="index" @click="goDetail(item)" v-if="item.syr">
|
||||
<view class="list-item" v-for="(item, index) in list" :key="index" @click="goDetail(item)"
|
||||
v-if="item.syr">
|
||||
<view class="item-left">
|
||||
<image :src="item.syr.head_photo" class="item-left-img" mode="aspectFill"></image>
|
||||
<view class="item-left-tab flex-row-center-center" :class="{noTab:item.state==2}">{{ typName(item.state) }}</view>
|
||||
<view class="item-left-tab flex-row-center-center" :class="{ noTab: item.state == 2 }">{{
|
||||
typName(item.state) }}</view>
|
||||
</view>
|
||||
<view class="item-right">
|
||||
<view class="item-right-text1 flex-row-center-between">
|
||||
<text>{{ item.syr.name }}</text>
|
||||
|
||||
<view class="switch-box" @click.stop="handleSwitchChange(item)"
|
||||
:class="{ disswitch: item.sj_state!=1 }" v-if="item.state==1">
|
||||
<text class="switch-text" v-if="item.sj_state==1">接单</text>
|
||||
:class="{ disswitch: item.sj_state != 1 }" v-if="item.state == 1">
|
||||
<text class="switch-text" v-if="item.sj_state == 1">接单</text>
|
||||
<view class="switch-yuan"></view>
|
||||
<text class="switch-text" v-if="item.sj_state!=1">不接单</text>
|
||||
<text class="switch-text" v-if="item.sj_state != 1">不接单</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item-right-text2">绑定时间: {{ item.bind_time }}</view>
|
||||
|
|
@ -75,428 +77,430 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import request from "@/utils/request";
|
||||
import searchBox from "./components/search-box.vue";
|
||||
import CommonList from "@/components/common/CommonList.vue";
|
||||
export default {
|
||||
components: {
|
||||
searchBox,
|
||||
CommonList,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isSubmit:false,//调接口防止重复点击参数
|
||||
queryData: {
|
||||
nameorphone: "",
|
||||
sjid: null,
|
||||
state: "", // 1绑定 2解绑
|
||||
import request from "@/utils/request";
|
||||
import searchBox from "./components/search-box.vue";
|
||||
import CommonList from "@/components/common/CommonList.vue";
|
||||
export default {
|
||||
components: {
|
||||
searchBox,
|
||||
CommonList,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isSubmit: false,//调接口防止重复点击参数
|
||||
queryData: {
|
||||
nameorphone: "",
|
||||
sjid: null,
|
||||
state: "", // 1绑定 2解绑
|
||||
},
|
||||
userInfo: {},
|
||||
artisanType: getApp().globalData.artisanType,
|
||||
info: {
|
||||
1: {
|
||||
list: "/syr/serversSelf/list",
|
||||
name: "手艺人",
|
||||
switch: "/syr/serversSelf/switch",
|
||||
},
|
||||
userInfo: {},
|
||||
artisanType: getApp().globalData.artisanType,
|
||||
info: {
|
||||
1: {
|
||||
list: "/syr/serversSelf/list",
|
||||
name: "手艺人",
|
||||
switch: "/syr/serversSelf/switch",
|
||||
},
|
||||
2: {
|
||||
list: "/sj/serversSelf/list",
|
||||
name: "商家",
|
||||
switch: "/sj/serversSelf/switch",
|
||||
},
|
||||
2: {
|
||||
list: "/sj/serversSelf/list",
|
||||
name: "商家",
|
||||
switch: "/sj/serversSelf/switch",
|
||||
},
|
||||
statusBarHeight: 0,
|
||||
// Tab 数据源,通过修改这个数组可以动态增删 Tab
|
||||
tabs: [{
|
||||
id: "",
|
||||
name: "全部",
|
||||
},
|
||||
{
|
||||
id: 1,
|
||||
name: "服务中",
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: "已解约",
|
||||
},
|
||||
],
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
},
|
||||
statusBarHeight: 0,
|
||||
// Tab 数据源,通过修改这个数组可以动态增删 Tab
|
||||
tabs: [{
|
||||
id: "",
|
||||
name: "全部",
|
||||
},
|
||||
{
|
||||
id: 1,
|
||||
name: "服务中",
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: "已解约",
|
||||
},
|
||||
],
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
||||
},
|
||||
async onLoad(options) {
|
||||
let type = 3;
|
||||
let result = await request.post("/user/getuser", {
|
||||
type,
|
||||
});
|
||||
this.userInfo = result.data;
|
||||
this.queryData.sjid = this.userInfo.id
|
||||
this.statusBarHeight = this.getRpxStatusBarHeight();
|
||||
},
|
||||
async onLoad(options) {
|
||||
let type = 3;
|
||||
let result = await request.post("/sj/user/getuser", {
|
||||
type,
|
||||
});
|
||||
this.userInfo = result.data;
|
||||
this.queryData.sjid = this.userInfo.id
|
||||
this.statusBarHeight = this.getRpxStatusBarHeight();
|
||||
this.$nextTick(() => {
|
||||
this.search();
|
||||
});
|
||||
},
|
||||
onShow() {
|
||||
if (this.queryData.sjid) {
|
||||
this.$nextTick(() => {
|
||||
this.search();
|
||||
});
|
||||
},
|
||||
onShow() {
|
||||
if(this.queryData.sjid){
|
||||
this.$nextTick(() => {
|
||||
this.search();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
goDetail(item) {
|
||||
uni.$uv.throttle(() => {
|
||||
uni.navigateTo({
|
||||
url: `/pages/shop/staff/detail?syrid=${item.syr?.id}`,
|
||||
});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
goDetail(item){
|
||||
uni.$uv.throttle(()=>{
|
||||
uni.navigateTo({
|
||||
url: `/pages/shop/staff/detail?syrid=${item.syr?.id}`,
|
||||
});
|
||||
}, 500)
|
||||
}, 500)
|
||||
|
||||
},
|
||||
handleSwitchChange(item) {
|
||||
let obj = {
|
||||
sjid:this.userInfo.id,
|
||||
syrid: item.syr_id
|
||||
}
|
||||
request.post("/sj/isaccept", obj).then((res) => {
|
||||
if(res.code==200){
|
||||
item.sj_state ===1?item.sj_state=2:item.sj_state=1;
|
||||
}else{
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
});
|
||||
}
|
||||
}).catch((error)=>{
|
||||
},
|
||||
handleSwitchChange(item) {
|
||||
let obj = {
|
||||
sjid: this.userInfo.id,
|
||||
syrid: item.syr_id
|
||||
}
|
||||
request.post("/sj/isaccept", obj).then((res) => {
|
||||
if (res.code == 200) {
|
||||
item.sj_state === 1 ? item.sj_state = 2 : item.sj_state = 1;
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '网络异常,请稍后重试',
|
||||
title: res.msg,
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
});
|
||||
}
|
||||
}).catch((error) => {
|
||||
uni.showToast({
|
||||
title: '网络异常,请稍后重试',
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
});
|
||||
},
|
||||
typName(type) {
|
||||
const textList = {
|
||||
1: "服务中",
|
||||
2: "已解约"
|
||||
};
|
||||
return textList[type];
|
||||
},
|
||||
handleService(item) {
|
||||
uni.showModal({
|
||||
title: "提示",
|
||||
content: `确定要${item.us_state == 1 ? "下架" : "上架"}该服务吗?`,
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
request
|
||||
.post(this.info[this.artisanType].switch, {
|
||||
id: item.id,
|
||||
us_state: item.us_state == 1 ? 2 : 1,
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 200) {
|
||||
uni.showToast({
|
||||
title: "下架成功",
|
||||
icon: "none",
|
||||
});
|
||||
this.search(); // 刷新列表
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: "none",
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
});
|
||||
},
|
||||
goAddStaff() {
|
||||
uni.navigateTo({
|
||||
url: `/pages/shop/staff/addStaff`,
|
||||
});
|
||||
},
|
||||
search() {
|
||||
this.$refs.groupRef.manualRefresh(this.queryData);
|
||||
},
|
||||
// 切换 Tab 的方法
|
||||
switchTab(tabId) {
|
||||
this.queryData.state = tabId;
|
||||
this.search();
|
||||
},
|
||||
openPop() {
|
||||
this.$refs.popup.open("center");
|
||||
},
|
||||
closePop() {
|
||||
this.$refs.popup.close();
|
||||
},
|
||||
});
|
||||
},
|
||||
};
|
||||
typName(type) {
|
||||
const textList = {
|
||||
1: "服务中",
|
||||
2: "已解约"
|
||||
};
|
||||
return textList[type];
|
||||
},
|
||||
handleService(item) {
|
||||
uni.showModal({
|
||||
title: "提示",
|
||||
content: `确定要${item.us_state == 1 ? "下架" : "上架"}该服务吗?`,
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
request
|
||||
.post(this.info[this.artisanType].switch, {
|
||||
id: item.id,
|
||||
us_state: item.us_state == 1 ? 2 : 1,
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 200) {
|
||||
uni.showToast({
|
||||
title: "下架成功",
|
||||
icon: "none",
|
||||
});
|
||||
this.search(); // 刷新列表
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: "none",
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
});
|
||||
},
|
||||
goAddStaff() {
|
||||
uni.navigateTo({
|
||||
url: `/pages/shop/staff/addStaff`,
|
||||
});
|
||||
},
|
||||
search() {
|
||||
this.$refs.groupRef.manualRefresh(this.queryData);
|
||||
},
|
||||
// 切换 Tab 的方法
|
||||
switchTab(tabId) {
|
||||
this.queryData.state = tabId;
|
||||
this.search();
|
||||
},
|
||||
openPop() {
|
||||
this.$refs.popup.open("center");
|
||||
},
|
||||
closePop() {
|
||||
this.$refs.popup.close();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less">
|
||||
page {
|
||||
background: linear-gradient(to bottom, #ffffff, #f5f5f5) !important;
|
||||
}
|
||||
page {
|
||||
background: linear-gradient(to bottom, #ffffff, #f5f5f5) !important;
|
||||
}
|
||||
|
||||
.container {
|
||||
.tab-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 0 91rpx;
|
||||
background: #fff;
|
||||
.container {
|
||||
.tab-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 0 91rpx;
|
||||
background: #fff;
|
||||
|
||||
.tab-item {
|
||||
padding: 30rpx 0rpx 30rpx 0rpx;
|
||||
cursor: pointer;
|
||||
font-weight: 500;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
line-height: 45rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
/* 预先设置透明边框,防止切换时布局跳动 */
|
||||
|
||||
&.active {
|
||||
color: #FF4767;
|
||||
font-weight: 500;
|
||||
position: relative;
|
||||
|
||||
&:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
bottom: 17rpx; // 定位在底部边框的下方
|
||||
left: 50%;
|
||||
transform: translateX(-50%); // 水平居中
|
||||
|
||||
/* 激活时显示红色边框 */
|
||||
width: 34rpx;
|
||||
height: 6rpx;
|
||||
background: linear-gradient(306deg, #FF4767 0%, #fc563b 100%);
|
||||
border-radius: 3rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.pop-content {
|
||||
width: 620rpx;
|
||||
background-image: url("/static/images/background/selfOperatedTip.png");
|
||||
background-position: top;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
border-radius: 20rpx;
|
||||
|
||||
.pop-content-title {
|
||||
padding-top: 193rpx;
|
||||
padding-bottom: 40rpx;
|
||||
text-align: center;
|
||||
.tab-item {
|
||||
padding: 30rpx 0rpx 30rpx 0rpx;
|
||||
cursor: pointer;
|
||||
font-weight: 500;
|
||||
font-size: 36rpx;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
line-height: 50rpx;
|
||||
font-style: normal;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.pop-content-text {
|
||||
padding: 0 40rpx;
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
line-height: 40rpx;
|
||||
line-height: 45rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
display: block;
|
||||
}
|
||||
/* 预先设置透明边框,防止切换时布局跳动 */
|
||||
|
||||
.pop-content-btns {
|
||||
display: flex;
|
||||
padding: 0 54rpx;
|
||||
justify-content: space-between;
|
||||
margin-top: 80rpx;
|
||||
padding-bottom: 51rpx;
|
||||
|
||||
.pop-content-close {
|
||||
width: 246rpx;
|
||||
height: 80rpx;
|
||||
border-radius: 40rpx;
|
||||
border: 2rpx solid #FF4767;
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
&.active {
|
||||
color: #FF4767;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.pop-content-sure {
|
||||
width: 246rpx;
|
||||
height: 80rpx;
|
||||
background: #FF4767;
|
||||
border-radius: 40rpx;
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
color: #ffffff;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.scoll-lists {
|
||||
padding: 0 20rpx;
|
||||
margin-top: 20rpx;
|
||||
|
||||
.list-item {
|
||||
box-sizing: border-box;
|
||||
padding: 20rpx;
|
||||
height: 200rpx;
|
||||
background: #ffffff;
|
||||
border-radius: 20rpx;
|
||||
margin-bottom: 20rpx;
|
||||
position: relative;
|
||||
|
||||
.item-left {
|
||||
position: relative;
|
||||
|
||||
.item-left-img {
|
||||
width: 131rpx;
|
||||
height: 131rpx;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.item-left-tab {
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #FFFFFF;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
width: 124rpx;
|
||||
height: 34rpx;
|
||||
background: #FF4767;
|
||||
border-radius: 18rpx;
|
||||
&:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 4rpx;
|
||||
}
|
||||
.noTab{
|
||||
background: #C1C1C1;
|
||||
}
|
||||
}
|
||||
bottom: 17rpx; // 定位在底部边框的下方
|
||||
left: 50%;
|
||||
transform: translateX(-50%); // 水平居中
|
||||
|
||||
.item-right {
|
||||
margin-left: 20rpx;
|
||||
flex: 1;
|
||||
|
||||
.item-right-text1 {
|
||||
font-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
line-height: 42rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.item-right-text2 {
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
line-height: 33rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.item-right-text3 {
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #333333;
|
||||
line-height: 33rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
.item-right-text3-icon{
|
||||
width: 8rpx;
|
||||
height: 16rpx;
|
||||
margin-left: 6rpx;
|
||||
}
|
||||
/* 激活时显示红色边框 */
|
||||
width: 34rpx;
|
||||
height: 6rpx;
|
||||
background: linear-gradient(306deg, #FF4767 0%, #fc563b 100%);
|
||||
border-radius: 3rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .right-area {
|
||||
width: 31rpx !important;
|
||||
height: 31rpx !important;
|
||||
.pop-content {
|
||||
width: 620rpx;
|
||||
background-image: url("/static/images/background/selfOperatedTip.png");
|
||||
background-position: top;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
border-radius: 20rpx;
|
||||
|
||||
.pop-content-title {
|
||||
padding-top: 193rpx;
|
||||
padding-bottom: 40rpx;
|
||||
text-align: center;
|
||||
font-weight: 500;
|
||||
font-size: 36rpx;
|
||||
color: #333333;
|
||||
line-height: 50rpx;
|
||||
font-style: normal;
|
||||
display: block;
|
||||
}
|
||||
|
||||
::v-deep .icon-headle {
|
||||
width: 31rpx !important;
|
||||
height: 31rpx !important;
|
||||
.pop-content-text {
|
||||
padding: 0 40rpx;
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
line-height: 40rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.common-list {
|
||||
background: #f5f5f5 !important;
|
||||
border-radius: 30rpx !important;
|
||||
}
|
||||
|
||||
::v-deep .list-container {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
::v-deep .list-scroll {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
||||
.switch-box {
|
||||
/* width: 126rpx; */
|
||||
height: 52rpx;
|
||||
line-height: 52rpx;
|
||||
border-radius: 26rpx;
|
||||
background-color: #FFD4D8;
|
||||
.pop-content-btns {
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 0 8rpx 0 15rpx;
|
||||
padding: 0 54rpx;
|
||||
justify-content: space-between;
|
||||
margin-top: 80rpx;
|
||||
padding-bottom: 51rpx;
|
||||
|
||||
.switch-yuan {
|
||||
width: 38rpx;
|
||||
height: 38rpx;
|
||||
border-radius: 20rpx;
|
||||
background-color: #fff;
|
||||
margin-left: 9rpx;
|
||||
margin-right: 0rpx;
|
||||
}
|
||||
|
||||
.switch-text {
|
||||
.pop-content-close {
|
||||
width: 246rpx;
|
||||
height: 80rpx;
|
||||
border-radius: 40rpx;
|
||||
border: 2rpx solid #FF4767;
|
||||
font-weight: 500;
|
||||
font-size: 24rpx;
|
||||
font-size: 28rpx;
|
||||
color: #FF4767;
|
||||
line-height: 33rpx;
|
||||
text-align: right;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.pop-content-sure {
|
||||
width: 246rpx;
|
||||
height: 80rpx;
|
||||
background: #FF4767;
|
||||
border-radius: 40rpx;
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
color: #ffffff;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.disswitch {
|
||||
padding: 0 12rpx 0 8rpx;
|
||||
background-color: #cecfd5;
|
||||
.scoll-lists {
|
||||
padding: 0 20rpx;
|
||||
margin-top: 20rpx;
|
||||
|
||||
.switch-yuan {
|
||||
margin-left: 0;
|
||||
margin-right: 9rpx;
|
||||
.list-item {
|
||||
box-sizing: border-box;
|
||||
padding: 20rpx;
|
||||
height: 200rpx;
|
||||
background: #ffffff;
|
||||
border-radius: 20rpx;
|
||||
margin-bottom: 20rpx;
|
||||
position: relative;
|
||||
|
||||
.item-left {
|
||||
position: relative;
|
||||
|
||||
.item-left-img {
|
||||
width: 131rpx;
|
||||
height: 131rpx;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.item-left-tab {
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #FFFFFF;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
width: 124rpx;
|
||||
height: 34rpx;
|
||||
background: #FF4767;
|
||||
border-radius: 18rpx;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 4rpx;
|
||||
}
|
||||
|
||||
.noTab {
|
||||
background: #C1C1C1;
|
||||
}
|
||||
}
|
||||
|
||||
.switch-text {
|
||||
color: #A0A0A0;
|
||||
.item-right {
|
||||
margin-left: 20rpx;
|
||||
flex: 1;
|
||||
|
||||
.item-right-text1 {
|
||||
font-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
line-height: 42rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.item-right-text2 {
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
line-height: 33rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.item-right-text3 {
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #333333;
|
||||
line-height: 33rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
|
||||
.item-right-text3-icon {
|
||||
width: 8rpx;
|
||||
height: 16rpx;
|
||||
margin-left: 6rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .right-area {
|
||||
width: 31rpx !important;
|
||||
height: 31rpx !important;
|
||||
}
|
||||
|
||||
::v-deep .icon-headle {
|
||||
width: 31rpx !important;
|
||||
height: 31rpx !important;
|
||||
}
|
||||
|
||||
.common-list {
|
||||
background: #f5f5f5 !important;
|
||||
border-radius: 30rpx !important;
|
||||
}
|
||||
|
||||
::v-deep .list-container {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
::v-deep .list-scroll {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
||||
.switch-box {
|
||||
/* width: 126rpx; */
|
||||
height: 52rpx;
|
||||
line-height: 52rpx;
|
||||
border-radius: 26rpx;
|
||||
background-color: #FFD4D8;
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 0 8rpx 0 15rpx;
|
||||
|
||||
.switch-yuan {
|
||||
width: 38rpx;
|
||||
height: 38rpx;
|
||||
border-radius: 20rpx;
|
||||
background-color: #fff;
|
||||
margin-left: 9rpx;
|
||||
margin-right: 0rpx;
|
||||
}
|
||||
|
||||
.switch-text {
|
||||
font-weight: 500;
|
||||
font-size: 24rpx;
|
||||
color: #FF4767;
|
||||
line-height: 33rpx;
|
||||
text-align: right;
|
||||
font-style: normal;
|
||||
}
|
||||
}
|
||||
|
||||
.disswitch {
|
||||
padding: 0 12rpx 0 8rpx;
|
||||
background-color: #cecfd5;
|
||||
|
||||
.switch-yuan {
|
||||
margin-left: 0;
|
||||
margin-right: 9rpx;
|
||||
}
|
||||
|
||||
.switch-text {
|
||||
color: #A0A0A0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Loading…
Reference in New Issue