@ -1,14 +1,28 @@
< script setup >
import DraggableButton from "@/pages/components/goHome.vue" ;
import PriceRange from "@/common/PriceRange.vue" ;
/ * *
* name :
* user : sa0ChunLuyu
* date : 2024 年8月7日 20 : 05 : 05
* /
import { ref , computed , nextTick } from "vue" ;
import { $image , $api , $response } from "@/api" ;
import { onShow , onLoad } from "@dcloudio/uni-app" ;
import { useStore } from "@/store" ;
import {
ref ,
computed ,
nextTick
} from "vue" ;
import {
$image ,
$api ,
$response
} from "@/api" ;
import {
onShow ,
onLoad
} from "@dcloudio/uni-app" ;
import {
useStore
} from "@/store" ;
const $store = useStore ( ) ;
const $props = defineProps ( {
@ -20,10 +34,14 @@ const $props = defineProps({
const combo _active = ref ( "" ) ;
const person _active = ref ( "" ) ;
let tabs _active _id = ref ( false ) ; / / 激 活 t a b s i d
let popup = ref ( null ) ;
let popup _new = ref ( null ) ;
let selectKey = ref ( "" ) ; / / 整 个 选 择 的 k e y
let sortIndex = ref ( 0 ) ; / / 排 序 的 索 引
let comboIndex = ref ( null ) ; / / 套 餐 类 型 索 引
let sort _price _index = ref ( null )
let sort _salecount _index = ref ( null )
let crowdIndex = ref ( null ) ; / / 适 用 人 群 索 引
let priceIndex = ref ( null ) ; / / 套 餐 价 格 索 引
let projectIds = ref ( [ ] ) ; / / 项 目 i d 集 合
@ -36,6 +54,10 @@ let multipleIndex = ref(0); // 多选索引
let itemIds = ref ( [ ] ) ; / / 项 目 i d 集 合
let itemId = ref ( "" ) ; / / 项 目 i d
let comboId = ref ( "" ) ; / / 套 餐 i d
let price _max _min = ref ( [ ] ) ;
let zhuangjianType = ref ( 18 ) ;
let TiShiPopupRef = ref ( null ) ; / / 提 示 弹 窗
let SelectedComboInfo = ref ( null ) ; / / 选 中 的 套 餐 信 息
const selectItemClick = async ( index , key ) => {
/ / 选 择 套 餐 条 件
@ -48,21 +70,29 @@ const selectItemClick = async (index, key) => {
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 if ( selectKey . value == "sort_sale_count" ) {
/ / 清 除 综 合 排 序
sortIndex . value = 0 ;
delete screenObj . value . combo _sort ;
if ( sort _salecount _index . value == index ) {
sort _salecount _index . value = null ;
delete screenObj . value . sort _sale _count ;
} else {
comboIndex . value = index ;
screenObj . value . combo _type = data [ selectKey . value ] [ index ] ? . id ;
sort _salecount _i ndex. value = index ;
screenObj . value . sort _sale _count = data [ selectKey . value ] [ index ] ? . id ;
}
} else if ( selectKey . value == "combo_crowd" ) {
if ( crowdIndex . value == index ) {
crowdIndex . value = null ;
delete screenObj . value . combo _crowd ;
} else if ( selectKey . value == "sort_price" ) {
/ / 清 除 综 合 排 序
sortIndex . value = 0 ;
delete screenObj . value . combo _sort ;
if ( sort _price _index . value == index ) {
sort _price _index . value = null ;
delete screenObj . value . sort _price ;
} else {
crowdIndex . value = index ;
screenObj . value . combo _crowd = data [ selectKey . value ] [ index ] ? . id ;
sort _price _i ndex. value = index ;
screenObj . value . sort _price = data [ selectKey . value ] [ index ] ? . id ;
}
} else {
if ( key == "combo_price" ) {
@ -96,15 +126,21 @@ const selectDone = async () => {
delete screenObj . value . combo _item ;
}
await getComboList ( ) ;
select _drawer _ref . value . close ( ) ;
popup _new . value . close ( ) ;
} ;
const remake = ( ) => {
/ / 重 置 筛 选
delete screenObj . value . combo _price ;
delete screenObj . value . combo _item ;
delete screenObj . value . price _range
delete screenObj . value . combo _crowd
delete screenObj . value . combo _type
price _max _min . value = [ 0 , combo _list . value . price _max ] ;
priceIndex . value = null ;
projectIds . value = [ ] ;
comboIndex . value = null
crowdIndex . value = null
} ;
const getComboSelect = async ( ) => {
uni . showLoading ( ) ;
@ -112,6 +148,8 @@ const getComboSelect = async () => {
uni . hideLoading ( ) ;
$response ( response , async ( ) => {
combo _select . value = response . data ;
combo _select . value . sort _sale _count = [ { id : 1 , name : "销量从低到高" } , { id : 2 , name : "销量从高到低" } ]
combo _select . value . sort _price = [ { id : 1 , name : "价格从低到高" } , { id : 2 , name : "价格从高到低" } ]
if ( "sort_list" in combo _select . value ) {
selectKey . value = "sort_list" ;
sortIndex . value = 0 ;
@ -184,10 +222,8 @@ const getComboList = async (e) => {
const response = await $api ( "ComboList" , obj ) ;
uni . hideLoading ( ) ;
$response ( response , ( ) => {
combo _list . value = response . data ;
price _max _min . value = combo _list . value . price _max _min
} ) ;
} ;
@ -232,6 +268,7 @@ const open = (key) => {
/ / 点 击 三 个 筛 选 条 件
selectKey . value = key ;
popup . value . close ( ) ;
popup _new . value . close ( ) ;
let time = setTimeout ( ( ) => {
popup . value . open ( "top" ) ;
clearTimeout ( time ) ;
@ -239,22 +276,28 @@ const open = (key) => {
} else {
/ / 点 击 筛 选
popup . value . close ( ) ;
popup _new . value . close ( ) ;
selectKey . value = "screen" ;
select _drawer _ref . value . open ( ) ;
if ( screenObj . value . combo _price ) {
priceIndex . value = combo _select . value [ "combo_price" ] . findIndex (
( item ) => item . id == screenObj . value . combo _price
) ;
} else {
priceIndex . value = null ;
}
let time = setTimeout ( ( ) => {
if ( screenObj . value . combo _item ? . length ) {
projectIds . value = [ ... screenObj . value . combo _item ] ;
} else {
projectIds . value = [ ] ;
}
popup _new . value . open ( "top" ) ;
clearTimeout ( time ) ;
} , 400 ) ;
/ / i f ( s c r e e n O b j . v a l u e . c o m b o _ p r i c e ) {
/ / p r i c e I n d e x . v a l u e = c o m b o _ s e l e c t . v a l u e [ " c o m b o _ p r i c e " ] . f i n d I n d e x (
/ / ( i t e m ) = > i t e m . i d = = s c r e e n O b j . v a l u e . c o m b o _ p r i c e
/ / ) ;
/ / } e l s e {
/ / p r i c e I n d e x . v a l u e = n u l l ;
/ / }
/ / i f ( s c r e e n O b j . v a l u e . c o m b o _ i t e m ? . l e n g t h ) {
/ / p r o j e c t I d s . v a l u e = [ . . . s c r e e n O b j . v a l u e . c o m b o _ i t e m ] ;
/ / } e l s e {
/ / p r o j e c t I d s . v a l u e = [ ] ;
/ / }
}
} ;
@ -268,10 +311,7 @@ const configRef = (e) => {
}
} ;
const select _drawer _ref = ref ( null ) ;
const selectDrawerRef = ( e ) => {
select _drawer _ref . value = e ;
} ;
onShow ( ( ) => {
$store . setDuoXuanYi ( { } ) ;
@ -286,6 +326,7 @@ onLoad((e)=>{
} )
const buyClick = async ( item ) => {
SelectedComboInfo . value = item
let checkup _type _id = $store . getCheckupTypeId ( ) ;
console . log ( "----" , checkup _type _id . id ) ;
if ( checkup _type _id . id == "" || checkup _type _id . id == undefined ) {
@ -303,6 +344,10 @@ const buyClick = async (item) => {
multipleList . value = item . duo _xuan _yi ;
return ;
}
if ( item . type _id == zhuangjianType . value ) {
TiShiPopupRef . value . open ( ) ;
return
}
toDetail ( ) ;
} ;
@ -351,25 +396,62 @@ const toRouter = () => {
url : "/pages/main/combo/tcdb" ,
} ) ;
} ;
const ComboTypeClickFunc = ( id ) => {
if ( comboIndex . value == id ) {
comboIndex . value = null
delete screenObj . value . combo _type
} else {
comboIndex . value = id
screenObj . value . combo _type = comboIndex . value
}
}
const ComboCrowdClickFunc = ( id ) => {
if ( crowdIndex . value == id ) {
crowdIndex . value = null
delete screenObj . value . combo _crowd
} else {
crowdIndex . value = id
screenObj . value . combo _crowd = crowdIndex . value
}
}
const CheckItemClickFunc = ( id ) => {
if ( projectIds . value ? . includes ( id ) ) {
projectIds . value . splice ( projectIds . value . indexOf ( id ) , 1 ) ;
} else {
projectIds . value . push ( id ) ;
}
}
const getHuaKuaiValue = ( value ) => {
screenObj . value . price _range = value
price _max _min . value = value
console . log ( price _max _min . value ) ;
}
const tabsClickFunc = ( value ) => {
tabs _active _id . value = value
if ( value == 1 ) {
comboIndex . value = zhuangjianType . value / / 设 置 筛 选 套 餐 类 型 为 专 家
screenObj . value . combo _type = comboIndex . value
} else {
comboIndex . value = ''
delete screenObj . value . combo _type
}
getComboList ( ) ;
}
< / script >
< template >
< DraggableButton / >
< view >
< view style = "background-color: #d8eef3; padding-top: 20rpx;" >
< view v-if ="!!$store.config" >
< view :ref ="configRef" > < / view >
< / 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"
>
< 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"
/ >
< image src = "@/static/assets/slices/duibi.png" mode = "widthFix" class = "w-42rpx" / >
< / u n i - b a d g e >
< text class = "text-22rpx text-#fff -mt-5rpx" > 对比 < / text >
< / view >
@ -378,18 +460,12 @@ const toRouter = () => {
< view class = "hospital_icon_wrapper" >
< image src = "@/static/assets/dingwei@2x.png" > < / image >
< / view >
< view class = "hospital_name_wrapper" > { {
combo _list . hospital . name
} } < / view >
< view class = "hospital_select_wrapper" >
< view class = "hospital_name_wrapper" > { { combo _list . hospital . name } } < / view >
<!-- < view class = "hospital_select_wrapper" >
< image src = "@/static/assets/gengduo@2x.png" > < / image >
< / view > -- >
< / view >
< / view >
< view
v - if = "!!combo_list.info.name"
class = "user_wrapper"
@ click = "tabPatients()"
>
< 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" >
@ -397,59 +473,39 @@ const toRouter = () => {
< / view >
< / view >
< / view >
<!-- < 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 = "doctor_name_wrapper" >
{ { ! ! combo _list . doctor . id ? combo _list . doctor . name : "前往选择" } }
< / view >
< view class = "doctor_tip_wrapper" > ( 自动筛选匹配套餐 ) < / view >
< view class = "bg-#d8edf2" style = "margin-top: -10rpx;" >
< uni -search -bar class = "search" radius = "100" placeholder = "请输入关键字搜索" @clear ="getComboList()"
@ cancel = "getComboList()" @ confirm = "getComboList" / >
< / view >
< / view > -- >
< view class = "bg-#d8edf2" >
< uni -search -bar
class = "search"
radius = "100"
placeholder = "请输入关键字搜索"
@ clear = "getComboList()"
@ cancel = "getComboList()"
@ confirm = "getComboList"
/ >
< view class = "top_button_row" >
< view @click ="tabsClickFunc(0)" :class ="['top_button',{'top_button_active':tabs_active_id==false}]" > 选择套餐 < / view >
< view @click ="tabsClickFunc(1)" :class ="['top_button',{'top_button_active':tabs_active_id==true}]" > 专家定制 < / view >
< view class = "top_button" > 项目自选 < / 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 = " {
< view @click ="open(key)" class = "flex-1 center text-#2f2f2f text-26rpx line-height-[1]"
v - if = "key != 'combo_price' && key != 'combo_item' && key != 'combo_type' && key != 'combo_crowd'" : 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 v-if ="key == 'sort_sale_count '">
{ { value [ sort _salecount _index ] ? . name || "按销量 " } }
< / view >
< view v-if ="key == 'combo_crowd '">
{ { value [ crowdIndex ] ? . name || "适用人群 " } }
< view v-if ="key == 'sort_price '">
{ { value [ sort _price _index ] ? . name || "按价格 " } }
< / view >
< view class = "select_item_icon_wrapper" >
< image src = "@/static/assets/xuanzegengduo@2x.png" > < / image >
< / view >
< / view >
< / template >
< view
@ click = "open()"
: class = " {
< view @click ="open()" : class = " {
'!text-#239EA3' : selectKey == 'screen' ,
} "
class = "mx-20rpx center text-#2f2f2f text-26rpx"
>
} " class=" mx - 20 rpx center text - # 2 f2f2f text - 26 rpx " >
< view > 筛选 < / view >
< view class = "select_item_icon2_wrapper" >
< image src = "@/static/assets/shaixuan@2x.png" > < / image >
@ -457,27 +513,20 @@ const toRouter = () => {
< / view >
< / view >
< view class = "list_wrapper" ref = "combo_list_k" >
< view
class = "combo_wrapper"
v - for = "(i, k) in combo_list_computed"
: key = "k"
>
< view class = "combo_wrapper" v-for ="(i, k) in combo_list_computed" :key ="k" >
< view style = "display: flex;" >
< view class = "combo_info_wrapper" >
< view class = "combo_cover_wrapper" >
< image v-if ="i.cover" :src="$image(i.cover)" > < / image >
< / view >
< view class = "combo_content_wrapper" >
< view class = "combo_name_wrapper" > { { i . name } } < / view >
< view style = "display: flex;" >
< view class = "combo_name_wrapper" > { { i . name } }
< / view >
< view v-if ="i.is_hot" >
< image style = "height: 32rpx;width: 24rpx;" src = "@/static/assets/buy/huomiao.jpg" > < / image >
< / view >
< / view >
< view class = "combo_tags_wrapper" >
< view
class = "combo_tag_wrapper"
v - for = "(ii, kk) in i.tag"
: key = "kk"
: style = " {
color : ii . text _color ,
background : ii . color ,
} "
>
< view class = "combo_tag_wrapper" v -for = " ( ii , kk ) in i.tag " :key ="kk"
: style = "{ color: ii.text_color, background: '#fff',}" >
{ { ii . text } }
< / view >
< / view >
@ -488,192 +537,175 @@ const toRouter = () => {
< view class = "combo_price_box_wrapper" >
< view class = "combo_true_price_wrapper" >
< text class = "combo_true_price_icon_wrapper" > ¥ < / text >
< text class = "combo_true_price_number_wrapper" > { {
i . price
} } < / text >
< text class = "combo_true_price_number_wrapper" > { { i . price } } < / text >
< / view >
< view class = "combo_original_price_wrapper"
> ¥ { { i . original _price } } < / v i e w
>
< view v-if ="i.type_id!=zhuangjianType" class="combo_original_price_wrapper" > ¥ {{ i.original_price }} < / view >
< view v-if ="i.type_id==zhuangjianType" class="combo_original_price_wrapper2" > 预 存 款 < / view >
< / view >
<!-- < view class = "combo_count_wrapper" > 已售 { { i . count } } < / view > -- >
< / view >
< / view >
< / view >
< view class = "combo_button_wrapper" >
< view @click ="contrastClick(i)" class = "combo_pick_button_wrapper" > { {
comboIds . includes ( i . combo _id ) ? "已加入" : "对比"
} } < / view >
< view class = "combo_buy_button_wrapper" @click ="buyClick(i)"
> 预约 < / v i e w
>
< view v-if ="i.type_id!=zhuangjianType" @click="contrastClick(i)" class="combo_pick_button_wrapper" >
{ { comboIds . includes ( i . combo _id ) ? "已加入" : "对比" } }
< / view >
< view class = "combo_buy_button_wrapper" @click ="buyClick(i)" > 选 择 < / view >
< / view >
< / view >
< view class = "combo_line_wrapper" > < / view >
< / view >
< / view >
< uni -popup ref = "popupMultiple" class = "w-full" >
< view class = "rounded-10rpx px-20rpx pb-55rpx box-border bg-#fff w-95vw" >
< view
class = "center relative pt-40rpx pb-30rpx text-36rpx rounded-t-15rpx box-border"
>
< view class = "center relative pt-40rpx pb-30rpx text-36rpx rounded-t-15rpx box-border" >
< text class = "line-height-[1] text-32rpx" > 请选择 < / text >
< uni -icons
@ click = "popupMultiple.close()"
type = "closeempty"
color = "#A6A6A6"
size = "26"
class = "absolute right-40rpx"
> < / u n i - i c o n s >
< uni -icons @click ="popupMultiple.close()" type = "closeempty" color = "#A6A6A6" size = "26"
class = "absolute right-40rpx" > < / u n i - i c o n s >
< / view >
< view class = "bg-#F8F8F8 px-20rpx box-border rounded-10rpx" >
< view
v - for = "(item, index) in multipleList[multipleIndex]['item_list']"
: key = "index"
< view v -for = " ( item , index ) in multipleList [ multipleIndex ] [ ' item_list ' ] " :key ="index"
@ click = "itemId = item.item_id"
class = "px-20rpx box-border b-b-1 b-#EAEAEA b-solid bs between h-100rpx"
>
class = "px-20rpx box-border b-b-1 b-#EAEAEA b-solid bs between h-100rpx" >
< text class = "text-#000000 text-30rpx" > { { item . item _name } } < / text >
< view class = "center" >
< text class = "text-#EC3D15 text-20rpx mt-10rpx mr-5rpx" > ¥ < / text >
< text class = "text-#EC3D15 text-32rpx mb-0" > { { item . price } } < / text >
< uni -icons
class = "ml-28rpx"
color = "#239EA3"
: type = "itemId == item.item_id ? 'checkbox-filled' : 'circle'"
size = "30"
> < / u n i - i c o n s >
< uni -icons class = "ml-28rpx" color = "#239EA3"
: type = "itemId == item.item_id ? 'checkbox-filled' : 'circle'" size = "30" > < / u n i - i c o n s >
< / view >
< / view >
< / view >
< view class = "text-#239EA3 text-28rpx my-45rpx text-center"
> 当前套餐包含一个可自由 { {
< view class = "text-#239EA3 text-28rpx my-45rpx text-center" > 当前套餐包含一个可自由 { {
multipleList [ multipleIndex ] [ "item_list" ] . length
} } 选1的体检项目 , 请 < br / > 根据您的实际情况自行选择 。 < / v i e w
>
< view
class = "w-270rpx h-80rpx bg-#239EA3 center text-#F8F8F8 text-30rpx rounded-10rpx mx-auto"
@ click = "nextItemClick()"
> { {
} } 选1的体检项目 , 请 < br / > 根据您的实际情况自行选择 。 < / view >
< view class = "w-270rpx h-80rpx bg-#239EA3 center text-#F8F8F8 text-30rpx rounded-10rpx mx-auto"
@ click = "nextItemClick()" > { {
multipleIndex == multipleList . length - 1 ? "确定" : "下一项"
} } < / v i e w
>
} } < / view >
< / view >
< / u n i - p o p u p >
< uni -popup ref = "popup" mask -background -color = " transparent " :animation ="false" >
< view class = "pt-292 rpx w-full h-100vh" @click ="popup.close()" >
< view class = "pt-330 rpx w-full h-100vh" @click ="popup.close()" >
< view class = "bg-[rgba(0,0,0,0.3)] h-100%" >
< view
class = "bg-#fff"
: class = "
< 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 = " {
" >
< 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 class = "text-26rpx" : class = " {
'!text-#239EA3' : sortIndex == index ,
} "
> { { val . name } } < / t e x t
>
} " > { { val . name } } < / text >
< / template >
< / u n i - l i s t - i t e m >
< view
v - else
< 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' && comboI ndex == index ) ||
( selectKey == ' combo_crowd' && crowdI ndex == index ) ,
( selectKey == ' sort_sale_count' && sort _salecount _i ndex == index ) ||
( selectKey == ' sort_price' && sort _price _i ndex == index ) ,
'!text-#747474 !bg-#e0e0e0' :
( selectKey == 'combo_type' && comboIndex != index ) ||
( selectKey == 'combo_crowd' && crowdIndex != index ) ,
} "
> { { val . name } } < / v i e w
>
( selectKey == 'sort_sale_count' && sort _salecount _index != index ) ||
( selectKey == 'sort_price' && sort _price _index != index ) ,
} " > { { val . name } } < / view >
< / view >
< / view >
< / view >
< / view >
< / u n i - p o p u p >
< uni -drawer :ref ="selectDrawerRef" mode = "right" >
< view >
< scroll -view scroll -y = " true " >
< view >
< view class = "select_group_wrapper" >
< view class = "text-30rpx bold" > 套餐价格 < / view >
< view class = "select_group_line_wrapper mt-20rpx" >
< view
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
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 } } < / v i e w
>
< uni -popup ref = "popup_new" mask -background -color = " transparent " :animation ="false" :is-mask-click ="true" >
< view class = "pt-292rpx w-full h-100vh" >
< view class = "bg-[rgba(0,0,0,0.3)] h-100%" >
< view class = "popup_new_main" >
< view class = "shaixuan_title" > 套餐类型 < / view >
< view style = "display: flex;flex-wrap: wrap; " >
< view v-for ="(item,index) in combo_select.combo_type" @click="ComboTypeClickFunc(item.id)" :class="['shaixuan_button',{'shaixuan_button_active': comboIndex==item.id}]" >
{ { item . name } }
< / view >
< / view >
< view class = "shaixuan_title" > 价格区间 < / view >
< PriceRange @huakuaiValue ="getHuaKuaiValue" :step ="combo_list.step" :rangDate ="price_max_min" :rangMax ="combo_list.price_max" :dataInfo ="combo_list.price_range" > < / PriceRange >
< view style = "margin-top: -70rpx;" >
< view class = "shaixuan_title" > 适用人群 < / view >
< view style = "display: flex;flex-wrap: wrap; " >
< view v-for ="(item,index) in combo_select.combo_crowd" @click="ComboCrowdClickFunc(item.id)" :class="['shaixuan_button',{'shaixuan_button_active': crowdIndex==item.id}]" >
{ { item . name } }
< / view >
< view class = "select_group_wrapper" >
< view class = "text-30rpx bold" > 体检项目 ( 多选 ) < / view >
< view class = "select_group_line_wrapper mt-20rpx" >
< view
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"
>
< 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 } } < / v i e w
>
< / view >
< / view >
< view >
< view class = "shaixuan_title" > 体检项目 < / view >
< view style = "display: flex;flex-wrap: wrap; " >
< view v-for ="(item,index) in combo_select.combo_item" @click="CheckItemClickFunc(item.id)" :class="['shaixuan_button',{'shaixuan_button_active': projectIds.includes(item.id)}]" >
{ { item . name } }
< / view >
< / view >
< / view >
< view class = "around" >
< view
class = "w-40% text-26rpx h-60rpx center rounded-full bg-#239EA3 text-#fff"
@ click = "remake()"
> 重置 < / v i e w
>
< view
class = "w-40% text-26rpx h-60rpx center rounded-full bg-#239EA3 text-#fff"
@ click = "selectDone()"
> 确定 < / v i e w
>
< view class = "around" style = "margin-top: 40rpx;" >
< 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 >
< / s c r o l l - v i e w >
< view style = ";height: 100%;" @click ="popup_new.close()" > < / view >
< / view >
< / view >
< / u n i - p o p u p >
< uni -popup ref = "TiShiPopupRef" style = "z-index: 999;" >
< view class = "tishi_main" >
< view class = "tishi_title" > 套餐须知 < / view >
< view class = "tishi_title2" > 专家定制套餐 < / view >
< view class = "tishi_content" > 此套餐收费 { { SelectedComboInfo . price } } 元为预存款 , 可根据现场定制套餐后实际价格多退少补 。 < / view >
< view class = "tishi_button" @click ="toDetail()" > 我 已 知 晓 < / view >
< / view >
< / u n i - d r a w e r >
< / u n i - p o p u p >
< / view >
< / template >
< style scoped >
. tishi _main {
background - color : # fff ;
padding : 40 rpx 50 rpx ;
width : 600 rpx ;
border - radius : 40 rpx ;
}
. tishi _button {
width : 365 rpx ;
background - color : # 009 da5 ;
color : # fff ;
text - align : center ;
padding - top : 10 rpx ;
padding - bottom : 10 rpx ;
border - radius : 40 rpx ;
margin : 40 rpx auto 10 rpx auto ;
}
. tishi _title {
text - align : center ;
font - size : 30 rpx ;
font - weight : 600 ;
color : # 2 b2827 ;
}
. tishi _title2 {
font - size : 28 rpx ;
margin - top : 30 rpx ;
font - weight : 600 ;
color : # 3 a3635 ;
border - left : 3 px solid # 009 da5 ;
padding - left : 5 rpx ;
}
. tishi _content {
font - size : 28 rpx ;
margin - top : 30 rpx ;
color : # 474241 ;
}
. select _done _wrapper {
color : # ffffff ;
background : # 239 ea3 ;
@ -721,6 +753,7 @@ const toRouter = () => {
scrollbar - width : none ;
overflow : - moz - scrollbars - none ;
overflow - y : scroll ;
background - color : # fff ;
}
. list _wrapper : : - webkit - scrollbar {
@ -731,7 +764,7 @@ const toRouter = () => {
width : 710 rpx ;
height : 1 rpx ;
background : # e1ecee ;
margin : 15 rpx auto 0 ;
margin : 26 rpx 0 rpx 0 rpx 0 ;
}
. combo _pick _button _wrapper {
@ -756,15 +789,14 @@ const toRouter = () => {
color : # ffffff ;
text - align : center ;
line - height : 60 rpx ;
margin - left : 32 rpx ;
margin - right : 20 rpx ;
}
. combo _button _wrapper {
display : flex ;
flex - direction : column ;
align - items : center ;
justify - content : end;
margin - top : 27 rpx ;
justify - content : spac e- arou nd;
}
. combo _count _wrapper {
@ -782,6 +814,13 @@ const toRouter = () => {
text - decoration - line : line - through ;
margin - left : 10 rpx ;
}
. combo _original _price _wrapper2 {
font - weight : 500 ;
font - size : 18 rpx ;
color : # 8 b8b8b ;
line - height : 1 ;
margin - left : 10 rpx ;
}
. combo _true _price _wrapper {
font - weight : 500 ;
@ -807,9 +846,11 @@ const toRouter = () => {
}
. combo _wrapper {
height : 307 rpx ;
width : 750 rpx ;
/* height: 196rpx; */
width : calc ( 750 rpx - 80 rpx ) ;
margin : 0 auto ;
background - color : # fff ;
padding : 0 rpx 40 rpx 30 rpx 40 rpx ;
}
. combo _tags _wrapper {
@ -835,14 +876,16 @@ const toRouter = () => {
font - weight : 400 ;
font - size : 18 rpx ;
color : # 47 abd8 ;
margin - right : 8 rpx ;
margin : 10 rpx 8 rpx 10 rpx 0 rpx ;
border : 1 rpx solid # 009 da5 ;
}
. combo _name _wrapper {
font - weight : 400 ;
font - size : 32 rpx ;
color : # 0 e0e0e ;
line - height : 1 ;
line - height : 32 rpx ;
}
. combo _content _wrapper {
@ -888,11 +931,11 @@ const toRouter = () => {
justify - content : space - between ;
width : 750 rpx ;
height : 80 rpx ;
background : # f1 f7f7;
background : # ee f7f7;
box - shadow : 0 rpx - 1 rpx 1 rpx 0 rpx rgba ( 0 , 0 , 0 , 0.1 ) ;
margin : 0 auto ;
position : relative ;
z - index : 999 ;
z - index : 998 ;
}
. select _item _icon _wrapper {
@ -991,24 +1034,25 @@ const toRouter = () => {
. user _title _wrapper {
font - weight : 400 ;
font - size : 28 rpx ;
color : # 239 ea3 ;
font - size : 26 rpx ;
color : # fff ;
line - height : 1 ;
}
. user _name _wrapper {
font - weight : 400 ;
font - size : 28 rpx ;
color : # 0 d0d0d ;
font - size : 26 rpx ;
color : # fff ;
line - height : 1 ;
}
. user _wrapper {
height : 8 0rpx ;
height : 6 0rpx ;
padding - left : 40 rpx ;
padding - right : 20 rpx ;
background : # ffffff ;
border - radius : 40 rpx 0 0 40 rpx ;
margin - right : 20 rpx ;
background : # 009 ea7 ;
border - radius : 40 rpx ;
display : flex ;
align - items : center ;
justify - content : center ;
@ -1018,18 +1062,22 @@ const toRouter = () => {
display : flex ;
align - items : center ;
justify - content : space - between ;
width : 75 0rpx ;
height : 10 0rpx ;
width : 71 0rpx ;
height : 9 0rpx ;
background : # d8edf2 ;
margin : 0 auto ;
position : relative ;
z - index : 999 ;
background - color : # fff ;
margin - left : 20 rpx ;
margin - right : 20 rpx ;
border - radius : 20 rpx ;
}
. hospital _wrapper {
display : flex ;
align - items : center ;
width : 5 0% ;
width : 4 0% ;
}
. hospital _icon _wrapper {
@ -1065,4 +1113,58 @@ const toRouter = () => {
display : block ;
object - fit : contain ;
}
. popup _new _main {
background - color : # fff ;
border - radius : 0 rpx 0 rpx 20 rpx 20 rpx ;
padding : 40 rpx 20 rpx 20 rpx 20 rpx ;
}
. top _button _row {
display : flex ;
justify - content : space - between ;
padding - left : 20 rpx ;
padding - right : 20 rpx ;
}
. top _button {
color : # 666 ;
background - color : # fff ;
padding : 6 rpx 40 rpx ;
border - radius : 15 rpx ;
margin - top : - 6 rpx ;
margin - bottom : 8 rpx ;
font - size : 28 rpx ;
width : 140 rpx ;
text - align : center ;
}
. top _button _active {
background - color : # 009 ea7 ;
color : # fff ;
}
. search { }
. shaixuan _title {
font - size : 26 rpx ;
margin - top : 20 rpx ;
margin - bottom : 10 rpx ;
}
. shaixuan _button {
font - size : 24 rpx ;
padding - left : 10 rpx ;
background - color : # ccc ;
margin : 10 rpx ;
padding : 5 rpx 10 rpx ;
border - radius : 5 rpx ;
background - color : # f3f3f3 ;
color : # 1 e1a19 ;
}
. shaixuan _button _active {
background - color : # 009 da5 ;
color : # fff ;
}
< / style >