814 lines
20 KiB
Vue
814 lines
20 KiB
Vue
|
|
<template>
|
|||
|
|
<view class="selectSyr">
|
|||
|
|
<custom-navbar title="选择手艺人" :leftImg="'/static/images/whiteBack.png'" :showUser="true"
|
|||
|
|
backgroundColor="linear-gradient( 134deg, #F52540 0%, #E8101E 100%)" titleColor="#fff"
|
|||
|
|
borderBottom="none"></custom-navbar>
|
|||
|
|
<searchBox placeholder="搜索手艺人名称" v-model="queryData.name" @confirm="searchConfrim" @search="searchConfrim">
|
|||
|
|
</searchBox>
|
|||
|
|
<view class="selectSyr-tip" v-if="queryData.servers_region.length == 0">
|
|||
|
|
<text>抱歉呀,您所选择的地址暂时没有合适的手艺人~试试调整换个地址,马上为您匹配新的人选哦。</text>
|
|||
|
|
</view>
|
|||
|
|
<CommonList ref="groupRef" :apiUrl="url" :listScrollHeight="`calc(100vh - ${
|
|||
|
|
statusBarHeight + 200 + tipHeight
|
|||
|
|
}rpx)`" @load-success-all="loadSuccess">
|
|||
|
|
<template #listData="{ list }">
|
|||
|
|
<view class="selectSyr-list-tip" v-if="queryData.servers_region.length == 0">
|
|||
|
|
<view class="flex-row-center">
|
|||
|
|
<image class="selectSyr-list-tip-icon" src="/static/images/icons/tip.png">
|
|||
|
|
</image>
|
|||
|
|
<text>暂不满足此地址和时间的手艺人</text>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="selectSyr-list" :class="{ noSyr: queryData.servers_region.length == 0 }">
|
|||
|
|
<view class="selectSyr-item" v-for="(item, index) in syrList" :key="index" @click="selectSyr(item)">
|
|||
|
|
<image :src="item.head_photo" mode="aspectFill" class="selectSyr-item-photo"></image>
|
|||
|
|
<view class="selectSyr-item-right">
|
|||
|
|
<view class="selectSyr-item-right-name flex-row-center-between">
|
|||
|
|
<text class="right-name-left">{{ item.name }}</text>
|
|||
|
|
<view class="right-name-right flex-row-center" @click.stop="openPopup(item)">
|
|||
|
|
<text>更多信息</text>
|
|||
|
|
<image class="right-name-right-img" src="/static/images/icons/right_gray4.png">
|
|||
|
|
</image>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
|
|||
|
|
<view class="selectSyr-item-right-time flex-row-center">
|
|||
|
|
<text>到家时间:{{ item.default_times }}</text>
|
|||
|
|
</view>
|
|||
|
|
|
|||
|
|
<!-- 所属门店区域 -->
|
|||
|
|
<view class="detail-info-user__company__name"
|
|||
|
|
v-if="item.for_shop && item.for_shop.length > 0">
|
|||
|
|
<view class="detail-info-user__company__name__text1">
|
|||
|
|
所属门店
|
|||
|
|
</view>
|
|||
|
|
<span class="detail-info-user__company__name__line"> | </span>
|
|||
|
|
<view class="detail-info-user__company__name__text2">
|
|||
|
|
{{ item.for_shop }}
|
|||
|
|
</image>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
|
|||
|
|
<view class="detail-info-user__company__name" v-if="item.sj_list && item.sj_list.length > 0"
|
|||
|
|
@click.stop="showShopList(item)">
|
|||
|
|
<view class="detail-info-user__company__name__text1">
|
|||
|
|
所属门店
|
|||
|
|
</view>
|
|||
|
|
<span class="detail-info-user__company__name__line"> | </span>
|
|||
|
|
<view class="detail-info-user__company__name__text2">
|
|||
|
|
{{ item.selectSjItem.name }}
|
|||
|
|
<!-- 多个门店时显示下拉图标 -->
|
|||
|
|
<image v-if="item.sj_list && item.sj_list.length >= 1"
|
|||
|
|
src="https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/4c5f282e-bad3-4c27-b653-9bd5100ae639.png"
|
|||
|
|
mode="aspectFill" class="detail-info-user__company__name__text2__img"
|
|||
|
|
referrer="no-referrer">
|
|||
|
|
</image>
|
|||
|
|
</view>
|
|||
|
|
<view class="sj-pop" v-if="item.showSj">
|
|||
|
|
<view class="sj-pop-item" v-for="(item2,index2) in item.sj_list" :class="{active:item2.id == item.selectSjItem.id}"
|
|||
|
|
:key="index2" @click="selectShop(item,item2)">
|
|||
|
|
{{ item2.name }}
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
|
|||
|
|
</view>
|
|||
|
|
<view class="selectSyr-item-bottom">
|
|||
|
|
<view class="selectSyr-item-right-adress flex-row-center">
|
|||
|
|
<image class="right-adress-icon" src="/static/images/icons/address_icon3.png">
|
|||
|
|
</image>
|
|||
|
|
<text
|
|||
|
|
class="selectSyr-item-right-adress-text">服务区域:{{ item.servers_region.join("、") }}</text>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<!-- 空数据状态 -->
|
|||
|
|
<template #empty>
|
|||
|
|
<noData></noData>
|
|||
|
|
</template>
|
|||
|
|
</CommonList>
|
|||
|
|
|
|||
|
|
<!-- 手艺人详情弹窗 -->
|
|||
|
|
<uv-popup ref="popup" mode="bottom" bgColor="" :closeable="false">
|
|||
|
|
<view class="popup-container">
|
|||
|
|
<!-- 头部:头像+姓名+经验+取消按钮 -->
|
|||
|
|
<view class="header-bar">
|
|||
|
|
<view class="avatar-name-wrap">
|
|||
|
|
<image class="avatar" :src="openTiem.head_photo" mode="aspectFill"></image>
|
|||
|
|
<view class="name-exp">
|
|||
|
|
<text class="name">{{ openTiem.name }}</text>
|
|||
|
|
<view class="exp-tag flex-row-center">
|
|||
|
|
<image class="exp-tag-icon" src="/static/images/icons/experience.png">
|
|||
|
|
</image>
|
|||
|
|
<text>专业经验:{{workExpText(openTiem.major)}}</text>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<text class="cancel-btn" @click="closePopup">取消</text>
|
|||
|
|
</view>
|
|||
|
|
|
|||
|
|
<!-- 服务信息:到家时间+服务区域 -->
|
|||
|
|
<view class="service-info">
|
|||
|
|
<view class="info-item flex-row-center">
|
|||
|
|
<image class="right-time-icon" src="/static/images/icons/time_icon.png">
|
|||
|
|
</image>
|
|||
|
|
<text class="info-text">到家时间:
|
|||
|
|
<text style="color: #333333">{{
|
|||
|
|
openTiem.default_times
|
|||
|
|
}}</text>
|
|||
|
|
</text>
|
|||
|
|
</view>
|
|||
|
|
<view class="info-item flex-row-center" v-if="openTiem.servers_region">
|
|||
|
|
<image class="right-adress-icon" src="/static/images/icons/address_icon3.png">
|
|||
|
|
</image>
|
|||
|
|
<text class="info-text">服务区域:<text style="color: #333333">{{
|
|||
|
|
openTiem.servers_region.join("、")
|
|||
|
|
}}</text></text>
|
|||
|
|
</view>
|
|||
|
|
|
|||
|
|
<!-- 新的门店显示样式 -->
|
|||
|
|
<view class="popup-shop-info" v-if="openTiem.for_shop && openTiem.for_shop.length > 0">
|
|||
|
|
<text class="popup-shop-label">所属门店:</text>
|
|||
|
|
<view class="popup-shop-tags">
|
|||
|
|
<view class="popup-shop-tag">
|
|||
|
|
{{ openTiem.for_shop}}
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
|
|||
|
|
<!-- 介绍文本 -->
|
|||
|
|
<view class="intro-text">
|
|||
|
|
<image class="intro-text-icon" src="/static/images/icons/Introduction.png" />
|
|||
|
|
<text>{{ openTiem.detail }}</text>
|
|||
|
|
</view>
|
|||
|
|
|
|||
|
|
<!-- 确定按钮 -->
|
|||
|
|
<view class="confirm-btn" @click="handleConfirm">确定</view>
|
|||
|
|
</view>
|
|||
|
|
</uv-popup>
|
|||
|
|
</view>
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script>
|
|||
|
|
import searchBox from "@/pages/service/components/search-box.vue";
|
|||
|
|
import CommonList from "@/components/common/CommonList.vue";
|
|||
|
|
export default {
|
|||
|
|
name: "list",
|
|||
|
|
components: {
|
|||
|
|
searchBox,
|
|||
|
|
CommonList,
|
|||
|
|
},
|
|||
|
|
data() {
|
|||
|
|
return {
|
|||
|
|
syrList: [],
|
|||
|
|
url: '/user/serversSelf/syrList',
|
|||
|
|
openTiem: {},
|
|||
|
|
queryData: {
|
|||
|
|
name: "",
|
|||
|
|
id: 1,
|
|||
|
|
servers_region: "河北省-沧州市-黄骅市",
|
|||
|
|
},
|
|||
|
|
};
|
|||
|
|
},
|
|||
|
|
computed: {
|
|||
|
|
tipHeight() {
|
|||
|
|
return this.queryData.servers_region.length == 0 ? 108 : 0;
|
|||
|
|
},
|
|||
|
|
reservationAddress() {
|
|||
|
|
return this.$store.state.reservationAddress;
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
async onLoad(options) {
|
|||
|
|
this.statusBarHeight = this.getRpxStatusBarHeight();
|
|||
|
|
if (options.url) {
|
|||
|
|
this.url = options.url;
|
|||
|
|
}
|
|||
|
|
if (options.id) {
|
|||
|
|
this.queryData.id = options.id;
|
|||
|
|
}
|
|||
|
|
if (Object.keys(this.reservationAddress).length != 0) {
|
|||
|
|
this.queryData.servers_region = this.reservationAddress.dependency;
|
|||
|
|
this.queryData.city = this.reservationAddress.dependency_city;
|
|||
|
|
}
|
|||
|
|
this.$nextTick(() => {
|
|||
|
|
this.search();
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
|
|||
|
|
// 显示门店列表选择弹窗
|
|||
|
|
showShopList(currentItem) {
|
|||
|
|
// 先关闭所有已展开的弹窗
|
|||
|
|
this.syrList.forEach(item => {
|
|||
|
|
if (item !== currentItem && item.showSj) {
|
|||
|
|
this.$set(item, 'showSj', false);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
// 展开当前弹窗
|
|||
|
|
this.$set(currentItem, 'showSj', !currentItem.showSj);
|
|||
|
|
},
|
|||
|
|
// 选择门店
|
|||
|
|
selectShop(item,item2) {
|
|||
|
|
this.$set(item, 'selectSjItem', item2);
|
|||
|
|
},
|
|||
|
|
// 关闭门店选择弹窗
|
|||
|
|
closeShopPopup() {
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
workExpText(workExpNum) {
|
|||
|
|
// 定义映射表(复用性更高)
|
|||
|
|
const expMap = {
|
|||
|
|
1: '实习',
|
|||
|
|
2: '1-3年',
|
|||
|
|
3: '3-5年',
|
|||
|
|
4: '5-10年',
|
|||
|
|
5: '10年以上'
|
|||
|
|
};
|
|||
|
|
// 取值并处理默认情况
|
|||
|
|
return expMap[workExpNum] || '未知工作经验';
|
|||
|
|
},
|
|||
|
|
loadSuccess(e) {
|
|||
|
|
// 处理返回的数据,假设接口返回的数据中,所属门店是数组格式
|
|||
|
|
// 这里您需要根据实际接口返回的数据结构调整
|
|||
|
|
const list = e.data.list || [];
|
|||
|
|
list.forEach(item => {
|
|||
|
|
// 如果接口返回的是字符串,转换为数组
|
|||
|
|
if (item.sj_list && item.sj_list.length > 0) {
|
|||
|
|
// 如果接口直接返回shop_list数组
|
|||
|
|
this.$set(item, 'selectSjItem', item.sj_list[0])
|
|||
|
|
this.$set(item, 'showSj', false)
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
this.syrList = list
|
|||
|
|
console.log(11111, this.syrList)
|
|||
|
|
|
|||
|
|
// 如果没有手艺人清空地区
|
|||
|
|
if (e.data.count == 0 && this.queryData.servers_region.length != 0) {
|
|||
|
|
this.queryData.servers_region = "";
|
|||
|
|
setTimeout(() => {
|
|||
|
|
this.search();
|
|||
|
|
}, 200);
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
openPopup(item) {
|
|||
|
|
this.openTiem = item;
|
|||
|
|
this.$refs.popup.open();
|
|||
|
|
},
|
|||
|
|
closePopup() {
|
|||
|
|
this.$refs.popup.close();
|
|||
|
|
},
|
|||
|
|
handleConfirm() {
|
|||
|
|
// 确定按钮逻辑
|
|||
|
|
this.closePopup();
|
|||
|
|
},
|
|||
|
|
searchConfrim(e) {
|
|||
|
|
this.search();
|
|||
|
|
},
|
|||
|
|
search() {
|
|||
|
|
this.$refs.groupRef.manualRefresh(this.queryData);
|
|||
|
|
},
|
|||
|
|
selectSyr(item) {
|
|||
|
|
if (this.queryData.servers_region.length == 0) {
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
const pages = getCurrentPages();
|
|||
|
|
const prevPage = pages[pages.length - 2];
|
|||
|
|
|
|||
|
|
if (prevPage) {
|
|||
|
|
// 如果有选中的门店,添加到手艺人信息中
|
|||
|
|
// const selectedShop = this.selectedShops[item.id];
|
|||
|
|
// if (selectedShop) {
|
|||
|
|
// item.selectedShop = selectedShop;
|
|||
|
|
// }
|
|||
|
|
this.$store.commit("setreservationSyr", item);
|
|||
|
|
uni.navigateBack();
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
};
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<style lang="less">
|
|||
|
|
.selectSyr {
|
|||
|
|
.selectSyr-tip {
|
|||
|
|
box-sizing: border-box;
|
|||
|
|
width: 100%;
|
|||
|
|
padding: 14rpx 20rpx;
|
|||
|
|
background: #fae7ec;
|
|||
|
|
font-weight: 400;
|
|||
|
|
font-size: 28rpx;
|
|||
|
|
color: #d5131f;
|
|||
|
|
line-height: 40rpx;
|
|||
|
|
text-align: left;
|
|||
|
|
font-style: normal;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.selectSyr-list-tip {
|
|||
|
|
height: 130rpx;
|
|||
|
|
box-sizing: border-box;
|
|||
|
|
padding: 20rpx;
|
|||
|
|
margin: 39rpx 20rpx 0 20rpx;
|
|||
|
|
background: #fff1df;
|
|||
|
|
border-radius: 20rpx;
|
|||
|
|
font-weight: 400;
|
|||
|
|
font-size: 26rpx;
|
|||
|
|
color: #ab6a21;
|
|||
|
|
text-align: left;
|
|||
|
|
font-style: normal;
|
|||
|
|
|
|||
|
|
.selectSyr-list-tip-icon {
|
|||
|
|
width: 30rpx;
|
|||
|
|
height: 26rpx;
|
|||
|
|
margin-right: 12rpx;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.selectSyr-list {
|
|||
|
|
margin-top: 20rpx;
|
|||
|
|
|
|||
|
|
.selectSyr-item {
|
|||
|
|
margin: 0rpx 20rpx 20rpx 20rpx;
|
|||
|
|
padding: 20rpx;
|
|||
|
|
background: #ffffff;
|
|||
|
|
border-radius: 20rpx;
|
|||
|
|
display: flex;
|
|||
|
|
flex-wrap: wrap;
|
|||
|
|
column-gap: 20rpx;
|
|||
|
|
row-gap: 15rpx;
|
|||
|
|
|
|||
|
|
.selectSyr-item-photo {
|
|||
|
|
margin-top: 15rpx;
|
|||
|
|
width: 126rpx;
|
|||
|
|
height: 126rpx;
|
|||
|
|
border-radius: 50%;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.selectSyr-item-right {
|
|||
|
|
flex: 1;
|
|||
|
|
min-width: 0;
|
|||
|
|
|
|||
|
|
.selectSyr-item-right-name {
|
|||
|
|
margin-bottom: 10rpx;
|
|||
|
|
|
|||
|
|
.right-name-left {
|
|||
|
|
font-weight: 500;
|
|||
|
|
font-size: 30rpx;
|
|||
|
|
color: #333333;
|
|||
|
|
line-height: 42rpx;
|
|||
|
|
text-align: left;
|
|||
|
|
font-style: normal;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.right-name-right {
|
|||
|
|
font-weight: 400;
|
|||
|
|
font-size: 22rpx;
|
|||
|
|
color: #E5616A;
|
|||
|
|
text-align: left;
|
|||
|
|
font-style: normal;
|
|||
|
|
gap: 10rpx;
|
|||
|
|
padding: 6rpx 10rpx;
|
|||
|
|
border-radius: 30rpx;
|
|||
|
|
border: 1rpx solid #E3C0C2;
|
|||
|
|
|
|||
|
|
.right-name-right-img {
|
|||
|
|
width: 10rpx;
|
|||
|
|
height: 19rpx;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.selectSyr-item-right-time {
|
|||
|
|
margin-bottom: 4rpx;
|
|||
|
|
font-weight: 400;
|
|||
|
|
font-size: 24rpx;
|
|||
|
|
color: #666666;
|
|||
|
|
line-height: 33rpx;
|
|||
|
|
text-align: left;
|
|||
|
|
font-style: normal;
|
|||
|
|
gap: 10rpx;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.selectSyr-item-bottom {
|
|||
|
|
width: 100%;
|
|||
|
|
padding-top: 20rpx;
|
|||
|
|
border-top: 1rpx solid #f1f1f1;
|
|||
|
|
|
|||
|
|
.selectSyr-item-right-adress {
|
|||
|
|
display: flex;
|
|||
|
|
align-items: flex-start;
|
|||
|
|
gap: 10rpx;
|
|||
|
|
|
|||
|
|
.right-adress-icon {
|
|||
|
|
width: 24rpx;
|
|||
|
|
height: 28rpx;
|
|||
|
|
margin-top: 2rpx;
|
|||
|
|
flex-shrink: 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.selectSyr-item-right-adress-text {
|
|||
|
|
flex: 1;
|
|||
|
|
font-weight: 400;
|
|||
|
|
font-size: 24rpx;
|
|||
|
|
color: #666666;
|
|||
|
|
line-height: 33rpx;
|
|||
|
|
word-break: break-all;
|
|||
|
|
text-align: left;
|
|||
|
|
min-height: 33rpx;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.noSyr {
|
|||
|
|
margin-top: 0;
|
|||
|
|
transform: translateY(-53rpx);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.right-time-icon {
|
|||
|
|
width: 24rpx;
|
|||
|
|
height: 24rpx;
|
|||
|
|
flex-shrink: 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.right-adress-icon {
|
|||
|
|
width: 24rpx;
|
|||
|
|
height: 28rpx;
|
|||
|
|
margin-top: 2rpx;
|
|||
|
|
flex-shrink: 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 弹窗样式
|
|||
|
|
.popup-container {
|
|||
|
|
padding: 30rpx;
|
|||
|
|
box-sizing: border-box;
|
|||
|
|
width: 100%;
|
|||
|
|
background: #ffffff;
|
|||
|
|
border-radius: 30rpx 30rpx 0rpx 0rpx;
|
|||
|
|
|
|||
|
|
// 头部区域
|
|||
|
|
.header-bar {
|
|||
|
|
display: flex;
|
|||
|
|
justify-content: space-between;
|
|||
|
|
align-items: center;
|
|||
|
|
padding-bottom: 20rpx;
|
|||
|
|
margin-bottom: 20rpx;
|
|||
|
|
border-bottom: 1rpx solid #f1f1f1;
|
|||
|
|
|
|||
|
|
.avatar-name-wrap {
|
|||
|
|
display: flex;
|
|||
|
|
align-items: center;
|
|||
|
|
|
|||
|
|
.avatar {
|
|||
|
|
width: 124rpx;
|
|||
|
|
height: 124rpx;
|
|||
|
|
border-radius: 50%;
|
|||
|
|
margin-right: 15rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.name-exp {
|
|||
|
|
display: flex;
|
|||
|
|
flex-direction: column;
|
|||
|
|
justify-content: center;
|
|||
|
|
|
|||
|
|
.name {
|
|||
|
|
font-weight: 500;
|
|||
|
|
font-size: 32rpx;
|
|||
|
|
color: #333333;
|
|||
|
|
line-height: 45rpx;
|
|||
|
|
text-align: left;
|
|||
|
|
font-style: normal;
|
|||
|
|
margin-bottom: 15rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.exp-tag {
|
|||
|
|
padding: 0 22rpx 0 15rpx;
|
|||
|
|
height: 45rpx;
|
|||
|
|
background: #fff0f5;
|
|||
|
|
border-radius: 23rpx;
|
|||
|
|
font-weight: 400;
|
|||
|
|
font-size: 26rpx;
|
|||
|
|
color: #dc424c;
|
|||
|
|
line-height: 45rpx;
|
|||
|
|
text-align: left;
|
|||
|
|
font-style: normal;
|
|||
|
|
width: fit-content;
|
|||
|
|
gap: 10rpx;
|
|||
|
|
|
|||
|
|
.exp-tag-icon {
|
|||
|
|
width: 27rpx;
|
|||
|
|
height: 24rpx;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.cancel-btn {
|
|||
|
|
position: absolute;
|
|||
|
|
right: 30rpx;
|
|||
|
|
top: 30rpx;
|
|||
|
|
font-family: PingFangSC, PingFang SC;
|
|||
|
|
font-weight: 400;
|
|||
|
|
font-size: 26rpx;
|
|||
|
|
color: #999999;
|
|||
|
|
line-height: 37rpx;
|
|||
|
|
text-align: left;
|
|||
|
|
font-style: normal;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 服务信息区域
|
|||
|
|
.service-info {
|
|||
|
|
margin-bottom: 30rpx;
|
|||
|
|
|
|||
|
|
.info-item {
|
|||
|
|
display: flex;
|
|||
|
|
align-items: flex-start;
|
|||
|
|
margin-bottom: 8px;
|
|||
|
|
|
|||
|
|
&:last-child {
|
|||
|
|
margin-bottom: 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.info-text {
|
|||
|
|
flex: 1;
|
|||
|
|
font-weight: 400;
|
|||
|
|
font-size: 26rpx;
|
|||
|
|
color: #666666;
|
|||
|
|
line-height: 35rpx;
|
|||
|
|
text-align: left;
|
|||
|
|
font-style: normal;
|
|||
|
|
margin-left: 10rpx;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 介绍文本
|
|||
|
|
.intro-text {
|
|||
|
|
padding-top: 25rpx;
|
|||
|
|
margin-bottom: 100rpx;
|
|||
|
|
font-weight: 400;
|
|||
|
|
font-size: 26rpx;
|
|||
|
|
color: #666666;
|
|||
|
|
line-height: 33rpx;
|
|||
|
|
text-align: left;
|
|||
|
|
font-style: normal;
|
|||
|
|
position: relative;
|
|||
|
|
|
|||
|
|
.intro-text-icon {
|
|||
|
|
position: absolute;
|
|||
|
|
left: 0;
|
|||
|
|
top: 0;
|
|||
|
|
width: 72rpx;
|
|||
|
|
height: 44rpx;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 确定按钮
|
|||
|
|
.confirm-btn {
|
|||
|
|
margin: 0 21rpx;
|
|||
|
|
width: 648rpx;
|
|||
|
|
height: 94rpx;
|
|||
|
|
background: linear-gradient(180deg, #f52540 0%, #e8101e 100%);
|
|||
|
|
border-radius: 48rpx;
|
|||
|
|
font-weight: 400;
|
|||
|
|
font-size: 30rpx;
|
|||
|
|
color: #ffffff;
|
|||
|
|
line-height: 42rpx;
|
|||
|
|
text-align: left;
|
|||
|
|
font-style: normal;
|
|||
|
|
display: flex;
|
|||
|
|
justify-content: center;
|
|||
|
|
align-items: center;
|
|||
|
|
|
|||
|
|
&:active {
|
|||
|
|
opacity: 0.9;
|
|||
|
|
transform: scale(0.98);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 新的门店显示样式
|
|||
|
|
.popup-shop-info {
|
|||
|
|
display: flex;
|
|||
|
|
align-items: flex-start;
|
|||
|
|
margin-bottom: 20rpx;
|
|||
|
|
|
|||
|
|
.popup-shop-label {
|
|||
|
|
font-weight: 400;
|
|||
|
|
font-size: 24rpx;
|
|||
|
|
color: #666666;
|
|||
|
|
line-height: 33rpx;
|
|||
|
|
white-space: nowrap;
|
|||
|
|
margin-right: 10rpx;
|
|||
|
|
margin-top: 2rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.popup-shop-tags {
|
|||
|
|
flex: 1;
|
|||
|
|
display: flex;
|
|||
|
|
flex-wrap: wrap;
|
|||
|
|
gap: 8rpx;
|
|||
|
|
|
|||
|
|
.popup-shop-tag {
|
|||
|
|
padding: 4rpx 12rpx;
|
|||
|
|
background: #f5f5f5;
|
|||
|
|
border-radius: 10rpx;
|
|||
|
|
font-weight: 400;
|
|||
|
|
font-size: 24rpx;
|
|||
|
|
color: #666666;
|
|||
|
|
line-height: 33rpx;
|
|||
|
|
text-align: left;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// 所属门店样式
|
|||
|
|
.detail-info-user__company__name {
|
|||
|
|
box-sizing: border-box;
|
|||
|
|
background: #FFF5F6;
|
|||
|
|
border-radius: 10rpx;
|
|||
|
|
border: 1rpx solid #FFD0DC;
|
|||
|
|
padding-right: 8rpx;
|
|||
|
|
display: flex;
|
|||
|
|
align-items: center;
|
|||
|
|
margin-right: 21rpx;
|
|||
|
|
width: fit-content;
|
|||
|
|
margin-top: 15rpx;
|
|||
|
|
margin-bottom: 5rpx;
|
|||
|
|
padding: 2rpx 10rpx;
|
|||
|
|
max-width: 100%;
|
|||
|
|
position: relative;
|
|||
|
|
|
|||
|
|
.detail-info-user__company__name__text {
|
|||
|
|
font-weight: 400;
|
|||
|
|
font-size: 20rpx;
|
|||
|
|
color: #a7abae;
|
|||
|
|
text-align: left;
|
|||
|
|
font-style: normal;
|
|||
|
|
margin-right: 10rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.detail-info-user__company__name__line {
|
|||
|
|
font-weight: 400;
|
|||
|
|
font-size: 20rpx;
|
|||
|
|
color: #D2C7C7;
|
|||
|
|
border-radius: 1rpx;
|
|||
|
|
text-align: left;
|
|||
|
|
font-style: normal;
|
|||
|
|
margin-right: 10rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.detail-info-user__company__name__text1 {
|
|||
|
|
font-weight: 400;
|
|||
|
|
font-size: 20rpx;
|
|||
|
|
color: #666666;
|
|||
|
|
text-align: left;
|
|||
|
|
font-style: normal;
|
|||
|
|
margin-right: 10rpx;
|
|||
|
|
white-space: nowrap;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.detail-info-user__company__name__text2 {
|
|||
|
|
font-weight: 400;
|
|||
|
|
font-size: 20rpx;
|
|||
|
|
color: #855151;
|
|||
|
|
text-align: left;
|
|||
|
|
font-style: normal;
|
|||
|
|
display: flex;
|
|||
|
|
align-items: center;
|
|||
|
|
flex-wrap: nowrap;
|
|||
|
|
max-width: 100%;
|
|||
|
|
overflow: hidden;
|
|||
|
|
|
|||
|
|
.detail-info-user__company__name__text2__img {
|
|||
|
|
width: 15rpx;
|
|||
|
|
height: 8rpx;
|
|||
|
|
margin-left: 8rpx;
|
|||
|
|
flex-shrink: 0;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.detail-info-user__company__name__card {
|
|||
|
|
margin-right: 8rpx;
|
|||
|
|
width: 39rpx;
|
|||
|
|
height: 34rpx;
|
|||
|
|
background: rgba(212, 215, 223, 0.2);
|
|||
|
|
border-radius: 6rpx;
|
|||
|
|
border: 1rpx solid rgba(169, 172, 179, 0.2);
|
|||
|
|
display: flex;
|
|||
|
|
align-items: center;
|
|||
|
|
justify-content: center;
|
|||
|
|
flex-shrink: 0;
|
|||
|
|
|
|||
|
|
.detail-info-user__company__name__card__img {
|
|||
|
|
width: 22rpx;
|
|||
|
|
height: 21rpx;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.sj-pop {
|
|||
|
|
position: absolute;
|
|||
|
|
top: 60rpx;
|
|||
|
|
right: -34rpx;
|
|||
|
|
width: 358rpx;
|
|||
|
|
background: #FFFFFF;
|
|||
|
|
box-shadow: 0rpx 1rpx 8rpx 2rpx #E6E6E6;
|
|||
|
|
padding: 20rpx;
|
|||
|
|
box-sizing: border-box;
|
|||
|
|
border-radius: 16rpx;
|
|||
|
|
/* 新增圆角,更美观 */
|
|||
|
|
z-index: 9999;
|
|||
|
|
/* 新增层级,避免被遮挡 */
|
|||
|
|
max-height: 400rpx;
|
|||
|
|
overflow: visible;
|
|||
|
|
|
|||
|
|
/* 新增:三角形箭头样式 */
|
|||
|
|
&::before {
|
|||
|
|
content: '';
|
|||
|
|
position: absolute;
|
|||
|
|
top: -20rpx;
|
|||
|
|
/* 比主体层向下偏移1rpx(对应阴影vertical:1rpx) */
|
|||
|
|
right: 58rpx;
|
|||
|
|
/* 向左微调,让阴影向两侧扩散 */
|
|||
|
|
width: 0;
|
|||
|
|
height: 0;
|
|||
|
|
/* 尺寸比主体大2rpx(对应阴影spread:2rpx),模拟扩散效果 */
|
|||
|
|
border-width: 0 20rpx 18rpx 18rpx;
|
|||
|
|
border-style: solid;
|
|||
|
|
border-color: transparent transparent #E6E6E6 transparent;
|
|||
|
|
/* 阴影颜色 */
|
|||
|
|
z-index: 1;
|
|||
|
|
/* 层级低于主体 */
|
|||
|
|
/* 核心:模拟box-shadow的blur:8rpx模糊效果 */
|
|||
|
|
filter: blur(2rpx);
|
|||
|
|
/* 适配rpx的模糊值,视觉匹配8rpx的box-shadow模糊 */
|
|||
|
|
opacity: 0.8;
|
|||
|
|
/* 弱化阴影,更贴近原风格 */
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 第二步:三角形主体层(白色,覆盖阴影层中间,只露边缘阴影) */
|
|||
|
|
&::after {
|
|||
|
|
content: '';
|
|||
|
|
position: absolute;
|
|||
|
|
top: -16rpx;
|
|||
|
|
right: 60rpx;
|
|||
|
|
width: 0;
|
|||
|
|
height: 0;
|
|||
|
|
border-width: 0 18rpx 16rpx 16rpx;
|
|||
|
|
border-style: solid;
|
|||
|
|
border-color: transparent transparent #FFFFFF transparent;
|
|||
|
|
/* 主体白色 */
|
|||
|
|
z-index: 2;
|
|||
|
|
/* 层级高于阴影层 */
|
|||
|
|
/* 可选:给主体加极轻微阴影,增强层次感 */
|
|||
|
|
filter: drop-shadow(0rpx 1rpx 1rpx rgba(230, 230, 230, 0.3));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
.sj-pop-item {
|
|||
|
|
font-weight: 400;
|
|||
|
|
font-size: 24rpx;
|
|||
|
|
color: #333333;
|
|||
|
|
line-height: 33rpx;
|
|||
|
|
text-align: left;
|
|||
|
|
font-style: normal;
|
|||
|
|
margin-bottom: 20rpx;
|
|||
|
|
padding-bottom: 20rpx;
|
|||
|
|
border-bottom: 1rpx solid #F1F1F1;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.sj-pop-item:last-child {
|
|||
|
|
margin-bottom: 0rpx;
|
|||
|
|
padding-bottom: 0rpx;
|
|||
|
|
border-bottom: none;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 选中状态样式 */
|
|||
|
|
.sj-pop-item.active {
|
|||
|
|
color: #E8101E ;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//list样式
|
|||
|
|
.common-list {
|
|||
|
|
background-color: #fafafa !important;
|
|||
|
|
padding-bottom: 0rpx;
|
|||
|
|
|
|||
|
|
::v-deep .list-scroll {
|
|||
|
|
margin-top: 0rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
::v-deep .list-container {
|
|||
|
|
padding: 0rpx;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</style>
|