This commit is contained in:
Mr.jiang 2024-08-07 09:27:45 +08:00
parent 050097471b
commit 694c05125d
26 changed files with 1682 additions and 255 deletions

View File

@ -21,7 +21,7 @@
<text class="title-font">次卡价格</text>
<span class="money-pay-zhen-a1"></span>
<span class="money-pay-zhen-a2">{{orderXm.price}}</span>
<span class="money-pay-zhen-a1">/</span>
<span class="money-pay-zhen-a1">/{{orderXm.serviceCount}}</span>
</view>
</view>
<view class="money-pay justify-between">

View File

@ -26,7 +26,7 @@
<view class="money-pay" style="width: 100%;justify-content: space-between;">
<view class="money-pay-zhen">
<span></span>
<span>{{order.sumMoney}}{{orderXm.type=='104'?'/套':orderXm.type=='105'?'/次':'/次'}}</span>
<span>{{order.sumMoney}}/{{orderXm.serviceCount}}{{orderXm.type=='104'?'套':orderXm.type=='105'?'次':'次'}}</span>
</view>
<view>
<uni-number-box :disabled="true" :value="order.ordersPackageList[0].num" :width='27' :min="1" @change="changeValue" />

View File

@ -203,10 +203,10 @@
this.vipData=res.data.isVip;
console.log("isVIP------------------->",this.vipData)
if(this.vipData=='1'){
this.vipShow=true;
this.vipShow=false;
}else{
this.vipData=[]
this.vipShow=false
this.vipShow=true
}
this.timeVipEnd = data.slice(0,16);
this.getVipList(res.data.vipNameType)

View File

@ -32,6 +32,9 @@
<span>¥{{item.price}}</span>
<span>到账¥{{item.sumMoney}}</span>
</view>
<view v-if="item.dayMoney" class="shenandou">
每日获得{{item.dayMoney}}盛安豆可获得{{item.dayNum}}
</view>
<view class="bo-amount">
<view class="amount-balance">
<view>
@ -41,6 +44,7 @@
</view>
<view class="amount-block">
<view class="amount-block-lin" v-for="(itemList,indexList) in item.detailList" :key='indexList'><span>{{itemList.coupon.money}}</span>{{itemList.giveNum}}</span></view>
</view>
</view>
</view>
@ -960,6 +964,9 @@
</script>
<style scoped>
.shenandou{
color: #019c88;
}
/deep/.uni-modal__bd :nth-child(3) {
color: red !important;
}

View File

@ -31,6 +31,28 @@
}
},
// #endif
{
"path": "pages/shop/qiyeListMy",
"style": {
"navigationBarTitleText": "企业预约列表",
"enablePullDownRefresh": false,
"navigationStyle": "custom",
"app-plus": {
"titleNView": false
}
}
},
{
"path": "pages/shop/qiyeDatail",
"style": {
"navigationBarTitleText": "企业预约详情",
"enablePullDownRefresh": false,
"navigationStyle": "custom",
"app-plus": {
"titleNView": false
}
}
},
{
"path": "pages/my/txszList",
"style": {
@ -902,7 +924,7 @@
},{
"path": "order/payModifyCi",
"style": {
"navigationBarTitleText": "次卡订单详情",
"navigationBarTitleText": "订单详情",
"enablePullDownRefresh": false,
"app-plus": {
"titleNView": false
@ -911,7 +933,7 @@
},{
"path": "order/paydingCi",
"style": {
"navigationBarTitleText": "次卡订单支付",
"navigationBarTitleText": "订单支付",
"enablePullDownRefresh": false,
"app-plus": {
"titleNView": false
@ -920,7 +942,7 @@
},{
"path": "order/payModifyLiao",
"style": {
"navigationBarTitleText": "疗程订单详情",
"navigationBarTitleText": "订单详情",
"enablePullDownRefresh": false,
"app-plus": {
"titleNView": false
@ -929,7 +951,7 @@
},{
"path": "order/paydingLiao",
"style": {
"navigationBarTitleText": "疗程订单支付",
"navigationBarTitleText": "订单支付",
"enablePullDownRefresh": false,
"app-plus": {
"titleNView": false
@ -956,7 +978,7 @@
},{
"path": "order/paydingTc",
"style": {
"navigationBarTitleText": "套餐订单详情",
"navigationBarTitleText": "订单详情",
"enablePullDownRefresh": false,
"app-plus": {
"titleNView": false

View File

@ -2,8 +2,8 @@
<view class="content">
<view class="header">
<view class="header-top" :style="backgroundStyle" @click="goNav('/my/vip/index')">
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-if="!isVIP"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVIP"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip=='1'"></image>
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-else></image>
</view>
<view class="header-bottom">
<view class="header-bottom-top">
@ -35,7 +35,7 @@
{{mainData.oldPrice}}/{{mainData.serviceCount}}
</view>
</view>
<view class="xiaoer item-view-biao">{{mainData.levelName}}</view>
<!-- <view class="xiaoer item-view-biao">{{mainData.levelName}}</view> -->
</view>
</view>
<view class="header-bottom-foot">
@ -143,7 +143,7 @@
detailData:[],
dataList:[],
mainData:[],
isVIP:false,
isVip:false,
contentImg:[],
// URLAPI
backgroundImageUrl: '',
@ -171,7 +171,7 @@
onLoad(e) {
var that=this;
that.dataList=e;
that.isVIP=this.$queue.getData('isVIP');
that.isVip=this.$queue.getData('isVIP');
that.getData()
that.youhui()
},

View File

@ -2,8 +2,8 @@
<view class="content">
<view class="header">
<view class="header-top" :style="backgroundStyle" @click="goNav('/my/vip/index')">
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-if="!isVIP"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVIP"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip=='1'"></image>
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-else></image>
</view>
<view class="header-bottom-top-list">
<view class="header-bottom-foot-view2">
@ -126,7 +126,7 @@
return{
dataList:[],
getList:[],
isVIP:false,
isVip:false,
// URLAPI
backgroundImageUrl: '',
nameText:'',
@ -145,7 +145,7 @@
onLoad(e) {
var that=this;
that.dataList=e;
that.isVIP=this.$queue.getData('isVIP');
that.isVip=this.$queue.getData('isVIP');
if(that.dataList.name=='index'){
that.getIndexData()
}else{

View File

@ -2,8 +2,8 @@
<view class="content">
<view class="header">
<view class="header-top" :style="backgroundStyle" @click="goNav('/my/vip/index')">
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-if="!isVIP"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVIP"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip=='1'"></image>
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-else></image>
</view>
<view class="header-bottom">
<view class="header-bottom-top">
@ -142,7 +142,7 @@
return{
dataList:[],
getList:[],
isVIP:false,
isVip:false,
// URLAPI
backgroundImageUrl: '',
myId:'',
@ -161,7 +161,7 @@
onLoad(e) {
var that=this;
that.dataList=e;
that.isVIP=this.$queue.getData('isVIP');
that.isVip=this.$queue.getData('isVIP');
that.myId = uni.getStorageSync('userId');
that.getData()
},

View File

@ -2,8 +2,8 @@
<view class="content">
<view class="header">
<view class="header-top" :style="backgroundStyle" @click="goNav('/my/vip/index')">
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-if="!isVIP"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVIP"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip=='1'"></image>
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-else></image>
</view>
<view class="header-bottom">
<view class="header-bottom-top">
@ -35,7 +35,7 @@
{{mainData.oldPrice}}/{{mainData.serviceCount}}
</view>
</view>
<view class="xiaoer item-view-biao">{{mainData.levelName}}</view>
<!-- <view class="xiaoer item-view-biao">{{mainData.levelName}}</view> -->
</view>
</view>
<view class="header-bottom-title-bottom">
@ -149,7 +149,7 @@
detailData:[],
dataList:[],
mainData:[],
isVIP:false,
isVip:false,
// URLAPI
backgroundImageUrl: '',
liaoTime:'',
@ -180,7 +180,7 @@
onLoad(e) {
var that=this;
that.dataList=e;
that.isVIP=this.$queue.getData('isVIP');
that.isVip=this.$queue.getData('isVIP');
that.youhui()
that.getData()
},

View File

@ -10,7 +10,7 @@
<view class="my-head-top-view" v-if="!isLogin">
<view class="my-head-top-text">
<span>{{userName}}</span>
<view class="my-head-top-id" v-if="vipNameType!=null">
<view class="my-head-top-id" v-if="isVip=='1'">
<image v-if="vipNameType=='0'" class="my-head-vip" style="width:120rpx; height: 36rpx;"
src="../../static/vip/membership5.gif"></image>
<image v-if="vipNameType=='1'" class="my-head-vip" style="width:120rpx; height: 36rpx;"
@ -67,8 +67,8 @@
</view>
</view>
<view class="my-head-bottom back-width" @click="goNav('/my/vip/index')">
<image src="../../static/activate3.png" mode="widthFix" v-if="isVip=='1'"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip=='0'"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip=='1'"></image>
<image src="../../static/activate3.png" mode="widthFix" v-else></image>
<!-- <image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-if="!isVip"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip"></image> -->
</view>
@ -118,6 +118,10 @@
<image src="../../static/my-liaocheng3.png" mode=""></image>
<span class="my-serve-list-text">限时秒杀</span>
</view>
<view class="my-serve-list" @click="qiye()">
<image src="../../static/my-liaocheng3.png" mode=""></image>
<span class="my-serve-list-text">企业预约</span>
</view>
</view>
</view>
<view class="my-use width">
@ -323,6 +327,11 @@
}
},
methods: {
qiye(){
uni.navigateTo({
url:'/pages/shop/qiyeListMy'
})
},
goMsg() { //
let data = {
userId: uni.getStorageSync('userId'),

View File

@ -18,7 +18,7 @@
</view>
</view>
<view class="fenlei">
<z-tabs class="z-tabs-fenlei":list="tabList" @change="tabChange" @changeClick="changeClick"/>
<z-tabs class="z-tabs-fenlei" :list="tabList" @change="tabChange" @changeClick="changeClick"/>
</view>
</template>
<template #loadingMoreNoMore >

View File

@ -2,8 +2,8 @@
<view class="content">
<view class="header">
<view class="header-top" :style="backgroundStyle" @click="goNav('/my/vip/index')">
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-if="!isVIP"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVIP"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip=='1'"></image>
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-else></image>
</view>
<view class="header-bottom">
<view class="header-bottom-top">
@ -102,7 +102,7 @@
return{
dataList:[],
getList:[],
isVIP:false,
isVip:false,
// URLAPI
backgroundImageUrl: '',
myId:'',
@ -121,7 +121,7 @@
onLoad(e) {
var that=this;
that.dataList=e;
that.isVIP=this.$queue.getData('isVIP');
that.isVip=this.$queue.getData('isVIP');
that.myId = uni.getStorageSync('userId');
that.getData()
},

View File

@ -2,8 +2,8 @@
<view class="content">
<view class="header">
<view class="header-top" :style="backgroundStyle" @click="goNav('/my/vip/index')">
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-if="!isVip"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip=='1'"></image>
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-else></image>
</view>
<view class="header-bottom">
<view class="header-bottom-top">

View File

@ -2,8 +2,8 @@
<view class="content">
<view class="header">
<view class="header-top" :style="backgroundStyle" @click="goNav('/my/vip/index')">
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-if="!isVIP"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVIP"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip=='1'"></image>
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-else></image>
</view>
<view class="header-bottom">
<view class="header-bottom-top">
@ -98,7 +98,7 @@
detailData:[],
dataList:[],
getList:[],
isVIP:false,
isVip:false,
// URLAPI
backgroundImageUrl: '',
page:1,
@ -118,7 +118,7 @@
onLoad(e) {
var that=this;
that.dataList=e;
that.isVIP=this.$queue.getData('isVIP');
that.isVip=this.$queue.getData('isVIP');
that.getData()
},
methods:{

View File

@ -2,8 +2,8 @@
<view class="content">
<view class="header">
<view class="header-top" :style="backgroundStyle" @click="goNav('/my/vip/index')">
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-if="!isVIP"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVIP"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip=='1'"></image>
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-else></image>
</view>
<view class="header-bottom-top-list">
<view class="header-bottom-foot-view2">
@ -45,7 +45,7 @@
{{getList.oldPrice}}
</view>
</view>
<view class="xiaoer item-view-biao">{{getList.levelName}}</view>
<!-- <view class="xiaoer item-view-biao">{{getList.levelName}}</view> -->
</view>
</view>
<view class="header-bottom-foot">
@ -122,7 +122,7 @@
return{
dataList:[],
getList:[],
isVIP:false,
isVip:false,
// URLAPI
backgroundImageUrl: '',
nameText:'',
@ -141,7 +141,7 @@
onLoad(e) {
var that=this;
that.dataList=e;
that.isVIP=this.$queue.getData('isVIP');
that.isVip=this.$queue.getData('isVIP');
that.getData();
},
methods:{

View File

@ -88,7 +88,7 @@
<view class="item-view-bottom-qian">
<span></span>
<span>{{item.price}}</span>
<span>{{item.oldPrice}}</span>
<span class="item-view-bottom-qia-span">{{item.oldPrice}}</span>
</view>
<view class="flex" style="margin-top: 10rpx;">
<view class="shop_label" v-if="item.tagsData!=''">
@ -388,9 +388,9 @@
color: #FFFFFF;
}
.item-view-bottom-qian span:nth-child(4) {
.item-view-bottom-qia-span{
font-size: 26rpx;
color: #848484;
color: #848484 !important;
text-decoration-line: line-through;
margin-left: 5px;
}

View File

@ -2,8 +2,8 @@
<view class="content">
<view class="header">
<view class="header-top" :style="backgroundStyle" @click="goNav('/my/vip/index')">
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-if="!isVIP"></image>
<!--<image src="../../static/activate2.png" mode="widthFix" v-if="isVIP"></image>-->
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip=='1'"></image>
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-else></image>
</view>
<view class="group-buy">
<view class="group-buy-left">
@ -113,7 +113,7 @@
detailData:[],
dataList:[],
mainData:[],
isVIP:false,
isVip:false,
// URLAPI
backgroundImageUrl: '',
liaoTime:'',
@ -155,7 +155,7 @@
onLoad(e) {
var that=this;
that.dataList=e;
that.isVIP=this.$queue.getData('isVIP');
that.isVip=this.$queue.getData('isVIP');
that.getData();
that.getUserData();
},

View File

@ -2,8 +2,8 @@
<view class="content">
<view class="header">
<view class="header-top" :style="backgroundStyle" @click="goNav('/my/vip/index')">
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-if="!isVIP"></image>
<!--<image src="../../static/activate2.png" mode="widthFix" v-if="isVIP"></image>-->
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip=='1'"></image>
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-else></image>
</view>
<view class="group-buy">
<view class="group-buy-left">
@ -115,7 +115,7 @@
detailData:[],
dataList:[],
mainData:[],
isVIP:false,
isVip:false,
// URLAPI
backgroundImageUrl: '',
liaoTime:'',
@ -150,7 +150,7 @@
onLoad(e) {
var that=this;
that.dataList=e;
that.isVIP=this.$queue.getData('isVIP');
that.isVip=this.$queue.getData('isVIP');
that.youhui();
that.getData();
that.getUserData();

View File

@ -2,8 +2,8 @@
<view class="content">
<view class="header">
<view class="header-top" :style="backgroundStyle" @click="goNav('/my/vip/index')">
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-if="!isVIP"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVIP"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip=='1'"></image>
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-else></image>
</view>
<view class="header-bottom-top-list">
<view class="header-bottom-foot-view2">
@ -121,7 +121,7 @@
return{
dataList:[],
getList:[],
isVIP:false,
isVip:false,
// URLAPI
backgroundImageUrl: '',
nameText:'',
@ -140,7 +140,7 @@
onLoad(e) {
var that=this;
that.dataList=e;
that.isVIP=this.$queue.getData('isVIP');
that.isVip=this.$queue.getData('isVIP');
that.getData();
},
methods:{

View File

@ -2,8 +2,8 @@
<view class="content">
<view class="header">
<view class="header-top" :style="backgroundStyle" @click="goNav('/my/vip/index')">
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-if="!isVip"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip=='1'"></image>
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-else></image>
</view>
<view class="header-bottom">
<view class="header-bottom-top">
@ -149,7 +149,7 @@
detailData:[],
// URLAPI
backgroundImageUrl: '',
zong:''
zong:'',
}
},
computed: {

View File

@ -2,8 +2,8 @@
<view class="content">
<view class="header">
<view class="header-top" :style="backgroundStyle" @click="goNav('/my/vip/index')">
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-if="!isVip"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip"></image>
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip=='1'"></image>
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-else></image>
</view>
<view class="header-bottom">
<view class="header-bottom-top">
@ -73,7 +73,7 @@
</view>
</view>
</view>
<view class="detail-foot">
<view class="detail-foot" v-if="serviData.name=='my'">
<view class="detail-foot-nav">
<span class="detail-foot-nav-text">套餐详情</span>
<span class="detail-foot-nav-bor"></span>
@ -118,6 +118,20 @@
</view>
</view>
<view class="detail-foot" v-if="serviData.name=='index'">
<view class="detail-foot-nav">
<span class="detail-foot-nav-text">项目详情</span>
<span class="detail-foot-nav-bor"></span>
</view>
<view class="detail-foot-mian detail-pad">
<image class="detail-foot-mian-img" v-for="(item,index) in contentImg" :key="index" :src="item" mode="widthFix"></image>
<!-- <view class="lab-view">
<view class="detail-foot-mian-txet" v-for="item in labels" :key="item">
<span class="detail-foot-mian-txetList">{{item}}</span>
</view>
</view> -->
</view>
</view>
<view class="push-button">
<view class="detail-btn" v-if="serviData.name=='index'" @click="openpay(mainData)">
立即购买
@ -172,6 +186,7 @@
nameText:'',
zong:'',
contentShow:'0',
contentImg:''
}
},
computed: {
@ -708,6 +723,7 @@
}
that.mainData=res.mainData;
that.detailData=res.detailData.list;
that.contentImg=that.mainData.contentImg.split(",");
that.backgroundImageUrl=that.mainData.packageImg;
that.nameText="index"
}
@ -1020,6 +1036,7 @@
justify-content: center;
align-items: center;
margin-top: 8px;
margin-bottom: 100px;
}
.jianjie-contnet{
font-weight: 400;

View File

@ -32,7 +32,7 @@
<view class="item-view">
<view class="view-cata">
<view class="item-view-title">{{item.title}}</view>
<span class="xiaoer item-view-biao">{{item.levelName}}</span>
<span class="xiaoer item-view-biao" v-if="type=='104'||type=='105'||type=='106'">{{item.levelName}}</span>
</view>
<view class="item-view-bottom-qian">
<span></span>
@ -41,7 +41,7 @@
{{type=='104'?'套':type=='105'?'次':'次'}}</span>
<span></span>
<span>{{item.oldPrice}}</span>
<span v-if="type=='104'||type=='105'||type=='106'">
<span v-if="type=='104'||type=='105'||type=='106'" class="item-view-bottom-qian-span">
<text v-if="item.type!='104'">
/{{item.serviceCount}}{{type=='104'?'':type=='105'?'':''}}
</text>
@ -311,7 +311,11 @@
font-size: 28rpx;
color: #FFFFFF;
}
.item-view-bottom-qian-span{
font-size: 28rpx;
color: #848484;
text-decoration-line: line-through;
}
.item-view-bottom-qian span:nth-child(5) {
font-size: 28rpx;
color: #848484;

View File

@ -9,8 +9,8 @@
<span>{{getText}}</span>
</view>
<view>
<uni-search-bar @service="serviceTrue" :cancelext="'取消'" v-model="searchValue" @input="input"
@clear="clear">
<uni-search-bar @service="serviceTrue" @confirm="search" :cancelext="'取消'" v-model="searchValue"
@input="input" @clear="clear">
</uni-search-bar>
<view class="search-btn" @click="searchBtn">
<image style="width:30rpx; height:30rpx; margin-right: 10rpx;"
@ -19,41 +19,43 @@
</view>
</view>
</view>
<view v-if="getText=='企业'" class="fenlei">
<z-tabs class="z-tabs-fenlei" :list="tabList" @change="tabChange" @changeClick="changeClick" />
</view>
</template>
<!-- <template #refresher="{refresherStatus}" >
<custom-refresher :status="refresherStatus" />
</template> -->
<template #loadingMoreNoMore>
<custom-nomore />
</template>
<view v-if="getText=='企业'">
<view class="item" v-for="(item,index) in dataList" :key="index" @click="itemClick(item)">
<image :src="item.massageImg" mode="" class="item-img"></image>
<view class="item-view">
<view class="view-cata">
<view class="item-view-title">{{item.title}}</view>
<span class="xiaoer">{{item.classifyName}}</span>
<view v-if="getText=='企业'" class="item" v-for="(item,index) in dataList" :key="index" @click="itemClick(item)">
<image :src="item.packageImg" mode="" class="item-img"></image>
<view class="item-view">
<view class="view-cata">
<view class="item-view-title">{{item.title}}</view>
<span class="xiaoer item-view-biao">{{item.levelName}}</span>
</view>
<view class="item-view-bottom-qian">
<span></span>
<span>{{item.price}}</span>
<span>/ <text v-if="item.type!='104'">{{item.serviceCount}}</text>
{{typeData=='104'?'套':typeData=='105'?'次':'次'}}</span>
<span></span>
<span>{{item.oldPrice}}<text
v-if="item.type!='104'">/{{item.serviceCount}}</text>{{typeData=='104'?'':typeData=='105'?'':''}}</span>
</view>
<view class="flex" style="margin-top: 10rpx;">
<view class="shop_label" v-if="item.tagsData!=''">
<span v-for="tag in item.tagsData" :key="tag">{{tag}}</span>
</view>
<view class="item-view-bottom-qian">
<span></span>
<span>{{item.price}}</span>
<span>{{item.oldPrice}}</span>
<view class="shop_label" v-else>
<span>助眠解压</span>
</view>
<view class="flex" style="margin-top: 10rpx;">
<view class="shop_label" v-if="item.tagsData!=''">
<span v-for="tag in item.tagsData" :key="tag">{{tag}}</span>
</view>
<view class="shop_label" v-else>
<span>助眠解压</span>
</view>
</view>
<view class="item-view-bottom">
<view class="item-view-xiangmu">
<span>已售</span><span>{{item.sales}}</span><!-- | 好评{{item.esteemRate}}% -->
</view>
<view class="item-view-bottom">
<view class="item-view-xiangmu">
<span>已售</span><span>{{item.sales}}</span>
</view>
<view class="item-view-bottom-btn">
查看
</view>
<view class="item-view-bottom-btn">
查看
</view>
</view>
</view>
@ -98,7 +100,7 @@
myId: '',
// v-model
dataList: [],
typeData: '104',
typeData: '114',
tabIndex: 0,
searchValue: '',
serviceTrue: true,
@ -107,85 +109,49 @@
titleNmae: '',
classifyId: '',
getName: '',
tabList: [],
getText: '',
tagsData: []
}
},
onLoad(e) {
this.typeData = e.type
this.getName = e.name;
this.getText = e.text
this.getName = e.name;
this.myId = uni.getStorageSync('userId')
// this.getData();
uni.setNavigationBarTitle({
title: this.getText,
})
this.tabNav()
},
// onPullDownRefresh: function() {
// this.page = 1;
// this.getData()
// },
methods: {
//
// loadMore: async function() {
// //loadingType: 0. 1. 2.
// if(this.loadingType==0){
// this.loadingType=2
// //
// setTimeout(()=>{
// this.page++;
// this.loadingType=0;
// this.getData()
// },1000)
// }
// },
tabNav() {
let data = {
type: "服务类型",
}
this.$Request.get('/app/dict/list', data).then(res => {
if (res.code == 0) {
this.tabList = res.data;
this.classifyId = res.data[0].id;
this.page = 1;
this.dataList = []
this.getData()
}
})
},
input(res) { //
this.searchValue = res;
},
searchBtn() { //
if (this.searchValue != "") {
this.page = 1;
this.getData()
}
},
getData() {
// var that=this;
// if(that.getText==''){
// that.$Request.get("/app/artificer/selectMassageTypeQyPage", {
// city:'',
// page:that.page,
// limit:that.limit,
// title:that.searchValue
// }).then(res => {
// if (res.code == 0) {
// if (res.data) {
// if (this.page == 1) this.dataList = []; //
// this.dataList = [...this.dataList, ...res.data.list]; //
// for(var i=0;i<this.dataList.length;i++){
// this.dataList[i].tagsData=this.dataList[i].labels.split(',');
// }
// uni.stopPullDownRefresh()
// }
// }
// });
// }else{//
// that.$Request.get("/app/consortia/selectConsortiaList", {
// page:that.page,
// limit:that.limit,
// consortiaName:that.searchValue
// }).then(res => {
// if (res.code == 0) {
// if (res.data) {
// if (this.page == 1) this.dataList = []; //
// this.dataList = [...this.dataList, ...res.data.list]; //
// for(var i=0;i<this.dataList.length;i++){
// this.tagsData=this.dataList[i].tags.split(',');
// }
// uni.stopPullDownRefresh()
// }
// }
// });
// }
this.$refs.paging.reload(true);
},
queryList(pageNo, pageSize) {
@ -193,18 +159,28 @@
var params = {
page: pageNo,
limit: pageSize,
city: '长春',
title: this.searchValue
type: this.typeData,
title: this.searchValue,
classifyId: this.classifyId
}
this.$Request.get('/app/artificer/selectMassageTypeQyPage', params).then(res => {
this.$Request.get('/app/massage/package/findPage', params).then(res => {
for (var i = 0; i < res.data.list.length; i++) {
res.data.list[i].tagsData = res.data.list[i].labels.split(',');
if (res.data.list[i].level == 3) {
res.data.list[i].levelName = "新手"
}
if (res.data.list[i].level == 4) {
res.data.list[i].levelName = "专家"
}
if (res.data.list[i].level == 5) {
res.data.list[i].levelName = "资深"
}
}
this.$refs.paging.complete(res.data.list);
}).catch(res => {
this.$refs.paging.complete(false);
})
} else {
}else{
var params = {
page: pageNo,
limit: pageSize,
@ -220,7 +196,14 @@
this.$refs.paging.complete(false);
})
}
},
changeClick(index, item) {
this.classifyId = item.id
this.searchValue = ''
this.page = 1;
this.dataList = []
this.getData()
},
backImg() { //
uni.reLaunch({
@ -233,36 +216,73 @@
itemClick(item) {
if (this.getText == '企业') {
uni.navigateTo({
url: '/pages/my/fuwuDateil?id=' + item.massageTypeId + '&limit=' + this.limit + '&page=' +
this.page + '&name=' + 'index' + '&isCanCoupon=' + item.isCanCoupon
url: '/pages/shop/qiyeDatail?id=' + item.id+'&name='+'index'
})
} else {
uni.navigateTo({
url: '/pages/shop/yueDaoDianDrtail?id=' + item.consortiaId
})
}
}
}
}
</script>
<style scoped>
/deep/.refresh-body .content {
background-color: #f7f7f7;
/deep/.z-tabs-item-title /deep/span {
white-space: nowrap;
}
.fenlei {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.tab-view {
width: 100%;
display: flex;
flex-direction: column;
position: fixed;
z-index: 999;
/*background:#fff linear-gradient(60deg,rgba(115, 212, 183, 0.2),rgba(227, 251, 244, 0.1),rgba(193, 236, 223, 0.35));
border-bottom:1rpx solid #c4ede1;*/
padding-top: 6rpx;
}
.shop_label {
display: flex;
flex-wrap: wrap;
margin-top: 4rpx;
}
.shop_label span {
background: linear-gradient(90deg, #ffefde, #fff7ef);
height: 34rpx;
line-height: 34rpx;
border-radius: 8rpx;
padding: 0 10rpx;
font-size: 22rpx;
margin-right: 8rpx;
margin-bottom: 8rpx;
color: #f68607;
}
/deep/.refresh-body .content {}
/deep/.refresh-body {
height: 100% !important;
border-top: 2px solid #f7f7f7;
margin: 80px 0px;
}
.content-view {
width: 100%;
height: 100vh;
overflow: auto;
overflow: hidden;
background-color: #f7f7f7;
position: relative;
/*position: relative;*/
}
.item-view-bottom-btn {
@ -291,9 +311,8 @@
}
.item-view-bottom-qian span:nth-child(3) {
font-size: 26rpx;
color: #848484;
text-decoration-line: line-through;
font-size: 28rpx;
color: #FF6000;
}
.item-view-bottom-qian span:nth-child(2) {
@ -334,7 +353,10 @@
}
.item-view-biao {
padding: 1px 5px;
border-radius: 15rpx 3rpx 15rpx 3rpx;
width: 50px;
text-align: center;
}
.tuina {
@ -345,9 +367,6 @@
.xiaoer {
background-color: #f1f8d7;
color: #58b314;
font-size: 22rpx;
padding: 3rpx 3rpx;
border-radius: 15rpx 15rpx 2rpx 2rpx;
}
.taishi {
@ -383,7 +402,6 @@
}
.item-view-title {
width: 75%;
font-weight: bold;
font-size: 32rpx;
color: #333333;
@ -441,7 +459,7 @@
/*height: 140px;*/
background: #FFFFFF;
border-radius: 21rpx;
margin-top: 10px;
margin-bottom: 10px;
align-items: center;
padding: 20rpx;
}
@ -473,17 +491,9 @@
margin: 0 auto;
}
.fenlei {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.index-fenl-title {
width: 81rpx;
text-align: center;
position: relative;
display: flex;
flex-direction: column;
align-items: center;
@ -506,22 +516,12 @@
display: none;
}
.search-btn {
text-align: center;
color: #019c88;
font-weight: bold;
position: absolute;
right: 40rpx;
top: 20rpx;
font-size: 30rpx;
display: flex;
align-items: center;
}
/deep/.uni-searchbar__box-icon-search,
.search-btn {
width: 110rpx;
height: 50rpx;
/* background: #18A689;
border-radius: 31rpx; */
}
/deep/.uni-searchbar__box {
@ -541,6 +541,49 @@
padding-right: 24rpx;
}
.search-btn {
text-align: center;
color: #019c88;
font-weight: bold;
position: absolute;
right: 40rpx;
top: 20rpx;
font-size: 30rpx;
display: flex;
align-items: center;
}
/deep/.uni-input-input {
display: block;
height: 100%;
background: none;
color: inherit;
opacity: 1;
font: inherit;
line-height: inherit;
letter-spacing: inherit;
text-align: inherit;
text-indent: 10px;
text-transform: inherit;
text-shadow: inherit;
}
/deep/uni-input-form {
display: -webkit-box;
display: -webkit-flex;
display: flex;
position: relative;
width: 100%;
height: 100%;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
flex-direction: column;
-webkit-box-pack: center;
-webkit-justify-content: center;
justify-content: center;
}
.service-head-top-left image {
width: 20px;
height: 20rpx;
@ -578,63 +621,6 @@
display: flex;
flex-direction: row;
align-items: center;
}
.shop_category {
display: flex;
flex-wrap: wrap;
align-items: flex-end;
justify-content: space-between;
font-size: 26rpx;
padding: 8rpx 0;
margin-top: 40rpx;
}
.shop_category_a {
color: #019c88;
}
.shop_item {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
width: 90%;
margin: 15rpx auto;
}
.shop_color {
color: #fb672b;
font-weight: bold;
font-size: 38rpx;
}
.shop_label {
display: flex;
flex-wrap: wrap;
margin-top: 4rpx;
}
.shop_label span {
background: linear-gradient(90deg, #ffefde, #fff7ef);
height: 34rpx;
line-height: 34rpx;
border-radius: 8rpx;
padding: 0 10rpx;
font-size: 22rpx;
margin-right: 8rpx;
margin-bottom: 8rpx;
color: #f68607;
}
.shop-arrow {
display: inline-block;
border-top: 1px solid;
border-right: 1px solid;
width: 7px;
height: 7px;
border-color: #999;
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
margin-top: 7px;
}
</style>

874
pages/shop/qiyeDatail.vue Normal file
View File

@ -0,0 +1,874 @@
<template>
<view class="content">
<view class="header">
<view class="header-top" :style="backgroundStyle" @click="goNav('/my/vip/index')">
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip=='1'"></image>
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-else></image>
</view>
<view class="header-bottom">
<view class="header-bottom-top">
<view class="header-bottom-title">
<view class="header-bottom-title-text">
<span>{{mainData.title}}</span>
<span class="header-bottom-title-liao">
次卡
</span>
</view>
<view class="header-bottom-title-num">
<span>{{mainData.sales}}</span>
<span> 人选择</span>
</view>
</view>
<view class="header-bottom-money-view">
<view class="header-bottom-money1">
<view class="header-bottom-money-zhen">
<span></span>
<span>{{mainData.price}}</span>
<span v-if="dataList.name=='index'">/{{serviceCount}}</span>
<span v-else>/{{mainData.serviceCount}}</span>
</view>
<view v-if="dataList.name=='index'" class="header-bottom-money-jia" style="text-decoration: line-through;">
{{mainData.oldPrice}}/{{serviceCount}}
</view>
<view v-else class="header-bottom-money-jia" style="text-decoration: line-through;">
{{mainData.oldPrice}}/{{mainData.serviceCount}}
</view>
</view>
<!-- <view class="xiaoer item-view-biao">{{mainData.levelName}}</view> -->
</view>
</view>
<view class="header-bottom-foot">
<view class="header-bottom-foot-cont">
<view class="header-bottom-foot-view">
<image class="header-bottom-foot-view-img1" src="../../static/servicePackage/idCard.png" mode=""></image>
<span>未服务全额退款</span>
</view>
<view class="header-bottom-foot-view" style="margin: 0px 7px;width: 26%;">
<image class="header-bottom-foot-view-img2" src="../../static/servicePackage/money.png" mode=""></image>
<span>不满意重做</span>
</view>
<view class="header-bottom-foot-view">
<image class="header-bottom-foot-view-img3" src="../../static/servicePackage/shuangyue.png" mode=""></image>
<span>最快30分钟上门</span>
</view>
</view>
</view>
</view>
</view>
<view class="detail-foot" v-if="dataList.name=='my'">
<view class="detail-foot-nav">
<span class="detail-foot-nav-text">次卡详情</span>
<span class="detail-foot-nav-bor"></span>
</view>
<view class="detail-foot-mian1">
<view class="detail-foot-list" v-for="(item,index) in detailData" :key="index">
<view class="detail-foot-list-top">
<span style="margin-right: 5px;">{{item.title}}</span>
</view>
<view class="header-bottom-money">
<view class="header-bottom-money-zhen">
已使用{{item.usedQuantity}}
</view>
<view class="dingdan-btn" @click="detail(item)" :class="[item.usedQuantity=='0'?'dingdan-btn-h':'dingdan-btn-l']">
订单详情
</view>
</view>
<view class="header-bottom-money" style="margin-top: 5px;">
<view class="header-bottom-money-zhen">
未使用{{item.unUsedQuantity}}
</view>
<view class="dingdan-btn" @click="goumai(item)" :class="[item.unUsedQuantity=='0'?'dingdan-btn-h':'dingdan-btn-l']">
立即预约
</view>
</view>
<view class="detail-foot-title">
项目次卡
</view>
</view>
</view>
</view>
<view class="detail-foot">
<view class="detail-foot-nav">
<span class="detail-foot-nav-text">项目详情</span>
<span class="detail-foot-nav-bor"></span>
</view>
<view class="detail-foot-mian detail-pad">
<image class="detail-foot-mian-img" v-for="(item,index) in contentImg" :key="index" :src="item" mode="widthFix"></image>
</view>
</view>
<view class="detail-btn btn" v-if="dataList.name=='index'" @click="openpay(mainData)">
立即购买
</view>
</view>
</template>
<script>
export default{
data(){
return{
detailData:[],
dataList:[],
mainData:[],
isVip:false,
contentImg:[],
// URLAPI
backgroundImageUrl: '',
couponId:'',
couponData:[],
checkbox:false,
showpay:false,
closeable: true,
openWay: 1,
paySel: 0,
tpayMoney: '',
mainId:'',
serviceCount:'',
labels:[]
}
},
computed: {
backgroundStyle() {
return {
backgroundImage: `url(${this.backgroundImageUrl})`,
backgroundSize: 'cover', //
};
}
},
onLoad(e) {
var that=this;
that.dataList=e;
that.isVip=this.$queue.getData('isVIP');
that.getData()
},
methods:{
detail(item){//
if(item.usedQuantity){
// item.id=this.mainData.id
uni.navigateTo({
url:'/pages/my/orderDetailsList?id='+this.mainData.id+'&mainId='+this.mainId+'&name='+'企业预约'
})
}else{
uni.showToast({
icon:'error',
title:'项目尚未使用,无订单信息!'
})
}
},
goumai(item){//
if(item.unUsedQuantity>'0'){
uni.navigateTo({
url:'/pages/my/myCiLiaoDetail?id='+item.massageTypeId+'&mainId='+this.mainId+'&name='+'企业预约'
})
}else{
uni.showToast({
icon:'error',
title:'项目已使用完成,无订单信息!'
})
}
},
goNav(e) {
uni.navigateTo({
url: e
})
},
openpay(item) {//
this.$queue.setData('mainData',item)
this.$queue.setData('detailData',this.detailData)
this.$queue.setData('xiangmu',item)
this.$queue.setData('youhui','');
uni.navigateTo({
url:'/my/order/payModifyCi?ordersId='+item.id
})
},
checkboxChange(e){
this.couponId=e.detail.value.join(",")
},
getData(){
var that=this;
if(that.dataList.name=='index'){
let data = {
type:'114',
mainId: that.dataList.id,
page: that.dataList.page,
limit: that.dataList.limit,
}
that.$Request.get('/app/massage/packageDetail/findAppPage', data).then(res => {
if (res.code == 0) {
if(res.mainData.level == 3){
res.mainData.levelName = "新手"
}
if(res.mainData.level == 4){
res.mainData.levelName = "专家"
}
if(res.mainData.level == 5){
res.mainData.levelName = "资深"
}
that.mainData=res.mainData;
that.contentImg=that.mainData.contentImg.split(",");
that.detailData=res.detailData.list;
that.backgroundImageUrl=that.mainData.packageImg;
that.serviceCount=that.detailData[0].serviceCount;
that.labels=that.mainData.labels.split(',');
}
})
}else{
let data = {
type:'114',
mainId: that.dataList.id,
page: that.dataList.page,
limit: that.dataList.limit,
}
that.$Request.get('/app/user/package/detail/findMyPackageDetailList', data).then(res => {
if (res.code == 0) {
if(res.data.mainData.level == 3){
res.data.mainData.levelName = "新手"
}
if(res.data.mainData.level == 4){
res.data.mainData.levelName = "专家"
}
if(res.data.mainData.level == 5){
res.data.mainData.levelName = "资深"
}
that.mainData=res.data.mainData;
that.contentImg=that.mainData.contentImg.split(",");
that.detailData=res.data.detailData;
that.mainId=that.mainData.id;
that.backgroundImageUrl=that.mainData.packageImg;
that.labels=that.mainData.labels.split(',');
}
})
}
},
}
}
</script>
<style scoped>
.lab-view{
width:100%;
display: flex;
flex-direction: row;
align-items: center;
flex-wrap: wrap;
}
.detail-foot-mian-txet{
width: 50%;
margin-top: 20px;
text-align: center;
}
/deep/uni-checkbox .uni-checkbox-input{
width: 26px;
height: 26px;
border-radius: 50%;
}
.header-fubz{
font-size: 26rpx;
color: #029c88;
font-weight: bold;
}
.youhui-img{
width: 111.81rpx;
height: 111.81rpx;
}
.youhui-view-right-btn{
width: 158rpx;
height: 64rpx;
background: linear-gradient(-90deg, #019C88, #2DC48E);
border-radius: 32rpx;
text-align: center;
line-height: 64rpx;
font-weight: 400;
font-size: 28rpx;
color: #FFFFFF;
text-shadow: 0rpx 2rpx 4rpx rgba(0,119,104,0.44);
margin-left: 10px;
}
.youhui-view-right-time{
font-weight: 400;
font-size: 22rpx;
color: #999999;
}
.youhui-view-right-title{
width: 105px;
font-weight: 400;
font-size: 32rpx;
color: #333333;
}
.youhui-view-right-top{
display: flex;
flex-direction: column;
align-items: center;
}
.youhui-view-right{
width: 502.08rpx;
height: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-around;
}
.youhui-view-left-bottom{
font-weight: 400;
font-size: 22rpx;
color: #FFFFFF;
}
.youhui-view-left-yuan{
display: flex;
flex-direction: row;
align-items: baseline;
color: #FFFFFF;
}
.youhui-view-left-num{
font-weight: bold;
font-size: 89rpx;
}
.youhui-view-left-text{
font-weight: bold;
font-size:24.31rpx;
}
.youhui-view-left{
width: 199rpx;
height: 242rpx;
display: flex;
flex-direction:column;
align-items: center;
justify-content: center;
}
.youhui-yiyong{
background-image: url('../../static/youhuijuan/coupons7.png');
}
.youhui-weiyong{
background-image: url('../../static/youhuijuan/coupons1.png');
}
.youhui-list{
width: 95%;
display: flex;
flex-direction: row;
height: 242rpx;
border-radius: 21rpx;
background-size: 100%;
margin: 20px auto;
justify-content: space-between;
}
.popup_pay {
width: 100%;
position: relative;
padding-bottom: 45rpx;
/* height: 400px; */
/* height: 160px; */
/* #ifndef MP-WEIXIN */
/* height: 130px; */
/* #endif */
}
.pay_btn {
width: 90%;
margin: 0 auto;
text-align: center;
background: linear-gradient(90deg, #019C88, #28BA92, #35C495);
height: 80rpx;
border-radius: 60rpx;
color: #ffffff;
line-height: 80rpx;
}
.dingdan-btn{
text-align: center;
width: 80px;
height: 30px;
line-height: 30px;
border-radius: 4px;
font-weight: bold;
font-size: 11px;
border-radius: 30rpx;
}
.dingdan-btn-l{
background: linear-gradient(90deg, #019C88, #0FA78B, #35C495);
color: #FFFFFF;
}
.dingdan-btn-h{
background: #666;
color: #FFFFFF;
}
.tese span:nth-child(1){
font-weight: bold;
font-size: 22rpx;
color: #333333;
}
.tese span:nth-child(2){
font-weight: 400;
font-size: 22rpx;
color: #8D9194;
}
.tese{
width: 100%;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2; /* 显示的行数,可以根据需要修改 */
overflow: hidden;
text-overflow: ellipsis;
}
.detail-foot-nav-bor{
width: 64px;
height: 11rpx;
border-radius: 6rpx;
position: absolute;
bottom: 0;
background: linear-gradient(90deg,rgba(28, 177, 143,0.3),rgba(0, 157, 136,0.7));
}
.detail-foot-nav-text{
font-weight: bold;
font-size: 32rpx;
color: #000000;
}
.detail-foot-nav{
width: 90%;
display: flex;
flex-direction: column;
position: relative;
}
.detail-foot-title{
width: 115px;
height: 32px;
background-image: url(../../static/servicePackage/horn.png);
background-repeat: no-repeat;
background-size: 100% 100%;
font-weight: 400;
font-size: 12px;
color: #FFFFFF;
text-align: right;
line-height: 32px;
padding-right: 15px;
position: absolute;
right: 0;
top: 0;
}
.detail-foot-list-top{
width: 95%;
display: flex;
flex-direction: row;
align-items: center;
margin-bottom: 25px;
margin-left: 10px;
}
.detail-foot-list{
border-radius: 21rpx;
position: relative;
display: flex;
flex-direction: column;
background-color: #fff;
padding: 10px;
margin-bottom: 10px;
}
.detail-foot{
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
}
.detail-foot-list-top span:nth-child(1){
font-weight: bold;
font-size: 31rpx;
color: #3F3F3F;
}
.detail-foot-list-top span:nth-child(2){
width: 76rpx;
height: 33rpx;
line-height: 33rpx;
text-align: center;
border-radius: 16rpx;
border: 1px solid #7D7D7D;
font-weight: 400;
font-size: 20rpx;
color: #777777;
margin: 0px 25px 0px 5px;
}
.detail-foot-list-top span:nth-child(3){
font-weight: 400;
font-size: 22rpx;
color: #777777;
}
.detail-foot-mian{
margin: 0 auto;
width: 94%;
display: flex;
flex-direction: column;
margin: 0 auto;
border-radius: 21rpx;
background: #fff;
}
.detail-foot-mian1{
width: 94%;
display: flex;
flex-direction: column;
margin: 0 auto;
border-radius: 21rpx;
background: #fff;
}
.detail-pad{
padding: 30rpx;
}
.header-bottom-title-liao{
padding: 3px 8px;
height: 16px;
line-height: 16px;
text-align: center;
background: linear-gradient(-90deg, #FF6F48, #FF9E69);
border-radius: 7px;
margin-left: 5px;
font-size: 10px;
border-top-left-radius: 20px;
border-bottom-right-radius: 20px;
color: #fff;
}
.detail-btn{
width:95%;
height: 90rpx;
line-height: 90rpx;
background: linear-gradient(90deg, #019C88, #28BA92, #35C495);
border-radius: 46rpx;
margin: 0 auto;
text-align: center;
font-weight: 400;
font-size: 36rpx;
color: #FFFFFF;
}
.detail-foot-mian-txet span:nth-child(1){
color: #777777;
font-size: 12px;
font-weight: bold;
margin-bottom: 5px;
}
.detail-foot-mian-txet span:nth-child(2){
color: #333;
font-size: 15px;
font-weight: bold;
margin-bottom:3px;
}
.detail-foot-mian-txetList{
color: #777777;
font-size: 14px;
font-weight: bold;
}
.detail-foot-mian-img{
width: 100%;
height:auto;
}
.detail-foot-mian-top-bottom{
margin-top: 10px;
}
.detail-foot-mian-top-title{
color: #333333;
}
.detail-foot-mian-top-text{
color: #777777;
width:80%;
margin-left: 5px;
}
.detail-foot-mian-top,.detail-foot-mian-top-bottom{
width: 100%;
display: flex;
flex-direction: row;
font-size: 26rpx;
}
.header-bottom-title-bottom span{
font-weight: bold;
font-size: 26rpx;
color: #20AB95;
}
.header-bottom-title-bottom image{
width: 34.03rpx;
height: 30.56rpx;
margin-right: 3px;
}
.header-bottom-title-bottom{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
margin: 5px 0px;
}
.shouc image{
width: 34.03rpx;
height: 32.64rpx;
}
.shouc{
display: flex;
align-items: center;
justify-content: center;
}
.detail-foot-nav-text{
font-weight: bold;
font-size: 32rpx;
color: #000000;
}
.detail-foot-nav{
width: 90%;
display: flex;
flex-direction: column;
position: relative;
margin-bottom: 16px;
margin-top: 16px;
}
.tese span:nth-child(1){
font-weight: bold;
font-size: 22rpx;
color: #333333;
}
.tese span:nth-child(2){
font-weight: 400;
font-size: 22rpx;
color: #8D9194;
}
.tese{
width: 100%;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2; /* 显示的行数,可以根据需要修改 */
overflow: hidden;
text-overflow: ellipsis;
}
.detail-foot-list-top span:nth-child(1){
font-weight: bold;
font-size: 31rpx;
color: #3F3F3F;
}
.detail-foot-list-top span:nth-child(2){
width: 76rpx;
height: 33rpx;
line-height: 33rpx;
text-align: center;
border-radius: 16rpx;
border: 1px solid #7D7D7D;
font-weight: 400;
font-size: 20rpx;
color: #777777;
margin: 0px 25px 0px 5px;
}
.detail-foot-list-top span:nth-child(3){
font-weight: 400;
font-size: 22rpx;
color: #777777;
}
.jianjie{
font-weight: 400;
font-size: 22rpx;
color: #8D9194;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2; /* 显示的行数,可以根据需要修改 */
overflow: hidden;
text-overflow: ellipsis;
}
.header-bottom-mian{
margin: 10px 0px;
}
.header-bottom-mian-title{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
margin-bottom: 6px;
}
.header-bottom-mian-title span{
font-weight: 400;
font-size: 26rpx;
color: #20AB95;
margin-left: 5px;
}
.header-bottom-mian-title image{
width: 30.56rpx;
height: 29.86rpx;
}
.header-bottom-foot-view-img1{
width: 30rpx;
height: 30rpx;
}
.header-bottom-foot-view-img2{
width: 23rpx;
height: 23rpx;
}
.header-bottom-foot-view-img3{
width: 26rpx;
height: 26rpx;
}
.header-bottom-foot-view image{
margin-right: 1px;
}
.header-bottom-foot-view{
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
padding: 1px 8px;
height: 22px;
line-height: 22px;
border-radius: 15px;
font-weight: 400;
font-size: 11px;
color: #029c88;
}
.header-bottom-foot-title{
width:100%;
height: 22px;
line-height: 22px;
text-align: left;
font-weight: 600;
font-size: 23rpx;
color: #08A28A;
margin-top: 5px;
}
.header-bottom-foot-cont{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
margin-top: 40rpx;
}
.header-bottom-foot{
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
}
.header-bottom-money-jia{
font-size: 28rpx;
color: #848484;
line-height: 37rpx;
text-decoration-line: line-through;
margin-left: 5px;
}
.header-bottom-money-zhen span{
color: #FF1200;
}
.header-bottom-money-zhen span:nth-child(1){
font-size: 28rpx;
}
.header-bottom-money-zhen span:nth-child(2){
font-size:38rpx;
font-weight: bold;
}
.header-bottom-money-zhen span:nth-child(3){
font-size: 28rpx;
}
.header-bottom-money-zhen{
display: flex;
flex-direction: row;
align-items: baseline;
}
.header-bottom-money-view{
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
margin-top:5px;
}
.header-bottom-money{
padding: 5px 0;
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
margin-top: 5rpx;
justify-content: space-between;
}
.header-bottom-money1{
padding: 5px 0;
width: 100%;
display: flex;
flex-direction: row;
align-items: baseline;
margin-top: 5rpx;
}
.header-bottom-title-num span{
font-size: 30rpx;
}
.header-bottom-title-num span:nth-child(1){
font-weight: bold;
color: #08A28A;
}
.header-bottom-title-num span:nth-child(2){
color: #848485;
margin-left: 5px;
}
.header-bottom-title-text{
font-weight: bold;
font-size: 35rpx;
color: #13141A;
}
.header-bottom-title{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.header-bottom-top{
width: 100%;
display: flex;
flex-direction: column;
}
.header-bottom{
width: 100%;
background-color: #fff;
padding: 15px;
display: flex;
flex-direction: column;
}
.header-top image{
width: 706.25rpx;
height: 105.07rpx;
}
.header-top{
width: 100%;
height: 745.83rpx;
background-image: url('../../static/servicePackage/display.png');
background-size: 100%;
background-repeat: no-repeat;
display: flex;
align-items: flex-end;
justify-content: center;
}
.header{
width: 100%;
display: flex;
flex-direction: column;
}
.content{
width: 100%;
height: auto;
background-color: #f7f7f7;
}
.btn {
background: linear-gradient(to right, rgb(1, 156, 136), rgb(49, 193, 148));
color: rgb(255, 255, 255);
margin: 8px 16px;
position: fixed;
bottom: 0px;
width: 90%;
border-radius: 27px;
height: 43px;
line-height: 43px;
font-size: 17px;
text-align: center;
}
.xiaoer {
background-color: #f1f8d7;
color: #58b314;
}
.item-view-biao {
margin: 8px 0px;
border-radius: 10rpx 3rpx 10rpx 3rpx;
width: 50px;
text-align: center;
}
</style>

507
pages/shop/qiyeListMy.vue Normal file
View File

@ -0,0 +1,507 @@
<!-- 自定义下拉刷新与上拉加载演示(vue) -->
<template>
<view class="content">
<z-paging ref="paging" v-model="dataList" @query="queryList">
<!-- 需要固定在顶部不滚动的view放在slot="top"的view中如果需要跟着滚动则不要设置slot="top" -->
<!-- 注意此处的z-tabs为独立的组件可替换为第三方的tabs若需要使用z-tabs请在插件市场搜索z-tabs并引入否则会报插件找不到的错误 -->
<template #top>
<view class="service-head-top">
<view class="service-head-top-left">
<image @click="backImg" src="../../static/fanhui.png" mode="widthFix"></image>
<span>企业预约</span>
</view>
<view>
<uni-search-bar @service="serviceTrue" @confirm="search" :cancelext="'取消'" v-model="searchValue"
@input="input" @clear="clear">
</uni-search-bar>
<view class="search-btn" @click="searchBtn">
<image style="width:30rpx; height:30rpx; margin-right: 10rpx;"
src="../../static/search.png"></image>
搜索
</view>
</view>
</view>
<!-- <view class="fenlei">
<z-tabs class="z-tabs-fenlei" :list="tabList" @change="tabChange" @changeClick="changeClick"/>
</view> -->
</template>
<!-- 自定义下拉刷新view(如果use-custom-refresher为true且不设置下面的slot="refresher"此时不用获取refresherStatus会自动使用z-paging自带的下拉刷新view) -->
<!-- 注意注意注意字节跳动小程序中自定义下拉刷新不支持slot-scope将导致custom-refresher无法显示 -->
<!-- 如果是字节跳动小程序请参照sticky-demo.vue中的写法此处使用slot-scope是为了减少data中无关变量声明降低依赖 -->
<!-- <template #refresher="{refresherStatus}" >-->
<!-- 此处的custom-refresh为demo中自定义的组件非z-paging的内置组件请在实际项目中自行创建这里插入什么view下拉刷新就显示什么view -->
<!-- <custom-refresher :status="refresherStatus" />-->
<!-- </template>-->
<!-- 自定义没有更多数据view -->
<template #loadingMoreNoMore>
<!-- 此处的custom-nomore为demo中自定义的组件非z-paging的内置组件请在实际项目中自行创建这里插入什么view没有更多数据就显示什么view -->
<custom-nomore />
</template>
<!-- 如果希望其他view跟着页面滚动可以放在z-paging标签内 -->
<view class="item" v-for="(item,index) in dataList" :key="index" @click="itemClick(item)">
<view class="item-img">
<image :src="item.packageImg" mode=""></image>
<span class="img-span">{{item.status=='1'?'未用完':item.status=='2'?'退款':'已用完'}}</span>
</view>
<view class="item-view">
<view class="view-cata">
<view class="item-view-title">{{item.title}}</view>
<span class="xiaoer item-view-biao">{{item.levelName}}</span>
</view>
<view class="item-view-bottom-qian">
<span></span>
<span>{{item.price}}</span>
<span>/{{item.serviceCount}}</span>
<span>{{item.oldPrice}}/{{item.serviceCount}}</span>
</view>
<view class="flex" style="margin-top: 10rpx;">
<view class="shop_label" v-if="item.tagsData!=''">
<span v-for="tag in item.tagsData" :key="tag">{{tag}}</span>
</view>
<view class="shop_label" v-else>
<span>助眠解压</span>
</view>
</view>
<view class="item-view-bottom">
<view class="item-view-xiangmu">
<span>已售</span><span>{{item.sales}}</span>
</view>
<view class="item-view-bottom-btn">
查看
</view>
</view>
</view>
</view>
</z-paging>
</view>
</template>
<script>
export default {
data() {
return {
myId: '',
// v-model
dataList: [],
tabList: [],
typeData: '105',
tabIndex: 0,
searchValue: '',
serviceTrue: true,
page: 1,
limit: 10,
titleNmae: '',
tagsData: []
}
},
onLoad() {
this.myId = uni.getStorageSync('userId')
// this.getData()
},
methods: {
input(res) { //
this.searchValue = res;
},
searchBtn() { //
if (this.searchValue != "") {
this.getData()
}
},
getData() {
this.$refs.paging.reload(true);
},
tabChange(index) {
this.tabIndex = index;
//tabreloadqueryList
//reloadtruereloadfalse
this.$refs.paging.reload(true);
},
queryList(pageNo, pageSize) {
// console.log(pageNo,pageSize,this.tabIndex)
//
// pageNopageSize
//
const params = {
userId: this.myId,
page: pageNo,
limit: pageSize,
type: '114',
title: this.searchValue,
}
this.$Request.get('/app/user/package/findMyPackageList', params).then(res => {
// z-paging
for (var i = 0; i < res.data.records.length; i++) {
res.data.records[i].tagsData = res.data.records[i].labels.split(',');
if(res.data.records[i].level == 3){
res.data.records[i].levelName = "新手"
}
if(res.data.records[i].level == 4){
res.data.records[i].levelName = "专家"
}
if(res.data.records[i].level == 5){
res.data.records[i].levelName = "资深"
}
}
this.$refs.paging.complete(res.data.records);
}).catch(res => {
// this.$refs.paging.complete(false);
// catchz-paging
// uni.$emit('z-paging-error-emit');
this.$refs.paging.complete(false);
})
},
backImg() { //
uni.reLaunch({
url: '/pages/my/index'
})
},
clear(res) {
this.getData()
},
itemClick(item) {
uni.navigateTo({
url: '/pages/shop/qiyeDatail?id=' + item.id+'&name=' + 'my'
})
}
}
}
</script>
<style scoped>
.shop_label {
display: flex;
flex-wrap: wrap;
margin-top: 4rpx;
}
.shop_label span {
background: linear-gradient(90deg, #ffefde, #fff7ef);
height: 34rpx;
line-height: 34rpx;
border-radius: 8rpx;
padding: 0 10rpx;
font-size: 22rpx;
margin-right: 8rpx;
margin-bottom: 8rpx;
color: #f68607;
}
.item-view-bottom-btn {
text-align: center;
width: 131rpx;
height: 55rpx;
line-height: 55rpx;
background: linear-gradient(90deg, #019C88, #0FA78B, #35C495);
border-radius: 10rpx;
font-weight: bold;
font-size: 28rpx;
color: #FFFFFF;
}
.item-view-bottom-qian span:nth-child(5) {
font-size: 28rpx;
color: #848484;
text-decoration-line: line-through;
}
.item-view-bottom-qian span:nth-child(4) {
font-size: 26rpx;
color: #848484;
text-decoration-line: line-through;
margin-left: 5px;
}
.item-view-bottom-qian span:nth-child(3) {
font-size: 28rpx;
color: #FF6000;
}
.item-view-bottom-qian span:nth-child(2) {
font-weight: bold;
font-size: 36.81rpx;
color: #FF6000;
}
.item-view-bottom-qian span:nth-child(1) {
font-weight: 400;
font-size: 26rpx;
color: #FF6000;
}
.item-view-bottom-qian {
margin-top: 2px;
}
.item-view-bottom {
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.item-view-jianjie {
font-weight: 400;
font-size: 24rpx;
color: #999;
margin: 5px 0px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
/* 显示的行数,可以根据需要修改 */
overflow: hidden;
text-overflow: ellipsis;
}
.item-view-biao {
padding: 1px 5px;
border-radius: 15rpx 3rpx 15rpx 3rpx;
width: 50px;
text-align: center;
}
.tuina {
background-color: #d1f2df;
color: #17984d;
}
.xiaoer {
background-color: #f1f8d7;
color: #58b314;
}
.taishi {
background-color: #e5d5c6;
color: #805d39;
}
.kangfu {
background-color: #fcf3da;
color: #ff8600;
}
.item-view-xiangmu span:nth-child(2) {
font-weight: normal;
color: #333333;
font-size: 30rpx;
}
.item-view-xiangmu span:nth-child(1) {
font-weight: normal;
color: #666666;
margin-right: 5rpx;
font-size: 30rpx;
}
.item-view-xiangmu {
width: 100%;
display: flex;
flex-direction: row;
font-weight: 400;
font-size: 25rpx;
align-items: flex-end;
}
.item-view-title {
font-weight: bold;
font-size: 32rpx;
color: #333333;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.item-view {
width: 60%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
justify-content: space-between;
padding: 5rpx 0;
}
.item-img {
width: 240rpx;
height: 200rpx;
border-radius: 14rpx;
position: relative;
}
.item-img img {
border-radius: 14rpx;
}
.img-span {
padding: 2px 5px;
font-weight: 400;
font-size: 8px;
color: #FFFFFF;
background: linear-gradient(-90deg, #FF6F48, #FF9E69);
border-radius: 7px 0px 7px 0px;
position: absolute;
bottom: 0px;
right: 0;
margin-bottom: 5px;
margin-right: 5px;
}
.item-img image {
width: 100%;
height: 100%;
border-radius: 14rpx;
}
.item {
width: 100%;
margin: 0 auto;
display: flex;
flex-direction: row;
justify-content: space-between;
/*height: 140px;*/
background: #FFFFFF;
border-radius: 21rpx;
margin-top: 10px;
align-items: center;
padding: 20rpx;
}
.item-detail {
padding: 5rpx 15rpx;
border-radius: 10rpx;
font-size: 28rpx;
color: white;
background-color: #007AFF;
}
.item-line {
position: absolute;
bottom: 0rpx;
left: 0rpx;
height: 1px;
width: 100%;
background-color: #eeeeee;
}
/deep/.zp-paging-container {
background-color: #f7f7f7;
width: 100%;
}
/deep/.zp-paging-container-content {
width: 95%;
margin: 0 auto;
}
.fenlei {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.index-fenl-title {
width: 81rpx;
text-align: center;
position: relative;
display: flex;
flex-direction: column;
align-items: center;
font-weight: bold;
font-size: 34rpx;
color: #019C88;
}
.index-fenl-title-bottom {
position: absolute;
bottom: 0;
margin-bottom: 0px;
width: 81rpx;
height: 14rpx;
border-radius: 7rpx;
background: linear-gradient(-48deg, rgba(1, 156, 136, 0.35), rgba(45, 196, 142, 0.35));
}
/deep/.uni-searchbar__cancel {
display: none;
}
/deep/.uni-searchbar__box-icon-search,
.search-btn {
width: 110rpx;
height: 50rpx;
}
/deep/.uni-searchbar__box {
height: 34px;
border-radius: 30px !important;
background-color: #fff !important;
border: 1px solid #09a28a;
display: flex;
flex-direction: row;
flex-flow: row-reverse;
position: relative;
}
/deep/.uni-searchbar {
width: 250px;
border-radius: 31rpx;
padding-right: 24rpx;
}
.search-btn {
text-align: center;
color: #019c88;
font-weight: bold;
position: absolute;
right: 40rpx;
top: 20rpx;
font-size: 30rpx;
display: flex;
align-items: center;
}
.service-head-top-left image {
width: 20px;
height: 20rpx;
margin-right: 5px;
margin-left: 10rpx;
}
.service-head-top-left span {
height: 100rpx;
background: url('../../static/images/headline.png') 0rpx 50rpx;
background-repeat: no-repeat;
font-weight: bold;
font-size: 34rpx;
color: #171717;
display: flex;
align-items: center;
}
.service-head-top-left {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.service-head-top {
height: 90rpx;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.view-cata {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
</style>

View File

@ -2,7 +2,8 @@
<view class="content">
<view class="header">
<view class="header-top" :style="backgroundStyle" @click="goNav('/my/vip/index')">
<image src="../../static/activate2.png" mode="widthFix" v-if="isVip=='1'"></image>
<image src="../../static/servicePackage/member_ba.png" mode="widthFix" v-else></image>
</view>
<view class="header-bottom">
<view class="header-bottom-top">
@ -67,7 +68,7 @@
detailData:[],
dataList:[],
mainData:[],
isVIP:false,
isVip:false,
contentImg:[],
// URLAPI
backgroundImageUrl: '',
@ -97,7 +98,7 @@
onLoad(e) {
var that=this;
that.dataList=e;
that.isVIP=this.$queue.getData('isVIP');
that.isVip=this.$queue.getData('isVIP');
that.getData();
},