From bb6aebd55fc9a8039e1c199ae1ea8af4eb547b1b Mon Sep 17 00:00:00 2001 From: queenwuli <942534046@qq.com> Date: Wed, 30 Dec 2020 10:32:41 +0800 Subject: [PATCH] gx --- hive-app/pages/member/projectPlan.vue | 165 ++++++++++++++++++++++++++++--------------------------- 1 files changed, 84 insertions(+), 81 deletions(-) diff --git a/hive-app/pages/member/projectPlan.vue b/hive-app/pages/member/projectPlan.vue index fb8c228..ea64477 100644 --- a/hive-app/pages/member/projectPlan.vue +++ b/hive-app/pages/member/projectPlan.vue @@ -1,13 +1,11 @@ <template> <!-- 项目套餐 --> <view> - <!-- #ifndef H5 --> - <view class="status_bar"></view> - <!-- #endif --> <view> <h-tabs class="tab" - :tabData="tabs" + :tabData="tabs" + @tabClick="tabChange" :config="{ color: '#abb1cc', activeColor: '#518EFF', @@ -21,68 +19,51 @@ <view class="content"> <view class="content-box"> <view class="content-box-title"> - <text>项目</text> + <text class="font-bold">项目</text> </view> - <view class="flex align-center content-box-row" v-for="item in 2"> - <image class="product-img" mode="aspectFill" src="../../static/images/product.jpg"></image> + <view class="flex align-center content-box-row" v-for="item in projectList"> + <image class="product-img" mode="aspectFill" :src="item.img?item.img:'../../static/images/no-img.png'"></image> <view class="flex flex-v ml-10 flex-1"> - <view class="font-12 flex align-center justify-between"> - <text>面部护理</text> - <text class="red">即将过期</text> + <view class="flex justify-between"> + <text class="font-12">{{item.name}}</text> + <text class="font-12 red">{{item.isInvalid | formatIsInvalid}}</text> </view> - <text class="font-10 gray mt-5">时长: 30分钟</text> - <text class="font-10 gray mt-5">有效期至: 2021-01-02</text> - <view class="mt-5 flex align-center justify-between"> - <text class="font-12 blue">剩余次数: 2次</text> - <navigator url="./" hover-class="none" class="right"> - <button class="blue-btn small-btn">立即预约</button> - </navigator> + <text class="font-10 gray mt-5">时长: {{item.timeLength}}分钟</text> + <text class="font-10 gray mt-5">有效期至: {{item.invalidTime || '-'}}</text> + <view class="flex align-center justify-between"> + <text class="font-12 blue">剩余次数: {{item.count}}次</text> + </view> </view> </view> + <no-record :isShow="!projectList.length" size="mini" txt="暂无项目" class="no-record"></no-record> </view> <view class="content-box mt-10"> <view class="content-box-title"> - <text>套餐</text> + <text class="font-bold">套餐</text> </view> - <view class="flex flex-v content-box-row" v-for="item in 2"> + <view class="flex flex-v content-box-row" v-for="item in comboList"> <view class="font-14 flex align-center justify-between"> - <text>时尚补水套餐</text> - <text class="red">即将过期</text> + <text>{{item.name}}</text> + <text class="status">{{item.isCourse | formatType}}</text> </view> - <view class="flex align-center mt-5"> - <image class="product-img" mode="aspectFill" src="../../static/images/product.jpg"></image> + <view class="flex align-center mt-10" v-for="op in item.proj"> + <image class="product-img" mode="aspectFill" :src="op.img?op.img:'../../static/images/no-img.png'"></image> <view class="flex flex-v ml-10 flex-1"> - <text class="font-12">面部护理</text> - <text class="font-10 gray mt-5">时长: 30分钟</text> - <text class="font-10 gray mt-5">有效期至: 2021-01-02</text> - <view class="mt-5 flex align-center justify-between"> - <text class="font-12 blue">剩余次数: 2次</text> - <navigator url="./" hover-class="none" class="right"> - <button class="blue-btn small-btn">立即预约</button> - </navigator> + <text class="font-12">{{op.name}}</text> + <text class="font-10 gray mt-5">时长: {{op.timeLength}}分钟</text> + <view class="flex align-center justify-between"> + <text class="font-12 blue">剩余次数: {{op.count}}次</text> </view> </view> </view> - <view class="flex align-center mt-10"> - <image class="product-img" mode="aspectFill" src="../../static/images/product.jpg"></image> - <view class="flex flex-v ml-10 flex-1"> - <text class="font-12">面部护理</text> - <text class="font-10 gray mt-5">时长: 30分钟</text> - <text class="font-10 gray mt-5">有效期至: 2021-01-02</text> - <view class="mt-5 flex align-center justify-between"> - <text class="font-12 blue">剩余次数: 2次</text> - <navigator url="./" hover-class="none" class="right"> - <button class="blue-btn small-btn">立即预约</button> - </navigator> - </view> - </view> - </view> - <view class="font-12 mt-5"> - <text>有效期至: 2021-01-03</text> + <view class="flex justify-between font-12 mt-10"> + <text>有效期至: {{item.invalidTime}}<text class="red" v-if="item.isInvalid==1">({{item.isInvalid | formatIsInvalid}})</text></text> + <text>剩余总次数:{{item.count}}</text> </view> </view> + <no-record :isShow="!comboList.length" size="mini" txt="暂无套餐" class="no-record"></no-record> </view> </view> </view> @@ -96,25 +77,66 @@ }, data() { return { + type: 0, tabs:[ { - state: 1, + state: 0, name: '全部' }, { - state: 2, + state: 1, name: '有效' }, { - state: 3, + state: 2, name: '1个月内过期' }, { - state: 4, + state: 3, name: '失效' }, ], + id: '', + comboList: [], //套餐 + projectList: [], //项目 } + }, + onLoad(options) { + this.id = options.id; + this.loadList(); + }, + methods:{ + loadList(){ + this.$httpUtils.request('/api/serviceOrder/findVipProject',{ + type: this.type, + vipId: this.id + },'POST').then((res) => { + if(res.status == 200){ + let result = res.mapInfo.proj; + this.projectList = result.proj; + this.comboList = result.composeProj; + } + }) + }, + tabChange(e){ + this.type = e; + this.loadList() + } + }, + filters:{ + formatType(val){ + if(val === 'Y'){ + return '任选套餐' + } else { + return '固定套餐' + } + }, + formatIsInvalid(val){ + if(val == 1){ + return '即将过期' + } + return '' + } } } </script> @@ -134,13 +156,13 @@ } .content-box{ background: #FFFFFF; - padding: 10px; + padding: 0 10px 10px; border: 1px solid #EDEAF4; border-radius: 4px; box-shadow:0 6px 6px rgba(237,234,244,0.5); } .content-box-title{ - padding: 10px 5px; + padding: 12px 5px; border-bottom: 1px solid #EDEAF4; } .content-box-row{ @@ -152,36 +174,17 @@ padding-bottom: 0; } .product-img{ - width: 80px; - height: 80px; + width: 70px; + height: 70px; border-radius: 4px; } - .shopping{ - background: #FFFFFF; - padding: 10px 10px; - position: fixed; - bottom: 0; - left: 0; - right: 0; + .status{ + width: 80px; + text-align: right; + color: #a5abaf; + font-weight: 700; } - .shopping-icon{ - font-size: 28px; - position: relative; - } - .shopping-icon-num{ - width: 20px; - height: 20px; - background: #518EFF; - border-radius: 50%; - color: #FFFFFF; - position: absolute; - right: -10px; - top: -10px; - } - .btn{ - border-radius: 20px; - line-height: 34px; - padding: 0 24px; - font-size: 14px; + .no-record{ + margin: 20px 0!important; } </style> -- Gitblit v1.9.1