|
@@ -1,16 +1,18 @@
|
|
|
<template>
|
|
|
<view class="s-header-card">
|
|
|
<zzx-icon name="location" size="14"></zzx-icon>
|
|
|
- <text>{{timeList.name}}</text>
|
|
|
+ <text>{{ timeList.name }}</text>
|
|
|
</view>
|
|
|
<view class="content">
|
|
|
<view class="s-selectdate-card">
|
|
|
<view class="s-title">选择日期</view>
|
|
|
<view class="select-card-list">
|
|
|
<scroll-view class="scroll-view_H" scroll-x="true">
|
|
|
- <view :class="selIndex===index?'item-card-select':'item-card'" :style="{backgroundColor:item.inventory<1?'#fefefe':'',color:item.inventory<1?'#dddddd':''}" v-for="(item,index) in dateList" @click="open_calendar(item,index)">
|
|
|
- <view class="day">{{item.namedDay}}</view>
|
|
|
- <view class="date">{{item.day.slice(5)}}</view>
|
|
|
+ <view :class="selIndex === index ? 'item-card-select' : 'item-card'"
|
|
|
+ :style="{ backgroundColor: item.inventory < 1 ? '#fefefe' : '', color: item.inventory < 1 ? '#dddddd' : '' }"
|
|
|
+ v-for="(item, index) in dateList" @click="open_calendar(item, index)">
|
|
|
+ <view class="day">{{ item.namedDay }}</view>
|
|
|
+ <view class="date">{{ item.day.slice(5) }}</view>
|
|
|
</view>
|
|
|
</scroll-view>
|
|
|
<view class="more-date" @click="calendar.open()">
|
|
@@ -22,36 +24,68 @@
|
|
|
<view class="s-title">选择时段</view>
|
|
|
<view class="select-card-list">
|
|
|
<scroll-view class="scroll-view_H" scroll-x="true">
|
|
|
- <view class="item-card" :style="{background: `${check_index==index?'#F0FFBB':'#F6F6F6'}`}" v-for="(item,index) in timeList.timeSlot" @click="check_item(item,index)">
|
|
|
- <view class="time">{{item.name}}</view>
|
|
|
- <view class="allowance">余{{item.inventory}}</view>
|
|
|
- <view class="price">¥{{item.price}}</view>
|
|
|
+ <view class="item-card" :style="{ background: `${check_index == index ? '#F0FFBB' : '#F6F6F6'}` }"
|
|
|
+ v-for="(item, index) in timeList.timeSlot" @click="check_item(item, index)">
|
|
|
+ <view class="time">{{ item.name }}</view>
|
|
|
+ <view class="allowance">余{{ item.inventory }}</view>
|
|
|
+ <view class="price">¥{{ item.price||'0.00' }}</view>
|
|
|
</view>
|
|
|
</scroll-view>
|
|
|
- <view class="not-data" v-if="timeList.timeSlot.length<1">暂无可选时段</view>
|
|
|
+ <view class="not-data" v-if="timeList.timeSlot.length < 1">暂无可选时段</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view class="g-insurance-card">
|
|
|
- <view class="g-insurance-info">
|
|
|
- <view class="insurance-type">
|
|
|
- <view class="type-name">
|
|
|
- <view class="name">意外险</view>
|
|
|
- <view class="tips">不支持退款</view>
|
|
|
+ <view class="r-insurance" v-for="item in insureIdList" :key="item.id">
|
|
|
+ <view class="r-insurance-infobox">
|
|
|
+ <view class="r-image-box">
|
|
|
+ <image :src="item.coverImg" mode=""></image>
|
|
|
+ </view>
|
|
|
+ <view class="r-insurance-title">
|
|
|
+ <view class="r-insurance-name">
|
|
|
+ <view class="r-name">{{ item.name }}</view>
|
|
|
+ <view class="r-tags">不支持退款</view>
|
|
|
</view>
|
|
|
- <view class="insurance-more">
|
|
|
- <text>查看详情</text>
|
|
|
- <zzx-icon name="ashRight" size="12"></zzx-icon>
|
|
|
+ <view class="r-insurance-desc" v-for="(desc, index) in item.insuranceObvious" :key="index">
|
|
|
+ <text v-for="([key, value], idx) in Object.entries(desc)" :key="key + idx">{{ key }}, {{
|
|
|
+ value }};</text>
|
|
|
+ </view>
|
|
|
+ <view class="r-insurance-type">保险公司:{{ item.insuranceName_dictText }}</view>
|
|
|
+ <view class="r-insurance-price">
|
|
|
+ <view class="r-price">¥{{ insurePrice }}/天·人</view>
|
|
|
+ <view class="r-insurance-btn" v-if="insureData.length < 1"
|
|
|
+ @click="gotoInsuracePage(item, item.priceDataList)">去投保
|
|
|
+ </view>
|
|
|
</view>
|
|
|
- </view>
|
|
|
- <view class="insurance-num" @click="select_insurance=!select_insurance">
|
|
|
- <view class="">¥3/人×1份(意外事故10万,社保内医疗1万)</view>
|
|
|
- <zzx-icon :name="select_insurance?'selected' : 'unchecked'" size="14"></zzx-icon>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view class="insurance-total">
|
|
|
- <view class="text">保险总价(共2件)</view>
|
|
|
- <view class="price">¥6</view>
|
|
|
- </view>
|
|
|
+ <view class="line" v-if="insureData.length > 0 && insureId == item.id"></view>
|
|
|
+ <blcok v-if="insureData.length > 0 && insureId == item.id">
|
|
|
+ <view class="r-insurance-adduser" v-for="(insureUser, index) in insureData" :key="index">
|
|
|
+ <view class="r-adduser-btn">
|
|
|
+ <view class="r-celar" @click="clearUser">清除</view>
|
|
|
+ <view class="r-edit"
|
|
|
+ @click="RouterUtils.to_page(`/pages/index/insure/index?priceDataList=${JSON.stringify(item.priceDataList)}`)">
|
|
|
+ 修改</view>
|
|
|
+ </view>
|
|
|
+ <view class="r-userinfo-list">
|
|
|
+ <view class="r-userinfo-item">
|
|
|
+ <view class="r-item-title">被保人</view>
|
|
|
+ <view class="r-item-info">{{ insureUser.userData.length }}人(<text
|
|
|
+ v-for="user in insureUser.userData" :key="user.id">{{ user.fullName }},</text>)
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="r-userinfo-item">
|
|
|
+ <view class="r-item-title">生效时间</view>
|
|
|
+ <view class="r-item-info">{{ insureUser.slectObj.day }}天({{ insureUser.startDate }}-{{
|
|
|
+ insureUser.endDate }})
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="r-userinfo-item">
|
|
|
+ <view class="r-item-title">保费总金额</view>
|
|
|
+ <view class="r-item-info">¥{{ insureUser.totalPrice }}</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </blcok>
|
|
|
</view>
|
|
|
<view class="g-userinfo-card">
|
|
|
<view class="r-user">
|
|
@@ -66,8 +100,8 @@
|
|
|
<view class="r-user-list" v-for="item in userData" :key="item.id">
|
|
|
<view class="minus-user" @click="deleteUser(item)">-</view>
|
|
|
<view class="r-list">
|
|
|
- <view class="name">{{item.fullName}}</view>
|
|
|
- <view class="id-num">身份证 {{idCardHide(item.identityCard)}}</view>
|
|
|
+ <view class="name">{{ item.fullName }}</view>
|
|
|
+ <view class="id-num">身份证 {{ idCardHide(item.identityCard) }}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="g-adduser-btn" @click="toUserList">
|
|
@@ -78,407 +112,652 @@
|
|
|
<view class="submit-btn" @click="submitBooking">免费 立即预约</view>
|
|
|
</view>
|
|
|
<uni-calendar ref="calendar" :insert="false" :date="selectInsurance" @confirm="confirm" />
|
|
|
+ <uni-popup ref="insurePopup" type="center">
|
|
|
+ <view class="r-center-popup" v-if="agreementContent">
|
|
|
+ <view class="r-popup-title">{{ agreementContent.protocolName }}</view>
|
|
|
+ <view class="r-popup-content">
|
|
|
+ <rich-text :nodes="agreementContent.protocolContent"></rich-text>
|
|
|
+ </view>
|
|
|
+ <view class="r-popup-footer">
|
|
|
+ <view class="r-popup-needbtn" @click="toNeed">我需要购买保险</view>
|
|
|
+ <view class="r-popup-refusebtn" @click="toRefuse">我拒绝购买保险</view>
|
|
|
+ <view class="r-popup-checkbox" @click="select_insurance = !select_insurance">
|
|
|
+ <zzx-icon :name="select_insurance ? 'selected' : 'unchecked'" size="14"></zzx-icon>
|
|
|
+ <text>我已认真阅读及确认</text>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </uni-popup>
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
- import { ref,onMounted } from 'vue';
|
|
|
- import { RouterUtils,TipsUtils,idCardHide } from '@/utils/util';
|
|
|
- import { onLoad, onPageScroll } from '@dcloudio/uni-app';
|
|
|
- import { http } from '@/utils/http'
|
|
|
- const calendar=ref();
|
|
|
- const check_index=ref(0);
|
|
|
- onLoad((option)=>{
|
|
|
- placeId.value=option.id
|
|
|
- })
|
|
|
- onMounted(()=>{
|
|
|
- get_previewTIme()
|
|
|
- get_userData()
|
|
|
+import { ref, onMounted } from 'vue';
|
|
|
+import { RouterUtils, TipsUtils, idCardHide } from '@/utils/util';
|
|
|
+import { onLoad, onPageScroll } from '@dcloudio/uni-app';
|
|
|
+import { http } from '@/utils/http'
|
|
|
+const calendar = ref();
|
|
|
+const check_index = ref(0);
|
|
|
+onLoad((option) => {
|
|
|
+ placeId.value = option.id
|
|
|
+ orderFormData.value.productIds = option.id
|
|
|
+})
|
|
|
+onMounted(() => {
|
|
|
+ get_previewTIme()
|
|
|
+ get_userData()
|
|
|
+ getInsureData()
|
|
|
+})
|
|
|
+const toUserList = () => {
|
|
|
+ RouterUtils.to_page('/pages/index/userList/index')
|
|
|
+}
|
|
|
+
|
|
|
+const selIndex = ref(0)
|
|
|
+const selectInsurance = ref()
|
|
|
+const open_calendar = (e, i) => {
|
|
|
+ if (e.inventory < 1) return TipsUtils.tips_toast('该天暂无库存')
|
|
|
+ selectInsurance.value = e.day
|
|
|
+ selIndex.value = i
|
|
|
+ get_previewOrderPlaceSchool(e.day)
|
|
|
+}
|
|
|
+// 日历回调确认
|
|
|
+const confirm = (e) => {
|
|
|
+ get_previewOrderPlaceSchool(e.fulldate)
|
|
|
+}
|
|
|
+const rulesId = ref()
|
|
|
+const check_item = (e, i) => {
|
|
|
+ check_index.value = i
|
|
|
+ rulesId.value = e.id
|
|
|
+ orderFormData.value.productIds = e.id
|
|
|
+}
|
|
|
+
|
|
|
+// 预览时间选项
|
|
|
+const dateList = ref()
|
|
|
+const get_previewTIme = () => {
|
|
|
+ http.get('/order/previewOrderPlaceSchoolTime', { data: { placeId: placeId.value }, loading: true }).then((res) => {
|
|
|
+ dateList.value = res.result
|
|
|
+ get_previewOrderPlaceSchool(res.result[0].day)
|
|
|
})
|
|
|
- const toUserList = () => {
|
|
|
- RouterUtils.to_page('/pages/index/userList/index')
|
|
|
- }
|
|
|
-
|
|
|
- const selIndex=ref(0)
|
|
|
- const selectInsurance=ref()
|
|
|
- const open_calendar=(e,i)=>{
|
|
|
- if(e.inventory<1) return TipsUtils.tips_toast('该天暂无库存')
|
|
|
- selectInsurance.value=e.day
|
|
|
- selIndex.value=i
|
|
|
- get_previewOrderPlaceSchool(e.day)
|
|
|
- }
|
|
|
- // 日历回调确认
|
|
|
- const confirm=(e)=>{
|
|
|
- get_previewOrderPlaceSchool(e.fulldate)
|
|
|
- }
|
|
|
- const check_item=(e,i)=>{
|
|
|
- check_index.value=i
|
|
|
- rulesId.value=e.id
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- // 预览时间选项
|
|
|
- const dateList=ref()
|
|
|
- const get_previewTIme=()=>{
|
|
|
- http.get('/order/previewOrderPlaceSchoolTime',{data:{placeId:placeId.value},loading:true}).then((res)=>{
|
|
|
- dateList.value=res.result
|
|
|
- get_previewOrderPlaceSchool(res.result[0].day)
|
|
|
- })
|
|
|
- }
|
|
|
-
|
|
|
- // 场地信息预览
|
|
|
- const placeId=ref()
|
|
|
- const timeList=ref()
|
|
|
- const get_previewOrderPlaceSchool=(startTime)=>{
|
|
|
- http.get('/order/previewOrderPlaceSchool',{data:{placeId:placeId.value,startTime:startTime},loading:true}).then((res)=>{
|
|
|
- timeList.value=res.result
|
|
|
- rulesId.value=res.result.timeSlot[0].id
|
|
|
+}
|
|
|
+
|
|
|
+// 场地信息预览
|
|
|
+const placeId = ref()
|
|
|
+const timeList = ref()
|
|
|
+const insureIdList = ref([]) // 保险列表
|
|
|
+const insurePrice = ref() // 保险价格
|
|
|
+const get_previewOrderPlaceSchool = (startTime) => {
|
|
|
+ http.get('/order/previewOrderPlaceSchool', { data: { placeId: placeId.value, startTime: startTime }, loading: true }).then((res) => {
|
|
|
+ timeList.value = res.result
|
|
|
+ rulesId.value = res.result.timeSlot[0].id
|
|
|
+ orderFormData.value.productIds = res.result.timeSlot[0].id
|
|
|
+ res.result.insureIdList.map((item: any) => {
|
|
|
+ item.insuranceObvious = JSON.parse(item.insuranceObvious)
|
|
|
+ item.insuranceObvious = [item.insuranceObvious]
|
|
|
+ item.priceDataList.map((item2: any) => {
|
|
|
+ if (item2.insureDay === 1) {
|
|
|
+ insurePrice.value = item2.insurePrice
|
|
|
+ }
|
|
|
+ })
|
|
|
})
|
|
|
+ insureIdList.value = res.result.insureIdList
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+const insureData = ref([])
|
|
|
+const getInsureData = () => {
|
|
|
+ uni.$on('insureData', function (data) {
|
|
|
+ insureData.value = data
|
|
|
+ console.log(insureData.value, '投保人信息');
|
|
|
+ orderFormData.value.insureOrderInfoForm.assertStartTime = insureData.value[0].startDate
|
|
|
+ orderFormData.value.insureOrderInfoForm.assertEndTime = insureData.value[0].endDate
|
|
|
+ orderFormData.value.insureOrderInfoForm.insurePriceId = insureData.value[0].slectObj.id
|
|
|
+ if (data.length > 0) {
|
|
|
+ let familyMembersIds = data[0].userData.map(item => item.id)
|
|
|
+ orderFormData.value.insureOrderInfoForm.familyMembersIds = familyMembersIds.join(',')
|
|
|
+ } else {
|
|
|
+ orderFormData.value.insureOrderInfoForm.familyMembersIds = []
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+const clearUser = async () => {
|
|
|
+ let res: any = await TipsUtils.tips_alert('确定清除投保人信息吗?', true)
|
|
|
+ if (res.confirm) {
|
|
|
+ insureData.value = []
|
|
|
}
|
|
|
-
|
|
|
- const userData=ref([])
|
|
|
- const get_userData=()=>{
|
|
|
- uni.$on('userData',function(data){
|
|
|
- userData.value=data
|
|
|
- })
|
|
|
+}
|
|
|
+
|
|
|
+const priceDataListData = ref([])
|
|
|
+const insureId = ref()
|
|
|
+const gotoInsuracePage = (e1: any, e2: any) => {
|
|
|
+ insureId.value = e1.id
|
|
|
+ getFindByType(e1.insuranceName)
|
|
|
+ priceDataListData.value = e2
|
|
|
+ orderFormData.value.insureOrderInfoForm.insureId = e1.id
|
|
|
+}
|
|
|
+
|
|
|
+const agreementContent = ref()
|
|
|
+const insurePopup = ref()
|
|
|
+const getFindByType = (insuranceName: any) => {
|
|
|
+ http.get('/my/feedback/findByType', { data: { insuranceName: insuranceName, protocolType: 0 }, loading: true }).then((res: any) => {
|
|
|
+ agreementContent.value = res.result
|
|
|
+ insurePopup.value.open()
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+const select_insurance = ref(false)
|
|
|
+const toNeed = () => {
|
|
|
+ if (!select_insurance.value) return TipsUtils.tips_toast('请先阅读并同意协议')
|
|
|
+ RouterUtils.to_page(`/pages/index/insure/index?priceDataList=${JSON.stringify(priceDataListData.value)}&insureId=${insureId.value}`)
|
|
|
+ insurePopup.value.close()
|
|
|
+}
|
|
|
+
|
|
|
+const toRefuse = () => {
|
|
|
+ if (select_insurance.value) {
|
|
|
+ insurePopup.value.close()
|
|
|
+ } else {
|
|
|
+ TipsUtils.tips_toast('请先阅读并同意协议')
|
|
|
}
|
|
|
-
|
|
|
- const deleteUser=async(e)=>{
|
|
|
- let res = await TipsUtils.tips_alert('确定删除该用户吗?',true)
|
|
|
- if(res.confirm){
|
|
|
- userData.value=userData.value.filter(user=>user.id!==e.id)
|
|
|
+}
|
|
|
+const userData = ref([])
|
|
|
+const get_userData = () => {
|
|
|
+ uni.$on('userData', function (data) {
|
|
|
+ userData.value = data
|
|
|
+ if (data.length > 0) {
|
|
|
+ let familyIds = data.map(item => item.id)
|
|
|
+ orderFormData.value.familyIds = familyIds.join(',')
|
|
|
+ } else {
|
|
|
+ orderFormData.value.familyIds = []
|
|
|
}
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+const deleteUser = async (e) => {
|
|
|
+ let res = await TipsUtils.tips_alert('确定删除该用户吗?', true)
|
|
|
+ if (res.confirm) {
|
|
|
+ userData.value = userData.value.filter(user => user.id !== e.id)
|
|
|
}
|
|
|
-
|
|
|
- const rulesId=ref()
|
|
|
- const submitBooking=()=>{
|
|
|
- if(!rulesId.value) return TipsUtils.tips_toast('请选择时段')
|
|
|
- if(userData.value.length<1) return TipsUtils.tips_toast('请添加用户')
|
|
|
- let userIds=userData.value.map(item=>item.id).join(',')
|
|
|
- rulesId.value=rulesId.value.toString()
|
|
|
- http.get('/order/createOrderPlaceSchool',{data:{rulesId:rulesId.value,userIds:userIds},loading:true}).then((res)=>{
|
|
|
- RouterUtils.to_page('/pages/index/toBeUsed/index')
|
|
|
- })
|
|
|
+}
|
|
|
+
|
|
|
+let orderFormData = ref({
|
|
|
+ type: 0,
|
|
|
+ orderType: 0,
|
|
|
+ productIds: null,
|
|
|
+ familyIds: '',
|
|
|
+ insureOrderInfoForm: {
|
|
|
+ insureId: '',
|
|
|
+ assertStartTime: '',
|
|
|
+ assertEndTime: '',
|
|
|
+ insurePriceId: '',
|
|
|
+ familyMembersIds: '',
|
|
|
}
|
|
|
+})
|
|
|
+const submitBooking = () => {
|
|
|
+ let data = { ...orderFormData.value };
|
|
|
+ if (!insureData.value || insureData.value.length === 0) {
|
|
|
+ delete data.insureOrderInfoForm;
|
|
|
+ }
|
|
|
+ http.post('/order/createOrder', data, { loading: true }).then((res) => {
|
|
|
+ RouterUtils.to_page(`/pages/index/toBeUsed/index?orderId=${res.result.orderId}&orderType=${orderFormData.value.orderType}`)
|
|
|
+ })
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style lang="less" scoped>
|
|
|
- .s-header-card {
|
|
|
- background: #fff;
|
|
|
- padding: 20rpx;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- gap: 10rpx;
|
|
|
+.s-header-card {
|
|
|
+ background: #fff;
|
|
|
+ padding: 20rpx;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 10rpx;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #222222;
|
|
|
+}
|
|
|
+
|
|
|
+.s-selectdate-card {
|
|
|
+ margin-top: 20rpx;
|
|
|
+ padding: 20rpx;
|
|
|
+ background: linear-gradient(180deg, #FCFFF1 0%, #FFFFFF 100%);
|
|
|
+ border-radius: 32rpx;
|
|
|
+
|
|
|
+ .s-title {
|
|
|
font-weight: bold;
|
|
|
font-size: 28rpx;
|
|
|
color: #222222;
|
|
|
}
|
|
|
|
|
|
- .s-selectdate-card {
|
|
|
+ .select-card-list {
|
|
|
margin-top: 20rpx;
|
|
|
- padding: 20rpx;
|
|
|
- background: linear-gradient(180deg, #FCFFF1 0%, #FFFFFF 100%);
|
|
|
- border-radius: 32rpx;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
|
|
|
- .s-title {
|
|
|
- font-weight: bold;
|
|
|
- font-size: 28rpx;
|
|
|
- color: #222222;
|
|
|
- }
|
|
|
+ .scroll-view_H {
|
|
|
+ white-space: nowrap;
|
|
|
+ width: 90%;
|
|
|
|
|
|
- .select-card-list {
|
|
|
- margin-top: 20rpx;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- .scroll-view_H {
|
|
|
- white-space: nowrap;
|
|
|
- width: 90%;
|
|
|
- .item-card-select{
|
|
|
- margin-right: 16rpx;
|
|
|
- display: inline-block;
|
|
|
- width: 104rpx;
|
|
|
- height: 120rpx;
|
|
|
- background: #F0FFBB;
|
|
|
- border-radius: 16rpx;
|
|
|
- font-size: 24rpx;
|
|
|
- color: #222222;
|
|
|
- text-align: center;
|
|
|
-
|
|
|
- .day {
|
|
|
- padding-top: 20rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .date {
|
|
|
- margin-top: 12rpx;
|
|
|
- }
|
|
|
+ .item-card-select {
|
|
|
+ margin-right: 16rpx;
|
|
|
+ display: inline-block;
|
|
|
+ width: 104rpx;
|
|
|
+ height: 120rpx;
|
|
|
+ background: #F0FFBB;
|
|
|
+ border-radius: 16rpx;
|
|
|
+ font-size: 24rpx;
|
|
|
+ color: #222222;
|
|
|
+ text-align: center;
|
|
|
+
|
|
|
+ .day {
|
|
|
+ padding-top: 20rpx;
|
|
|
}
|
|
|
- .item-card {
|
|
|
- margin-right: 16rpx;
|
|
|
- display: inline-block;
|
|
|
- width: 104rpx;
|
|
|
- height: 120rpx;
|
|
|
- background: #F6F6F6;
|
|
|
- border-radius: 16rpx;
|
|
|
- font-size: 24rpx;
|
|
|
- color: #222222;
|
|
|
- text-align: center;
|
|
|
- .day {
|
|
|
- padding-top: 20rpx;
|
|
|
- }
|
|
|
|
|
|
- .date {
|
|
|
- margin-top: 12rpx;
|
|
|
- }
|
|
|
+ .date {
|
|
|
+ margin-top: 12rpx;
|
|
|
}
|
|
|
}
|
|
|
- .more-date{
|
|
|
- width: 200rpx;
|
|
|
+
|
|
|
+ .item-card {
|
|
|
+ margin-right: 16rpx;
|
|
|
+ display: inline-block;
|
|
|
+ width: 104rpx;
|
|
|
+ height: 120rpx;
|
|
|
+ background: #F6F6F6;
|
|
|
+ border-radius: 16rpx;
|
|
|
font-size: 24rpx;
|
|
|
- color: #FDD143;
|
|
|
+ color: #222222;
|
|
|
text-align: center;
|
|
|
+
|
|
|
+ .day {
|
|
|
+ padding-top: 20rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .date {
|
|
|
+ margin-top: 12rpx;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ .more-date {
|
|
|
+ width: 200rpx;
|
|
|
+ font-size: 24rpx;
|
|
|
+ color: #FDD143;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.s-selecttime-card {
|
|
|
+ margin-top: 20rpx;
|
|
|
+ padding: 20rpx;
|
|
|
+ background: linear-gradient(180deg, #FCFFF1 0%, #FFFFFF 100%);
|
|
|
+ border-radius: 32rpx;
|
|
|
+
|
|
|
+ .s-title {
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #222222;
|
|
|
}
|
|
|
|
|
|
- .s-selecttime-card {
|
|
|
+ .select-card-list {
|
|
|
margin-top: 20rpx;
|
|
|
- padding: 20rpx;
|
|
|
- background: linear-gradient(180deg, #FCFFF1 0%, #FFFFFF 100%);
|
|
|
- border-radius: 32rpx;
|
|
|
|
|
|
- .s-title {
|
|
|
- font-weight: bold;
|
|
|
- font-size: 28rpx;
|
|
|
- color: #222222;
|
|
|
- }
|
|
|
+ .scroll-view_H {
|
|
|
+ white-space: nowrap;
|
|
|
+ width: 100%;
|
|
|
|
|
|
- .select-card-list {
|
|
|
- margin-top: 20rpx;
|
|
|
+ .item-card {
|
|
|
+ margin-right: 16rpx;
|
|
|
+ display: inline-block;
|
|
|
+ width: 220rpx;
|
|
|
+ height: 172rpx;
|
|
|
+ background: #F6F6F6;
|
|
|
+ border-radius: 16rpx;
|
|
|
+ text-align: center;
|
|
|
|
|
|
- .scroll-view_H {
|
|
|
- white-space: nowrap;
|
|
|
- width: 100%;
|
|
|
-
|
|
|
- .item-card {
|
|
|
- margin-right: 16rpx;
|
|
|
- display: inline-block;
|
|
|
- width: 220rpx;
|
|
|
- height: 172rpx;
|
|
|
- background: #F6F6F6;
|
|
|
- border-radius: 16rpx;
|
|
|
- text-align: center;
|
|
|
+ .time {
|
|
|
+ margin-top: 30rpx;
|
|
|
+ font-size: 24rpx;
|
|
|
+ color: #222222;
|
|
|
+ }
|
|
|
+
|
|
|
+ .allowance {
|
|
|
+ margin-top: 12rpx;
|
|
|
+ font-size: 24rpx;
|
|
|
+ color: #222222;
|
|
|
+ }
|
|
|
|
|
|
- .time {
|
|
|
- margin-top: 30rpx;
|
|
|
- font-size: 24rpx;
|
|
|
- color: #222222;
|
|
|
- }
|
|
|
-
|
|
|
- .allowance {
|
|
|
- margin-top: 12rpx;
|
|
|
- font-size: 24rpx;
|
|
|
- color: #222222;
|
|
|
- }
|
|
|
-
|
|
|
- .price {
|
|
|
- margin-top: 12rpx;
|
|
|
- font-weight: bold;
|
|
|
- font-size: 28rpx;
|
|
|
- color: #FB5B5B;
|
|
|
- }
|
|
|
+ .price {
|
|
|
+ margin-top: 12rpx;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #FB5B5B;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- .g-insurance-card {
|
|
|
- background: #FFFFFF;
|
|
|
- border-radius: 32rpx;
|
|
|
- padding: 20rpx;
|
|
|
- margin-top: 20rpx;
|
|
|
-
|
|
|
- .g-insurance-info {
|
|
|
- .insurance-type {
|
|
|
+}
|
|
|
+
|
|
|
+.r-insurance {
|
|
|
+ margin-top: 20rpx;
|
|
|
+ padding: 20rpx;
|
|
|
+ background: #FFFFFF;
|
|
|
+ border-radius: 32rpx;
|
|
|
+
|
|
|
+ .r-insurance-infobox {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ gap: 20rpx;
|
|
|
+ margin-bottom: 20rpx;
|
|
|
+
|
|
|
+ .r-image-box {
|
|
|
+ &>image {
|
|
|
+ width: 200rpx;
|
|
|
+ height: 200rpx;
|
|
|
+ border-radius: 32rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .r-insurance-title {
|
|
|
+ .r-insurance-name {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
- justify-content: space-between;
|
|
|
-
|
|
|
- .type-name {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- gap: 10rpx;
|
|
|
-
|
|
|
- .name {
|
|
|
- font-weight: bold;
|
|
|
- font-size: 28rpx;
|
|
|
- color: #222222;
|
|
|
- }
|
|
|
-
|
|
|
- .tips {
|
|
|
- width: 136rpx;
|
|
|
- height: 36rpx;
|
|
|
- background: #FDD143;
|
|
|
- border-radius: 8rpx;
|
|
|
- font-size: 22rpx;
|
|
|
- color: #222222;
|
|
|
- text-align: center;
|
|
|
- line-height: 36rpx;
|
|
|
- }
|
|
|
+ gap: 16rpx;
|
|
|
+
|
|
|
+ .r-name {
|
|
|
+ font-weight: 800;
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #222222;
|
|
|
}
|
|
|
-
|
|
|
- .insurance-more {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- gap: 10rpx;
|
|
|
-
|
|
|
- &>text {
|
|
|
- margin-bottom: 4rpx;
|
|
|
- font-size: 24rpx;
|
|
|
- color: #AAAAAA;
|
|
|
- }
|
|
|
+
|
|
|
+ .r-tags {
|
|
|
+ width: 136rpx;
|
|
|
+ height: 36rpx;
|
|
|
+ background: #FDD143;
|
|
|
+ border-radius: 8rpx;
|
|
|
+ font-size: 22rpx;
|
|
|
+ color: #222222;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 36rpx;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- .insurance-num {
|
|
|
- margin-top: 16rpx;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: space-between;
|
|
|
+
|
|
|
+ .r-insurance-desc {
|
|
|
+ width: 440rpx;
|
|
|
+ margin-top: 10rpx;
|
|
|
font-size: 24rpx;
|
|
|
color: #AAAAAA;
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- .insurance-total {
|
|
|
- margin-top: 20rpx;
|
|
|
- border-top: 1rpx solid #F0F0F0;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: space-between;
|
|
|
- height: 88rpx;
|
|
|
-
|
|
|
- .text {
|
|
|
- font-size: 28rpx;
|
|
|
- color: #222222;
|
|
|
+
|
|
|
+ .r-insurance-type {
|
|
|
+ margin-top: 10rpx;
|
|
|
+ font-size: 24rpx;
|
|
|
+ color: #AAAAAA;
|
|
|
}
|
|
|
-
|
|
|
- .price {
|
|
|
- font-weight: bold;
|
|
|
- font-size: 28rpx;
|
|
|
- color: #FB5B5B;
|
|
|
+
|
|
|
+ .r-insurance-price {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+
|
|
|
+ .r-price {
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #FB5B5B;
|
|
|
+ }
|
|
|
+
|
|
|
+ .r-insurance-btn {
|
|
|
+ width: 200rpx;
|
|
|
+ height: 68rpx;
|
|
|
+ background: #C8FF0C;
|
|
|
+ border-radius: 60rpx;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #222222;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 68rpx;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- .g-userinfo-card {
|
|
|
- margin-top: 20rpx;
|
|
|
- padding: 20rpx;
|
|
|
- background: #FFFFFF;
|
|
|
+ .r-insurance-adduser {
|
|
|
+ background: #F6F6F6;
|
|
|
border-radius: 32rpx;
|
|
|
+ padding: 20rpx;
|
|
|
+ margin-top: 20rpx;
|
|
|
|
|
|
- .r-user {
|
|
|
+ .r-adduser-btn {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
- justify-content: space-between;
|
|
|
+ justify-content: flex-end;
|
|
|
+ gap: 20rpx;
|
|
|
|
|
|
- .user-title {
|
|
|
+ .r-celar {
|
|
|
+ width: 192rpx;
|
|
|
+ height: 60rpx;
|
|
|
+ background: #FFFFFF;
|
|
|
+ border-radius: 60rpx;
|
|
|
+ border: 2rpx solid #FB5B5B;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #FB5B5B;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 68rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .r-edit {
|
|
|
+ width: 200rpx;
|
|
|
+ height: 68rpx;
|
|
|
+ background: #C8FF0C;
|
|
|
+ border-radius: 60rpx;
|
|
|
font-weight: bold;
|
|
|
font-size: 28rpx;
|
|
|
color: #222222;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 68rpx;
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- .invite {
|
|
|
+ .r-userinfo-list {
|
|
|
+ .r-userinfo-item {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
- gap: 8rpx;
|
|
|
- font-size: 24rpx;
|
|
|
- color: #AAAAAA;
|
|
|
+ justify-content: space-between;
|
|
|
+ margin-top: 20rpx;
|
|
|
+
|
|
|
+ .r-item-title {
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #AAAAAA;
|
|
|
+ }
|
|
|
+
|
|
|
+ .r-item-info {
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #222222;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
- .user-tags {
|
|
|
- margin-top: 20rpx;
|
|
|
- width: 112rpx;
|
|
|
- height: 40rpx;
|
|
|
- background: #FDD143;
|
|
|
- border-radius: 8rpx;
|
|
|
- line-height: 40rpx;
|
|
|
+.g-userinfo-card {
|
|
|
+ margin-top: 20rpx;
|
|
|
+ padding: 20rpx;
|
|
|
+ background: #FFFFFF;
|
|
|
+ border-radius: 32rpx;
|
|
|
+
|
|
|
+ .r-user {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+
|
|
|
+ .user-title {
|
|
|
font-weight: bold;
|
|
|
font-size: 28rpx;
|
|
|
color: #222222;
|
|
|
- text-align: center;
|
|
|
- font-size: 28rpx;
|
|
|
- color: #222222;
|
|
|
}
|
|
|
|
|
|
- .r-user-list {
|
|
|
- margin-top: 20rpx;
|
|
|
+ .invite {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
- gap: 20rpx;
|
|
|
- border-top: 1rpx solid #F0F0F0;
|
|
|
- height: 140rpx;
|
|
|
-
|
|
|
- .minus-user {
|
|
|
- width: 30rpx;
|
|
|
- height: 30rpx;
|
|
|
- border-radius: 50%;
|
|
|
- background: #FB5B5B;
|
|
|
- text-align: center;
|
|
|
- line-height: 20rpx;
|
|
|
- font-weight: 600;
|
|
|
- color: #fff;
|
|
|
- font-size: 40rpx;
|
|
|
- }
|
|
|
+ gap: 8rpx;
|
|
|
+ font-size: 24rpx;
|
|
|
+ color: #AAAAAA;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- .r-list {
|
|
|
- .name {
|
|
|
- font-weight: bold;
|
|
|
- font-size: 28rpx;
|
|
|
- color: #222222;
|
|
|
- }
|
|
|
+ .user-tags {
|
|
|
+ margin-top: 20rpx;
|
|
|
+ width: 112rpx;
|
|
|
+ height: 40rpx;
|
|
|
+ background: #FDD143;
|
|
|
+ border-radius: 8rpx;
|
|
|
+ line-height: 40rpx;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #222222;
|
|
|
+ text-align: center;
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #222222;
|
|
|
+ }
|
|
|
|
|
|
- .id-num {
|
|
|
- font-size: 28rpx;
|
|
|
- color: #222222;
|
|
|
- }
|
|
|
- }
|
|
|
+ .r-user-list {
|
|
|
+ margin-top: 20rpx;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 20rpx;
|
|
|
+ border-top: 1rpx solid #F0F0F0;
|
|
|
+ height: 140rpx;
|
|
|
+
|
|
|
+ .minus-user {
|
|
|
+ width: 30rpx;
|
|
|
+ height: 30rpx;
|
|
|
+ border-radius: 50%;
|
|
|
+ background: #FB5B5B;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 20rpx;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #fff;
|
|
|
+ font-size: 40rpx;
|
|
|
}
|
|
|
|
|
|
- .g-adduser-btn {
|
|
|
- display: flex;
|
|
|
- height: 88rpx;
|
|
|
- align-items: center;
|
|
|
- justify-content: center;
|
|
|
- gap: 20rpx;
|
|
|
- border-top: 1rpx solid #F0F0F0;
|
|
|
-
|
|
|
- .add-icon {
|
|
|
- width: 30rpx;
|
|
|
- height: 30rpx;
|
|
|
- border-radius: 50%;
|
|
|
- background: #FDD143;
|
|
|
- font-size: 30rpx;
|
|
|
- font-weight: 600;
|
|
|
- color: #fff;
|
|
|
- text-align: center;
|
|
|
- line-height: 20rpx;
|
|
|
+ .r-list {
|
|
|
+ .name {
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #222222;
|
|
|
}
|
|
|
|
|
|
- .add-text {
|
|
|
+ .id-num {
|
|
|
font-size: 28rpx;
|
|
|
- color: #FDD143;
|
|
|
+ color: #222222;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- .submit-btn{
|
|
|
- margin-top: 20rpx;
|
|
|
- width:100%;
|
|
|
- height: 100rpx;
|
|
|
- background: #C8FF0C;
|
|
|
- border-radius: 60rpx;
|
|
|
+
|
|
|
+ .g-adduser-btn {
|
|
|
+ display: flex;
|
|
|
+ height: 88rpx;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ gap: 20rpx;
|
|
|
+ border-top: 1rpx solid #F0F0F0;
|
|
|
+
|
|
|
+ .add-icon {
|
|
|
+ width: 30rpx;
|
|
|
+ height: 30rpx;
|
|
|
+ border-radius: 50%;
|
|
|
+ background: #FDD143;
|
|
|
+ font-size: 30rpx;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #fff;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 20rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .add-text {
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #FDD143;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.submit-btn {
|
|
|
+ margin-top: 20rpx;
|
|
|
+ width: 100%;
|
|
|
+ height: 100rpx;
|
|
|
+ background: #C8FF0C;
|
|
|
+ border-radius: 60rpx;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 32rpx;
|
|
|
+ color: #222222;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 100rpx;
|
|
|
+}
|
|
|
+
|
|
|
+.r-center-popup {
|
|
|
+ width: 646rpx;
|
|
|
+ max-height: 1000rpx;
|
|
|
+ background: #F6F6F6;
|
|
|
+ border-radius: 32rpx;
|
|
|
+ padding: 20rpx;
|
|
|
+
|
|
|
+ .r-popup-title {
|
|
|
font-weight: bold;
|
|
|
font-size: 32rpx;
|
|
|
color: #222222;
|
|
|
text-align: center;
|
|
|
- line-height: 100rpx;
|
|
|
}
|
|
|
+
|
|
|
+ .r-popup-content {
|
|
|
+ margin-top: 28rpx;
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #222222;
|
|
|
+ max-height: 600rpx;
|
|
|
+ overflow: auto;
|
|
|
+ }
|
|
|
+
|
|
|
+ .r-popup-footer {
|
|
|
+ margin-top: 20rpx;
|
|
|
+
|
|
|
+ .r-popup-needbtn {
|
|
|
+ margin: auto;
|
|
|
+ width: 598rpx;
|
|
|
+ height: 100rpx;
|
|
|
+ background: #C8FF0C;
|
|
|
+ border-radius: 60rpx;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 32rpx;
|
|
|
+ color: #222222;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 100rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .r-popup-refusebtn {
|
|
|
+ margin: auto;
|
|
|
+ margin-top: 24rpx;
|
|
|
+ width: 598rpx;
|
|
|
+ height: 100rpx;
|
|
|
+ background: #f0eeee;
|
|
|
+ border-radius: 60rpx;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 32rpx;
|
|
|
+ color: #AAAAAA;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 100rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .r-popup-checkbox {
|
|
|
+ margin-top: 20rpx;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ gap: 16rpx;
|
|
|
+ font-size: 24rpx;
|
|
|
+ color: #AAAAAA;
|
|
|
+
|
|
|
+ &>text {
|
|
|
+ margin-bottom: 8rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|