|
|
|
|
@ -19,46 +19,96 @@ const $props = defineProps({
|
|
|
|
|
|
|
|
|
|
const combo_active = ref("");
|
|
|
|
|
const person_active = ref("");
|
|
|
|
|
const selectItemClick = (type, value) => {
|
|
|
|
|
select_active.value[type] = value;
|
|
|
|
|
};
|
|
|
|
|
const selectDone = () => {
|
|
|
|
|
combo_active.value = select_active.value.combo;
|
|
|
|
|
person_active.value = select_active.value.person;
|
|
|
|
|
select_drawer_ref.value.close();
|
|
|
|
|
};
|
|
|
|
|
const clearSelectClick = () => {
|
|
|
|
|
combo_active.value = "";
|
|
|
|
|
person_active.value = "";
|
|
|
|
|
};
|
|
|
|
|
const combo_select = ref({
|
|
|
|
|
combo: [],
|
|
|
|
|
person: [],
|
|
|
|
|
});
|
|
|
|
|
const comboActiveName = () => {
|
|
|
|
|
for (let i in combo_select.value.combo) {
|
|
|
|
|
if (combo_select.value.combo[i].value === combo_active.value) {
|
|
|
|
|
return combo_select.value.combo[i].label;
|
|
|
|
|
let popup = ref(null);
|
|
|
|
|
let selectKey = ref(""); // 整个选择的key
|
|
|
|
|
let sortIndex = ref(0); // 排序的索引
|
|
|
|
|
let comboIndex = ref(null); // 套餐类型索引
|
|
|
|
|
let crowdIndex = ref(null); // 适用人群索引
|
|
|
|
|
let priceIndex = ref(null); // 套餐价格索引
|
|
|
|
|
let projectIds = ref([]); // 项目id集合
|
|
|
|
|
let screenObj = ref({}); // 筛选条件
|
|
|
|
|
let combo_select = ref({}); // 套餐筛选条件
|
|
|
|
|
let comboIds = ref([]); // 套餐对比列表
|
|
|
|
|
|
|
|
|
|
const selectItemClick = async (index, key) => {
|
|
|
|
|
// 选择套餐条件
|
|
|
|
|
let data = combo_select.value;
|
|
|
|
|
if (selectKey.value == "sort_list") {
|
|
|
|
|
if (sortIndex.value == index) {
|
|
|
|
|
sortIndex.value = 0;
|
|
|
|
|
} else {
|
|
|
|
|
sortIndex.value = index;
|
|
|
|
|
}
|
|
|
|
|
screenObj.value.combo_sort = data[selectKey.value][index]?.id;
|
|
|
|
|
} else if (selectKey.value == "combo_type") {
|
|
|
|
|
if (comboIndex.value == index) {
|
|
|
|
|
comboIndex.value = null;
|
|
|
|
|
delete screenObj.value.combo_type;
|
|
|
|
|
} else {
|
|
|
|
|
comboIndex.value = index;
|
|
|
|
|
screenObj.value.combo_type = data[selectKey.value][index]?.id;
|
|
|
|
|
}
|
|
|
|
|
} else if (selectKey.value == "combo_crowd") {
|
|
|
|
|
if (crowdIndex.value == index) {
|
|
|
|
|
crowdIndex.value = null;
|
|
|
|
|
delete screenObj.value.combo_crowd;
|
|
|
|
|
} else {
|
|
|
|
|
crowdIndex.value = index;
|
|
|
|
|
screenObj.value.combo_crowd = data[selectKey.value][index]?.id;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (key == "combo_price") {
|
|
|
|
|
if (priceIndex.value == index) {
|
|
|
|
|
priceIndex.value = null;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
priceIndex.value = index;
|
|
|
|
|
} else {
|
|
|
|
|
if (projectIds.value.includes(index)) {
|
|
|
|
|
projectIds.value.splice(projectIds.value.indexOf(index), 1);
|
|
|
|
|
} else {
|
|
|
|
|
projectIds.value.push(index);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
return "套餐类型";
|
|
|
|
|
await getComboList();
|
|
|
|
|
popup.value.close();
|
|
|
|
|
};
|
|
|
|
|
const personActiveName = () => {
|
|
|
|
|
for (let i in combo_select.value.person) {
|
|
|
|
|
if (combo_select.value.person[i].value === person_active.value) {
|
|
|
|
|
return combo_select.value.person[i].label;
|
|
|
|
|
}
|
|
|
|
|
const selectDone = async () => {
|
|
|
|
|
if (priceIndex.value === null) {
|
|
|
|
|
delete screenObj.value.combo_price;
|
|
|
|
|
} else {
|
|
|
|
|
screenObj.value.combo_price =
|
|
|
|
|
combo_select.value["combo_price"][priceIndex.value]?.id;
|
|
|
|
|
}
|
|
|
|
|
if (projectIds.value.length) {
|
|
|
|
|
screenObj.value.combo_item = projectIds.value;
|
|
|
|
|
} else {
|
|
|
|
|
delete screenObj.value.combo_item;
|
|
|
|
|
}
|
|
|
|
|
return "适用人群";
|
|
|
|
|
await getComboList();
|
|
|
|
|
select_drawer_ref.value.close();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const remake = () => {
|
|
|
|
|
// 重置筛选
|
|
|
|
|
delete screenObj.value.combo_price;
|
|
|
|
|
delete screenObj.value.combo_item;
|
|
|
|
|
priceIndex.value = null;
|
|
|
|
|
projectIds.value = [];
|
|
|
|
|
};
|
|
|
|
|
const getComboSelect = async () => {
|
|
|
|
|
uni.showLoading();
|
|
|
|
|
const response = await $api("ComboSelect");
|
|
|
|
|
const response = await $api("GetComboSort");
|
|
|
|
|
uni.hideLoading();
|
|
|
|
|
$response(response, () => {
|
|
|
|
|
$response(response, async () => {
|
|
|
|
|
combo_select.value = response.data;
|
|
|
|
|
getComboList();
|
|
|
|
|
if ("sort_list" in combo_select.value) {
|
|
|
|
|
selectKey.value = "sort_list";
|
|
|
|
|
sortIndex.value = 0;
|
|
|
|
|
}
|
|
|
|
|
await getComboList();
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
@ -74,6 +124,7 @@ const combo_list = ref({
|
|
|
|
|
name: "",
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const combo_list_computed = computed(() => {
|
|
|
|
|
let list = [];
|
|
|
|
|
for (let i in combo_list.value.list) {
|
|
|
|
|
@ -104,19 +155,33 @@ const combo_list_computed = computed(() => {
|
|
|
|
|
});
|
|
|
|
|
const getComboList = async () => {
|
|
|
|
|
uni.showLoading();
|
|
|
|
|
const response = await $api("ComboList", {
|
|
|
|
|
let obj = {
|
|
|
|
|
doctor: $store.save.doctor,
|
|
|
|
|
hospital: hospital_active.value,
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
if (screenObj.value) {
|
|
|
|
|
obj = Object.assign(obj, screenObj.value);
|
|
|
|
|
}
|
|
|
|
|
const response = await $api("ComboList", obj);
|
|
|
|
|
uni.hideLoading();
|
|
|
|
|
$response(response, () => {
|
|
|
|
|
combo_list.value = response.data;
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const contrastClick = async (item) => {
|
|
|
|
|
if (comboIds.value.includes(item.combo_id)) {
|
|
|
|
|
comboIds.value.splice(comboIds.value.indexOf(item.combo_id), 1);
|
|
|
|
|
} else {
|
|
|
|
|
comboIds.value.push(item.combo_id);
|
|
|
|
|
}
|
|
|
|
|
$store.setComboContrast(comboIds.value);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const hospital_active = ref(0);
|
|
|
|
|
const checkHospital = () => {
|
|
|
|
|
let hospital_id = $store.save.hospital;
|
|
|
|
|
comboIds.value = $store.getComboContrast() || [];
|
|
|
|
|
if (!hospital_id) {
|
|
|
|
|
hospital_id = $store.config.hospital[0].id;
|
|
|
|
|
}
|
|
|
|
|
@ -127,6 +192,29 @@ const checkHospital = () => {
|
|
|
|
|
getComboSelect();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const tabPatients = () => {
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
url: "/pages/user/choose/choose",
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const open = (key) => {
|
|
|
|
|
if (key) {
|
|
|
|
|
// 点击三个筛选条件
|
|
|
|
|
selectKey.value = key;
|
|
|
|
|
popup.value.close();
|
|
|
|
|
let time = setTimeout(() => {
|
|
|
|
|
popup.value.open("top");
|
|
|
|
|
clearTimeout(time);
|
|
|
|
|
}, 400);
|
|
|
|
|
} else {
|
|
|
|
|
// 点击筛选
|
|
|
|
|
popup.value.close();
|
|
|
|
|
selectKey.value = "screen";
|
|
|
|
|
select_drawer_ref.value.open();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const config_ref = ref(null);
|
|
|
|
|
const configRef = (e) => {
|
|
|
|
|
if (!config_ref.value) {
|
|
|
|
|
@ -139,17 +227,6 @@ const select_drawer_ref = ref(null);
|
|
|
|
|
const selectDrawerRef = (e) => {
|
|
|
|
|
select_drawer_ref.value = e;
|
|
|
|
|
};
|
|
|
|
|
const select_active = ref({
|
|
|
|
|
combo: "",
|
|
|
|
|
person: "",
|
|
|
|
|
});
|
|
|
|
|
const selectShow = () => {
|
|
|
|
|
select_active.value = {
|
|
|
|
|
combo: combo_active.value,
|
|
|
|
|
person: person_active.value,
|
|
|
|
|
};
|
|
|
|
|
select_drawer_ref.value.open();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
onShow(() => {
|
|
|
|
|
if (!!config_ref.value) {
|
|
|
|
|
@ -160,25 +237,26 @@ onShow(() => {
|
|
|
|
|
const buyClick = async (item) => {
|
|
|
|
|
let query = "?comboId=" + item.combo_id;
|
|
|
|
|
if ($props.groupId) {
|
|
|
|
|
// 团检把团检ID加上
|
|
|
|
|
// 团检把团检ID加上
|
|
|
|
|
query += "&groupId=" + $props.groupId;
|
|
|
|
|
}
|
|
|
|
|
// 个检只要套餐ID
|
|
|
|
|
// 个检只要套餐ID
|
|
|
|
|
// 预约 跳转到个检/团检套餐详情
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
url: "/pages/main/tj/tjxq" + query,
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const toComboCompare = async (item) => {
|
|
|
|
|
for(let i in $store.combo_compare){
|
|
|
|
|
if(!$store.combo_compare[Number(i)]){
|
|
|
|
|
$store.combo_compare[Number(i)] = item.combo_id;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const toRouter = () => {
|
|
|
|
|
if(!comboIds.value.length){
|
|
|
|
|
uni.showToast({
|
|
|
|
|
title: "请先选择套餐",
|
|
|
|
|
icon: "none",
|
|
|
|
|
});
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
url: "/pages/buy/contrast/contrast"
|
|
|
|
|
url: "/pages/main/combo/tcdb",
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
</script>
|
|
|
|
|
@ -189,6 +267,24 @@ const toComboCompare = async (item) => {
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<view class="header_wrapper">
|
|
|
|
|
<view
|
|
|
|
|
@click="toRouter"
|
|
|
|
|
class="center fixed pt-10rpx box-border left-40rpx bottom-5% rounded-full w-110rpx h-110rpx bg-#239EA3 flex-col"
|
|
|
|
|
>
|
|
|
|
|
<uni-badge
|
|
|
|
|
:text="comboIds.length"
|
|
|
|
|
absolute="rightTop"
|
|
|
|
|
size="small"
|
|
|
|
|
>
|
|
|
|
|
<image
|
|
|
|
|
src="@/static/assets/slices/duibi.png"
|
|
|
|
|
mode="widthFix"
|
|
|
|
|
class="w-42rpx"
|
|
|
|
|
/>
|
|
|
|
|
</uni-badge>
|
|
|
|
|
<text class="text-22rpx text-#fff -mt-5rpx">对比</text>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<view v-if="!!combo_list.hospital.id" class="hospital_wrapper">
|
|
|
|
|
<view class="hospital_icon_wrapper">
|
|
|
|
|
<image src="@/static/assets/dingwei@2x.png"></image>
|
|
|
|
|
@ -200,7 +296,11 @@ const toComboCompare = async (item) => {
|
|
|
|
|
<image src="@/static/assets/gengduo@2x.png"></image>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view v-if="!!combo_list.info.name" class="user_wrapper">
|
|
|
|
|
<view
|
|
|
|
|
v-if="!!combo_list.info.name"
|
|
|
|
|
class="user_wrapper"
|
|
|
|
|
@click="tabPatients()"
|
|
|
|
|
>
|
|
|
|
|
<view class="user_title_wrapper">就诊人:</view>
|
|
|
|
|
<view class="user_name_wrapper">{{ combo_list.info.name }}</view>
|
|
|
|
|
<view v-if="combo_list.info.count > 1" class="user_choose_wrapper">
|
|
|
|
|
@ -208,56 +308,50 @@ const toComboCompare = async (item) => {
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="doctor_wrapper">
|
|
|
|
|
<view class="doctor_tip_wrapper">
|
|
|
|
|
<text v-if="!!combo_list.doctor.id">已根据指定医生:</text>
|
|
|
|
|
<text v-else>可选择指定医生:</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="doctor_name_wrapper">
|
|
|
|
|
{{ !!combo_list.doctor.id ? combo_list.doctor.name : "前往选择" }}
|
|
|
|
|
</view>
|
|
|
|
|
<view class="doctor_tip_wrapper">(自动筛选匹配套餐)</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="select_wrapper">
|
|
|
|
|
<view
|
|
|
|
|
@click="clearSelectClick()"
|
|
|
|
|
class="select_item_wrapper"
|
|
|
|
|
:class="[!combo_active && !person_active ? 'active' : '']"
|
|
|
|
|
>
|
|
|
|
|
<view class="select_item_name_wrapper">综合排序</view>
|
|
|
|
|
<view class="select_item_icon_wrapper">
|
|
|
|
|
<image src="@/static/assets/xuanzegengduo@2x.png"></image>
|
|
|
|
|
<view class="relative z-999 pt-10rpx center">
|
|
|
|
|
<view class="doctor_wrapper">
|
|
|
|
|
<view class="doctor_tip_wrapper">
|
|
|
|
|
<text v-if="!!combo_list.doctor.id">已根据指定医生:</text>
|
|
|
|
|
<text v-else>可选择指定医生:</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="select_item_line_wrapper"></view>
|
|
|
|
|
</view>
|
|
|
|
|
<view
|
|
|
|
|
@click="selectShow()"
|
|
|
|
|
class="select_item_wrapper"
|
|
|
|
|
:class="[!!combo_active ? 'active' : '']"
|
|
|
|
|
>
|
|
|
|
|
<view class="select_item_name_wrapper">{{
|
|
|
|
|
!!combo_active ? comboActiveName() : "套餐类型"
|
|
|
|
|
}}</view>
|
|
|
|
|
<view class="select_item_icon_wrapper">
|
|
|
|
|
<image src="@/static/assets/xuanzegengduo@2x.png"></image>
|
|
|
|
|
<view class="doctor_name_wrapper">
|
|
|
|
|
{{ !!combo_list.doctor.id ? combo_list.doctor.name : "前往选择" }}
|
|
|
|
|
</view>
|
|
|
|
|
<view class="select_item_line_wrapper"></view>
|
|
|
|
|
<view class="doctor_tip_wrapper">(自动筛选匹配套餐)</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="select_wrapper flex" v-if="selectKey">
|
|
|
|
|
<template v-for="(value, key, index) in combo_select" :key="index">
|
|
|
|
|
<view
|
|
|
|
|
@click="open(key)"
|
|
|
|
|
class="flex-1 center text-#2f2f2f text-26rpx line-height-[1]"
|
|
|
|
|
v-if="key != 'combo_price' && key != 'combo_item'"
|
|
|
|
|
:class="{
|
|
|
|
|
'!text-#239EA3': selectKey == key,
|
|
|
|
|
}"
|
|
|
|
|
>
|
|
|
|
|
<view v-if="key == 'sort_list'">
|
|
|
|
|
{{ value[sortIndex]?.name || "综合排序" }}
|
|
|
|
|
</view>
|
|
|
|
|
<view v-if="key == 'combo_type'">
|
|
|
|
|
{{ value[comboIndex]?.name || "套餐类型" }}
|
|
|
|
|
</view>
|
|
|
|
|
<view v-if="key == 'combo_crowd'">
|
|
|
|
|
{{ value[crowdIndex]?.name || "适用人群" }}
|
|
|
|
|
</view>
|
|
|
|
|
<view class="select_item_icon_wrapper">
|
|
|
|
|
<image src="@/static/assets/xuanzegengduo@2x.png"></image>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</template>
|
|
|
|
|
<view
|
|
|
|
|
@click="selectShow()"
|
|
|
|
|
class="select_item_wrapper"
|
|
|
|
|
:class="[!!person_active ? 'active' : '']"
|
|
|
|
|
@click="open()"
|
|
|
|
|
:class="{
|
|
|
|
|
'!text-#239EA3': selectKey == 'screen',
|
|
|
|
|
}"
|
|
|
|
|
class="mx-20rpx center text-#2f2f2f text-26rpx"
|
|
|
|
|
>
|
|
|
|
|
<view class="select_item_name_wrapper">{{
|
|
|
|
|
!!person_active ? personActiveName() : "适用人群"
|
|
|
|
|
}}</view>
|
|
|
|
|
<view class="select_item_icon_wrapper">
|
|
|
|
|
<image src="@/static/assets/xuanzegengduo@2x.png"></image>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="select_item_line_wrapper"></view>
|
|
|
|
|
</view>
|
|
|
|
|
<view @click="selectShow()" class="select_item_wrapper">
|
|
|
|
|
<view class="select_item_name_wrapper">筛选</view>
|
|
|
|
|
<view>筛选</view>
|
|
|
|
|
<view class="select_item_icon2_wrapper">
|
|
|
|
|
<image src="@/static/assets/shaixuan@2x.png"></image>
|
|
|
|
|
</view>
|
|
|
|
|
@ -308,7 +402,9 @@ const toComboCompare = async (item) => {
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="combo_button_wrapper">
|
|
|
|
|
<view @click="toComboCompare(i)" class="combo_pick_button_wrapper">对比</view>
|
|
|
|
|
<view @click="contrastClick(i)" class="combo_pick_button_wrapper">{{
|
|
|
|
|
comboIds.includes(i.combo_id) ? "已加入" : "对比"
|
|
|
|
|
}}</view>
|
|
|
|
|
<view class="combo_buy_button_wrapper" @click="buyClick(i)"
|
|
|
|
|
>预约</view
|
|
|
|
|
>
|
|
|
|
|
@ -316,54 +412,114 @@ const toComboCompare = async (item) => {
|
|
|
|
|
<view class="combo_line_wrapper"></view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<uni-popup ref="popup" mask-background-color="transparent">
|
|
|
|
|
<view class="pt-260rpx w-full h-100vh" @click="popup.close()">
|
|
|
|
|
<view class="bg-[rgba(0,0,0,0.3)] h-100%">
|
|
|
|
|
<view
|
|
|
|
|
class="bg-#fff"
|
|
|
|
|
:class="
|
|
|
|
|
selectKey != 'sort_list'
|
|
|
|
|
? 'flex pt20rpx px10rpx pb0 box-border flex-wrap'
|
|
|
|
|
: ''
|
|
|
|
|
"
|
|
|
|
|
>
|
|
|
|
|
<view
|
|
|
|
|
v-for="(val, index) in combo_select[selectKey]"
|
|
|
|
|
:key="index"
|
|
|
|
|
@click.stop="selectItemClick(index)"
|
|
|
|
|
:class="{
|
|
|
|
|
'min-w-23% mx-1% mb-20rpx': selectKey != 'sort_list',
|
|
|
|
|
}"
|
|
|
|
|
>
|
|
|
|
|
<uni-list-item v-if="selectKey == 'sort_list'">
|
|
|
|
|
<template v-slot:body>
|
|
|
|
|
<text
|
|
|
|
|
class="text-26rpx"
|
|
|
|
|
:class="{
|
|
|
|
|
'!text-#239EA3': sortIndex == index,
|
|
|
|
|
}"
|
|
|
|
|
>{{ val.name }}</text
|
|
|
|
|
>
|
|
|
|
|
</template>
|
|
|
|
|
</uni-list-item>
|
|
|
|
|
<view
|
|
|
|
|
v-else
|
|
|
|
|
class="box-border px-28rpx py-20rpx text-26rpx center line-height-[1] rounded-5rpx"
|
|
|
|
|
:class="{
|
|
|
|
|
'!bg-#239EA3 !text-#fff':
|
|
|
|
|
(selectKey == 'combo_type' && comboIndex == index) ||
|
|
|
|
|
(selectKey == 'combo_crowd' && crowdIndex == index),
|
|
|
|
|
'!text-#747474 !bg-#e0e0e0':
|
|
|
|
|
(selectKey == 'combo_type' && comboIndex != index) ||
|
|
|
|
|
(selectKey == 'combo_crowd' && crowdIndex != index),
|
|
|
|
|
}"
|
|
|
|
|
>{{ val.name }}</view
|
|
|
|
|
>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</uni-popup>
|
|
|
|
|
<uni-drawer :ref="selectDrawerRef" mode="right" :mask-click="false">
|
|
|
|
|
<view>
|
|
|
|
|
<scroll-view scroll-y="true">
|
|
|
|
|
<view>
|
|
|
|
|
<view class="select_group_wrapper">
|
|
|
|
|
<view class="select_group_title_wrapper">套餐类型</view>
|
|
|
|
|
<view class="select_group_line_wrapper">
|
|
|
|
|
<view class="text-30rpx bold">套餐价格</view>
|
|
|
|
|
<view class="select_group_line_wrapper mt-20rpx">
|
|
|
|
|
<view
|
|
|
|
|
@click="selectItemClick('combo', '')"
|
|
|
|
|
class="select_group_item_wrapper"
|
|
|
|
|
:class="[select_active.combo === '' ? 'active' : '']"
|
|
|
|
|
v-for="(val, index) in combo_select['combo_price']"
|
|
|
|
|
:key="index"
|
|
|
|
|
@click.stop="selectItemClick(index, 'combo_price')"
|
|
|
|
|
class="min-w-31% mx-1% mb-20rpx"
|
|
|
|
|
>
|
|
|
|
|
全部
|
|
|
|
|
</view>
|
|
|
|
|
<view
|
|
|
|
|
@click="selectItemClick('combo', i.value)"
|
|
|
|
|
class="select_group_item_wrapper"
|
|
|
|
|
v-for="(i, k) in combo_select.combo"
|
|
|
|
|
:key="k"
|
|
|
|
|
:class="[select_active.combo === i.value ? 'active' : '']"
|
|
|
|
|
>
|
|
|
|
|
{{ i.label }}
|
|
|
|
|
<view
|
|
|
|
|
class="box-border px-20rpx py-20rpx text-22rpx center line-height-[1] rounded-5rpx"
|
|
|
|
|
:class="{
|
|
|
|
|
'!bg-#239EA3 !text-#fff':
|
|
|
|
|
selectKey == 'screen' && priceIndex == index,
|
|
|
|
|
'!text-#747474 !bg-#e0e0e0':
|
|
|
|
|
selectKey == 'screen' && priceIndex != index,
|
|
|
|
|
}"
|
|
|
|
|
>{{ val.name }}</view
|
|
|
|
|
>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="select_group_wrapper">
|
|
|
|
|
<view class="select_group_title_wrapper">适用人群</view>
|
|
|
|
|
<view class="select_group_line_wrapper">
|
|
|
|
|
<view
|
|
|
|
|
@click="selectItemClick('person', '')"
|
|
|
|
|
class="select_group_item_wrapper"
|
|
|
|
|
:class="[select_active.person === '' ? 'active' : '']"
|
|
|
|
|
>
|
|
|
|
|
全部
|
|
|
|
|
</view>
|
|
|
|
|
<view class="text-30rpx bold">适用人群</view>
|
|
|
|
|
<view class="select_group_line_wrapper mt-20rpx">
|
|
|
|
|
<view
|
|
|
|
|
@click="selectItemClick('person', i.value)"
|
|
|
|
|
class="select_group_item_wrapper"
|
|
|
|
|
v-for="(i, k) in combo_select.person"
|
|
|
|
|
:key="k"
|
|
|
|
|
:class="[select_active.person === i.value ? 'active' : '']"
|
|
|
|
|
v-for="(val, index) in combo_select['combo_item']"
|
|
|
|
|
:key="index"
|
|
|
|
|
@click.stop="selectItemClick(val.id, 'combo_item')"
|
|
|
|
|
class="min-w-31% mx-1% mb-20rpx"
|
|
|
|
|
>
|
|
|
|
|
{{ i.label }}
|
|
|
|
|
<view
|
|
|
|
|
class="box-border px-20rpx py-20rpx text-22rpx center line-height-[1] rounded-5rpx"
|
|
|
|
|
:class="{
|
|
|
|
|
'!bg-#239EA3 !text-#fff':
|
|
|
|
|
selectKey == 'screen' && projectIds.includes(val.id),
|
|
|
|
|
'!text-#747474 !bg-#e0e0e0':
|
|
|
|
|
selectKey == 'screen' && !projectIds.includes(val.id),
|
|
|
|
|
}"
|
|
|
|
|
>{{ val.name }}</view
|
|
|
|
|
>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="select_done_wrapper" @click="selectDone()">确定</view>
|
|
|
|
|
<view class="around">
|
|
|
|
|
<view
|
|
|
|
|
class="w-40% text-26rpx h-60rpx center rounded-full bg-#239EA3 text-#fff"
|
|
|
|
|
@click="remake()"
|
|
|
|
|
>重制</view
|
|
|
|
|
>
|
|
|
|
|
<view
|
|
|
|
|
class="w-40% text-26rpx h-60rpx center rounded-full bg-#239EA3 text-#fff"
|
|
|
|
|
@click="selectDone()"
|
|
|
|
|
>确定</view
|
|
|
|
|
>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</scroll-view>
|
|
|
|
|
</view>
|
|
|
|
|
@ -402,11 +558,6 @@ const toComboCompare = async (item) => {
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.select_group_title_wrapper {
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.select_group_wrapper {
|
|
|
|
|
margin: 20rpx;
|
|
|
|
|
}
|
|
|
|
|
@ -593,6 +744,8 @@ const toComboCompare = async (item) => {
|
|
|
|
|
background: #f1f7f7;
|
|
|
|
|
box-shadow: 0rpx -1rpx 1rpx 0rpx rgba(0, 0, 0, 0.1);
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
position: relative;
|
|
|
|
|
z-index: 999;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.select_item_icon_wrapper {
|
|
|
|
|
@ -671,10 +824,9 @@ const toComboCompare = async (item) => {
|
|
|
|
|
align-items: center;
|
|
|
|
|
width: 710rpx;
|
|
|
|
|
height: 70rpx;
|
|
|
|
|
background: #28b7c1;
|
|
|
|
|
background: #239ea3;
|
|
|
|
|
border-radius: 15rpx 15rpx 0rpx 0rpx;
|
|
|
|
|
padding-left: 24rpx;
|
|
|
|
|
margin: 10rpx auto 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.user_choose_wrapper {
|
|
|
|
|
@ -723,6 +875,8 @@ const toComboCompare = async (item) => {
|
|
|
|
|
height: 100rpx;
|
|
|
|
|
background: #d8edf2;
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
position: relative;
|
|
|
|
|
z-index: 999;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.hospital_wrapper {
|
|
|
|
|
|