main
15004070936 3 weeks ago
parent 1d05c2d08a
commit 00eafbd444

@ -29,7 +29,7 @@
onLaunch() {
//
//checkupdate();
// start------------------------------
//#ifdef APP-PLUS
//
@ -89,7 +89,7 @@
// url: `/pages/chatbox/chat`
// });
// }
uni.reLaunch({
url: `/pages/chatbox/chat`
});
@ -125,7 +125,7 @@
let extras = result.extras
console.log("自定义消息", result)
})
//#endif
// end--------------
@ -230,10 +230,10 @@
this.reconnecting = true;
// token
uni.$http.get('/api/getInfo').then((res) => {
uni.showToast({
title: '连接已断开,尝试重新连接...',
icon: 'none'
})
// uni.showToast({
// title: '...',
// icon: 'none'
// })
//
let token = uni.getStorageSync("token");
wsApi.reconnect(this.$wsUrl, token);
@ -416,10 +416,10 @@
this.$store.dispatch('friendStore/loadFriend'),
this.$store.dispatch('groupStore/loadGroup')
]).then(() => {
uni.showToast({
title: "已重新连接",
icon: 'none'
});
// uni.showToast({
// title: "",
// icon: 'none'
// });
// 线
const chatState = this.$store.state.chatStore;
this.pullPrivateOfflineMessage(chatState.privateMsgMaxId);
@ -431,6 +431,10 @@
},
loadFriendInfo(id, callback) {
let friend = this.$store.getters['friendStore/findFriend'](id)
if (!friend) {
this.$store.dispatch('friendStore/loadFriend')
friend = this.$store.getters['friendStore/findFriend'](id)
}
if (!friend) {
console.log("未知用户:", id)
friend = {

@ -67,7 +67,7 @@
<view class="voice-bg" :class="{displaynone:!voicebg}">
<view class="voice-bg-len">
<view class="voice-bg-time" :style="{width:vlength/0.6+'%'}">
{{vlength}}
{{vlength<=50?60-vlength:60-vlength+'秒后自动发送'}}
</view>
<view class="voice-del">上滑取消录音</view>
</view>
@ -340,8 +340,7 @@ export default {
this.vlength = i;
i++;
//
if (i > 60) {
clearInterval(this.timer);
if (i >= 60) {
this.touchend();
}
}, 1000)

@ -404,7 +404,7 @@
"path": "pages/book/bookshop",
"style" :
{
"navigationBarTitleText": "预约学员",
"navigationBarTitleText": "全店预约学员",
"enablePullDownRefresh": false
}
},

@ -1,25 +1,25 @@
<template>
<view class="page">
<view class="oinfo">
<view class="yycon scell" v-if="item">
<view class="oitem">
<view class="otop">
<view class="hleft">
{{item.courseName}}
</view>
<view class="hright">
{{item.startTime+'-'+item.endTime}}
{{formatTime(item.startTime)+' - '+formatTime(item.endTime)}}
</view>
</view>
<view class="oscon">
<view class="osimg imgload">
<image class="osimg" v-if="item.pic" :src="getimgRemoteFile(item.pic)" mode="aspectFill"></image>
</view>
<view class="osname">
<view class="osname" >
<view class="osimg imgload" >
<image v-if="item.pic" :src="getimgRemoteFile(item.pic)" mode="aspectFill"></image>
</view>
<view class="oscell">
<!-- <view v-if="item.claName=='团课'" class="txtbg">{{item.claName}}</view>
<view v-else class="txtbg1">{{item.claName?item.claName:'--'}}</view> -->
@ -60,10 +60,10 @@
</view>
<view class="rcpm">
<button type="primary" class="orderbtn" @click="gotoorder"></button>
</view>
</view>
</view>
</view>
<!-- 信息 -->
<view class="yycon tcon">
<mp-html v-if="remark" :content="remark" :markdown="true" :lazy-load="true"/>
@ -92,12 +92,12 @@
</view>
</view> -->
</view>
</view>
<!-- 是否登录 -->
<openlogin ref="loginId" @getPhoneNumber="getPhoneNumber"></openlogin>
<openlogin ref="loginId" @getPhoneNumber="getPhoneNumber"></openlogin>
</view>
</template>
@ -134,7 +134,7 @@
"lessCnt": "3",
},
remark:null
};
},
onLoad(options) {
@ -157,6 +157,10 @@
}
},
methods: {
formatTime(timeStr) {
// timeStr "HH:MM:SS"
return timeStr.slice(0, 5); // 5 "HH:MM"
},
getimgRemoteFile(img){
if(img){
img=img.split(',')[0];
@ -240,7 +244,7 @@
// icon: 'success',
// duration: 2000
// });
//
myCache('courserefresh',1);
uni.showModal({
@ -263,8 +267,8 @@
}
}
});
}
else{
uni.showModal({
@ -279,7 +283,7 @@
});
}
},
}
}
</script>
@ -321,11 +325,17 @@
flex-direction: row;
justify-content: center;
align-items: center;
.osimg{
width: 120rpx;
height: 120rpx;
border-radius: 10rpx;
}
.osimg{
margin-left: 24%;
width: 300rpx;
height: 300rpx;
margin-right: 10rpx;
>image {
width: 300rpx;
height: 300rpx;
border-radius: 10rpx;
}
}
.osrcon{
display: flex;
flex-direction: column;
@ -341,6 +351,7 @@
padding-bottom: 15rpx;
}
.oscell{
display: flex;
flex-direction: row;
align-items: center;
@ -353,7 +364,7 @@
}
}
}
.oinfo{
padding:20rpx;
position: relative;
@ -366,7 +377,7 @@
padding: 20rpx 20rpx;
}
}
.tcon{
display: flex;
flex-direction: column;
@ -393,14 +404,14 @@
}
}
}
.red{
color:#ff3d0e;
}
.green{
color:#00cd00;
}
::v-deep.uni-radio-input-checked{
background-color: #00A99A !important;
border-color: #00A99A !important;
@ -410,7 +421,7 @@
::v-deep.uni-radio-input-checked::before{
display: none!important;
}
.scell{
display: flex;
flex-wrap: wrap;
@ -472,11 +483,17 @@
flex-direction: row;
justify-content: center;
align-items: center;
.osimg{
width: 160rpx;
height: 260rpx;
border-radius: 10rpx;
}
.osimg{
margin-left: 24%;
width: 300rpx;
height: 300rpx;
margin-right: 10rpx;
>image {
width: 300rpx;
height: 300rpx;
border-radius: 10rpx;
}
}
.osname{
display: flex;
flex: 1;
@ -513,7 +530,7 @@
font-size: 26rpx;
color: #333;
margin-right: 10rpx;
}
}
.txtbg3{
padding: 2rpx 15rpx;
border-radius: 30rpx;
@ -597,6 +614,6 @@
}
}
}
</style>

@ -1,8 +1,8 @@
<template>
<view class="page">
<view class="oinfo" v-if="info">
<!-- 信息 -->
<view class="yycon">
<view class="oscon">
@ -39,7 +39,7 @@
</view>
<view class="oscell">
上课时间
<text class="txt">{{ (info.claDate?info.claDate:'')+' '+ (info.startTime?info.startTime:'') + (info.endTime?'-'+info.endTime:'') }}</text>
<text class="txt">{{ (info.claDate?info.claDate:'')+' '+ (info.startTime?formatTime(info.startTime):'') + (info.endTime?'-'+formatTime(info.endTime):'') }}</text>
</view>
<view class="oscell" v-if="info.claTimeStatus">
课程状态
@ -55,21 +55,21 @@
<image class="imgqr" :src="'data:image/png;base64,'+info.qrCode" mode="aspectFill"></image>
</view>
<view class="ordno">
<view class="txt"> 预约号 {{ info.code }}</view>
<view class="txt"> 预约号 {{ info.code }}</view>
<view class="copy" @click="copydo(info.code)">.</view> </view>
</view>
</view>
</view>
</view>
<!-- 进度信息 -->
<view class="yycon">
<uni-steps v-if="ifshow" :options="steps" direction="column" :active="cur"></uni-steps>
</view>
</view>
<!-- 二维码 -->
<uni-popup ref="pfDialog" :mask-click="false">
<view class="pcon">
@ -82,10 +82,10 @@
</view>
</view>
</uni-popup>
<!-- 是否登录 -->
<openlogin ref="loginId" @getPhoneNumber="getPhoneNumber"></openlogin>
<openlogin ref="loginId" @getPhoneNumber="getPhoneNumber"></openlogin>
<view v-if="ifscan" class="bottom"></view>
<view v-if="ifscan" class="submitcon">
<button type="primary" class="bbtn" @tap="goSign()"></button>
@ -107,7 +107,7 @@
userid:"",
id:"",
qr:'',
info: {
info: {
"claName": "",
"storeName": "",
"pic": null,
@ -181,6 +181,10 @@
}
},
methods: {
formatTime(timeStr) {
// timeStr "HH:MM:SS"
return timeStr.slice(0, 5); // 5 "HH:MM"
},
copydo(text){
if (!text) {
uni.showToast({
@ -454,7 +458,7 @@
border-bottom: 1rpx dotted #74defb;
.txt{
display: flex; flex: 1;
}
}
}
.oscellqr{
display: flex;
@ -495,7 +499,7 @@
}
}
}
.ztip{
color:#1296db;
font-size: 26rpx;
@ -554,12 +558,12 @@
line-height: 40rpx;
}
}
.oinfo{
padding:20rpx;
position: relative;
margin-bottom: 20rpx;
.ozc{
display: flex;
flex-direction: column;
@ -696,7 +700,7 @@
}
}
}
::v-deep.uni-radio-input-checked{
background-color: #00a89b !important;
border-color: #00a89b !important;
@ -706,9 +710,9 @@
::v-deep.uni-radio-input-checked::before{
display: none!important;
}
.pcon{
width: 690rpx;
padding-top:30rpx;
@ -735,10 +739,10 @@
display: flex;
align-items: center;
justify-content: center;
margin: 30rpx auto;
margin: 30rpx auto;
border-radius: 16rpx 16rpx 16rpx 16rpx;
opacity: 1;
border: 2rpx solid #F7F8FA;
border: 2rpx solid #F7F8FA;
padding: 30rpx;
.qrimg{
width: 400rpx;
@ -759,12 +763,12 @@
color: #FCFCFD;
}
}
.bottom{
width: 100%;
margin-bottom: 148rpx;
}
.submitcon{
position: fixed;
bottom: 0;
@ -794,6 +798,6 @@
border:none;
}
}
</style>

@ -1,8 +1,8 @@
<template>
<view class="page">
<view class="oinfo" v-if="info">
<!-- 信息 -->
<view class="yycon odrcell" v-if="info">
<view class="oscon">
@ -29,10 +29,10 @@
</view>
</view>
</view>
<!-- 评价信息 -->
<view class="pjcon">
<view class="fcon">
<!-- <button @click="handleUploadClick"></button> -->
<view class="fcell" @click="handleUploadClick">
@ -44,38 +44,38 @@
<view class="srcon">
<uni-easyinput type="textarea" v-model="value" placeholder="对于本次课程是否满意?请输入评价内容!"></uni-easyinput>
</view>
<view class="fcon">
<view class="pfcon">
<view class="pftxt">课程评价</view>
<uni-rate v-model="rateValue1" @change="onChange1" />
</view>
<view class="pfcon">
<view class="pftxt">教练评价</view>
<uni-rate v-model="rateValue2" @change="onChange2" />
</view>
<view class="pfcon">
<view class="pftxt">教室评价</view>
<uni-rate v-model="rateValue3" @change="onChange3" />
</view>
</view>
<!-- -->
<!-- <view class="fcon">-->
<!-- <view class="pfcon">-->
<!-- <view class="pftxt">课程评价</view>-->
<!-- <uni-rate v-model="rateValue1" @change="onChange1" />-->
<!-- </view>-->
<!-- <view class="pfcon">-->
<!-- <view class="pftxt">教练评价</view>-->
<!-- <uni-rate v-model="rateValue2" @change="onChange2" />-->
<!-- </view>-->
<!-- <view class="pfcon">-->
<!-- <view class="pftxt">教室评价</view>-->
<!-- <uni-rate v-model="rateValue3" @change="onChange3" />-->
<!-- </view>-->
<!-- </view>-->
<view class="submitcon">
<button type="primary" class="bbtn" @click="submit('valiForm')"></button>
</view>
</view>
</view>
<!-- 提示信息弹窗 -->
<uni-popup ref="message" type="message">
<uni-popup-message :type="msgType" :message="messageText" :duration="2000"></uni-popup-message>
</uni-popup>
<!-- 是否登录 -->
<openlogin ref="loginId" @getPhoneNumber="getPhoneNumber"></openlogin>
<openlogin ref="loginId" @getPhoneNumber="getPhoneNumber"></openlogin>
</view>
</template>
@ -222,7 +222,7 @@
});
const {data: res} = await uni.$http.post('/alipay/getOrderById', {id:this.id});
if(res){
//
this.info=res;
this.$forceUpdate();
@ -235,8 +235,8 @@
},
async savedo() {
var that = this;
try {
try {
const {
data: res
} = await uni.$http.post("/member/update", that.valiFormData);
@ -261,9 +261,9 @@
this.messageText = res.msg ? res.msg : '提交失败!',
this.$refs.message.open();
}
}
}
}
</script>
@ -307,7 +307,7 @@
justify-content: center;
}
.oscon{
margin:0;
margin:0;
display: flex;
flex-direction: row;
justify-content: center;
@ -397,7 +397,7 @@
padding:20rpx;
position: relative;
margin-bottom: 160rpx;
.ozc{
display: flex;
flex-direction: column;
@ -534,14 +534,14 @@
}
}
}
.red{
color:#ff3d0e;
}
.green{
color:#00cd00;
}
::v-deep.uni-radio-input-checked{
background-color: #00A99A !important;
border-color: #00A99A !important;
@ -551,7 +551,7 @@
::v-deep.uni-radio-input-checked::before{
display: none!important;
}
.bbtn {
margin: 20rpx 10rpx 54rpx;
font-size: 32rpx;
@ -569,5 +569,5 @@
border:none;
}
}
</style>

@ -1,10 +1,10 @@
<template>
<view class="page">
<scroll-view scroll-y style="height: 100%;width: 100%;">
<view class="scell" v-if="list.length>0">
<view v-for="(item, index) in list" :key="index" class="oitem">
<view class="otop">
<view class="hleft">
<view>
@ -21,10 +21,11 @@
<view v-else-if="item.bookStatus==2" class="htip">待上课</view>
<view v-else-if="item.bookStatus==4" class="wtip">已完成</view>
<view v-else-if="item.bookStatus==3" class="ctip">已取消</view>
<view v-else-if="item.bookStatus==5" class="ctip">预约失败</view>
</view>
</view>
<view class="oscon">
<view class="oscon">
<view class="osname">
<view>
<text class="txt">课程{{item.courseName}}</text>
@ -40,7 +41,7 @@
<text class="txt" style="margin-left: 30rpx;">可容纳人数{{item.atClassCnt}} </text>
</view>
</view>
</view>
</view>
<view class="obtn">
<view class="omoney"></view>
<!-- 1待上课2预约中3待评价 4已完成 5已取消-->
@ -50,15 +51,15 @@
</view>
</view>
</view>
<view v-if="list.length==0 && loadStatus=='noMore'" class="nodata"></view>
<uni-load-more v-if="list.length>0" iconType="circle" :status="loadStatus" />
</scroll-view>
<!-- 是否登录 -->
<openlogin ref="loginId" @getPhoneNumber="getPhoneNumber"></openlogin>
</view>
</template>
@ -199,7 +200,7 @@
async stopdodo(item){
var param={
"bookId": item.bookId,
"bookStatus": 2
"bookStatus": 5
};
uni.showLoading({
title: '禁止预约中...'
@ -250,8 +251,8 @@
//
async checkdodo(item){
var param={
"bookId": item.bookId,
"bookStatus": 1
"bookId": item.bookId,
"bookStatus": 2
};
uni.showLoading({
title: '确认预约中...'
@ -281,7 +282,7 @@
});
}
},
}
}
</script>
@ -326,7 +327,7 @@
height: 100%;
}
.scrolllist{
height: 110rpx;
height: 110rpx;
background: #FFF;
white-space: nowrap;
width: 100%;
@ -367,7 +368,7 @@
background-image: url('/static/image/no.png');
background-size: 52% auto;
background-repeat: no-repeat;
background-position: center;
background-position: center;
font-size: 28rpx;
text-align: center;
color: #00a89b;
@ -482,7 +483,7 @@
flex:1;
width: 100%;
color:#333;
align-items: center;
align-items: center;
}
.cancelbtn{
background-color: #FFFFFF !important;
@ -568,7 +569,7 @@
font-size: 26rpx;
color:#333;
}
}
}
}
}
.sitem {
@ -625,6 +626,6 @@
}
}
}
</style>

@ -1,10 +1,10 @@
<template>
<view class="page">
<scroll-view scroll-y style="height: 100%;width: 100%;">
<view class="scell" v-if="list.length>0">
<view v-for="(item, index) in list" :key="index" class="oitem">
<view class="otop">
<view class="hleft">
<view>
@ -21,26 +21,27 @@
<view v-else-if="item.bookStatus==2" class="htip">待上课</view>
<view v-else-if="item.bookStatus==4" class="wtip">已完成</view>
<view v-else-if="item.bookStatus==3" class="ctip">已取消</view>
<view v-else-if="item.bookStatus==5" class="ctip">预约失败</view>
</view>
</view>
<view class="oscon">
<view class="oscon">
<view class="osname">
<view>
<text class="txt">课程{{item.courseName}}</text>
<text class="txt" style="margin-left: 30rpx;">班级{{item.claName}} </text>
<!-- <text class="txt" style="margin-left: 30rpx;">班级{{item.claName}} </text>-->
</view>
<view>
<text class="txt">教练{{item.teacherName }}</text>
<text class="txt" style="margin-left: 30rpx;">教室{{item.roomName}}</text>
</view>
<text class="txt">上课时间{{ item.claDate+' '+item.startTime+(item.endTime?'-'+item.endTime:'')}}</text>
<text class="txt">上课时间{{ item.claDate+' '+formatTime(item.startTime)+(item.endTime?'-'+formatTime(item.endTime):'')}}</text>
<view>
<text class="txt">预约人数{{item.bookAttendCnt}}</text>
<text class="txt" style="margin-left: 30rpx;">可容纳人数{{item.atClassCnt}} </text>
</view>
</view>
</view>
</view>
<view class="obtn">
<view class="omoney"></view>
<!-- 1待上课2预约中3待评价 4已完成 5已取消-->
@ -50,15 +51,15 @@
</view>
</view>
</view>
<view v-if="list.length==0 && loadStatus=='noMore'" class="nodata"></view>
<uni-load-more v-if="list.length>0" iconType="circle" :status="loadStatus" />
</scroll-view>
<!-- 是否登录 -->
<openlogin ref="loginId" @getPhoneNumber="getPhoneNumber"></openlogin>
</view>
</template>
@ -106,6 +107,10 @@
},100);
},
methods: {
formatTime(timeStr) {
// timeStr "HH:MM:SS"
return timeStr.slice(0, 5); // 5 "HH:MM"
},
getimgRemoteFile(img){
if(img){
img=img.split(',')[0];
@ -199,7 +204,7 @@
async stopdodo(item){
var param={
"bookId": item.bookId,
"bookStatus": 2
"bookStatus": 5
};
uni.showLoading({
title: '禁止预约中...'
@ -250,7 +255,7 @@
//
async checkdodo(item){
var param={
"bookId": item.bookId,
"bookId": item.bookId,
"bookStatus": 1
};
uni.showLoading({
@ -281,7 +286,7 @@
});
}
},
}
}
</script>
@ -326,7 +331,7 @@
height: 100%;
}
.scrolllist{
height: 110rpx;
height: 110rpx;
background: #FFF;
white-space: nowrap;
width: 100%;
@ -367,7 +372,7 @@
background-image: url('/static/image/no.png');
background-size: 52% auto;
background-repeat: no-repeat;
background-position: center;
background-position: center;
font-size: 28rpx;
text-align: center;
color: #00a89b;
@ -482,7 +487,7 @@
flex:1;
width: 100%;
color:#333;
align-items: center;
align-items: center;
}
.cancelbtn{
background-color: #FFFFFF !important;
@ -568,7 +573,7 @@
font-size: 26rpx;
color:#333;
}
}
}
}
}
.sitem {
@ -625,6 +630,6 @@
}
}
}
</style>

@ -1,10 +1,10 @@
<template>
<view class="page">
<view class="fixhead" :style="{ marginTop: geStatusBarHeight() + 'px'}">
<selShop :showName="false" :showQR="true" :shopid="shopid" :shop="shop" @changeArea="changeArea"></selShop>
<selShop :showName="true" :showQR="false" :shopid="shopid" :shop="shop" @changeArea="changeArea"></selShop>
</view>
<scroll-view class="scrolllist" scroll-x="true" scroll-with-animation :scroll-left="scrollLeft">
<view class="tabicl" v-for="(item, index) in list" :key="index" :class="index==tabCurrentIndex?'cur':''" @tap="tabSelect" :data-id="index">
<view class="ptext">{{item.name}}</view>
@ -99,7 +99,6 @@
<button type="primary" class="btn" @click="submit('valiForm')"></button>
</view>
</scroll-view>
<!-- 体质测评 -->
<scroll-view v-else-if="list[index].id==10" scroll-y style="height: 100%;width: 100%;">
<view class="tzcontent">
@ -109,7 +108,7 @@
</view>
<uni-forms ref="valiForm1" label-position="top">
<view class="example">
<uni-forms-item v-for="(item, i) in list[index].slist" :key="i" :name="item.name+'('+item.description+')'"
<uni-forms-item v-for="(item, i) in list[index].slist" :key="i" :name="item.name+'('+item.description+')'"
:label="numberToChinese(i+1)+'、'+item.name+'('+item.description+') 得分:'+(item.score?item.score:0)" labelWidth="700rpx" >
<view v-if="item.questions" class="uni-list" v-for="(cell, j) in item.questions" :key="'c'+j">
<view class="optxt">{{(j+1)+'、'+cell.content}}</view>
@ -121,7 +120,7 @@
<button type="primary" class="btn" @click="tzsubmit('valiForm1')"></button>
</view>
</scroll-view>
<scroll-view v-else scroll-y style="height: 100%;width: 100%;">
<view class="card" v-for="(item, i) in tabItem.slist" :key="i" @tap="gotoDetail(item,tabItem.name,index)">
<view class="limg imgload">
@ -144,13 +143,13 @@
</view>
<uni-load-more iconType="circle" :status="tabItem.loadStatus" />
</scroll-view>
</swiper-item>
</swiper>
<!-- 是否登录 -->
<openlogin ref="loginId" @getPhoneNumber="getPhoneNumber"></openlogin>
</view>
</template>
@ -177,7 +176,7 @@
sexs: [{
text: '男性',
value: "male"
},
},
{
text: '女性',
value: "female"
@ -232,7 +231,7 @@
// name:"",
// id:7,
// loadStatus:'more',//'more', // 'noMore',
// slist:[
// slist:[
// ]
// },
// {
@ -293,13 +292,13 @@
name: '0'
}
],
description:"(亲爱的伽人欢迎来到中医九种体质自测普查此版本适用人群全年龄段评分标准请根据近1年真实情况勾选。打分规则完全符合 = 2分 | 偶尔有 = 1分 | 完全不符合 = 0分请选择)",
title:"中医九种体质自测普查",
surveyId:null,
scores:0,
sessionId:null,
};
},
onLoad(option) {
@ -307,15 +306,15 @@
this.id=option.id;
}
//
this.getSort();
this.getSort();
},
onShow(){
this.openId = myCache('openId');
var user = myCache('user');
this.userid = user.userid? user.userid:'';
this.phone = user.userphone;
var cartnum=getcartNum();
if(cartnum>0){
//
@ -330,7 +329,7 @@
index: 4
})
}
var messageNum=getmessageNum();
console.log("messageNum",messageNum)
if(messageNum>0){
@ -346,7 +345,7 @@
index: 3
})
}
},
mounted() {
if(this.userid==""||this.userid=="0"){
@ -366,7 +365,7 @@
num = String(num).split("").reverse().join(""); // 便
let result = '';
let unitIndex = 0;
for (let i = 0; i < num.length; i++) {
let n = Number(num[i]);
if (n !== 0) {
@ -381,7 +380,7 @@
}
}
}
return result.replace(/零([亿万])/g, "$1").replace(/零+/g, "零"); //
},
getoption(options){
@ -414,7 +413,7 @@
score+=cell.score;
this.$forceUpdate();
}
});
});
}
this.list[this.tabCurrentIndex].slist[ind]["score"]=score;
this.$forceUpdate();
@ -435,9 +434,9 @@
optionId:cell.optionId
});
}
});
});
}
})
if(tj>0){
this.tzsavedo(answers)
@ -452,7 +451,7 @@
if (ress.confirm) {
}
}
});
});
}
},
async tzsavedo(answers){
@ -469,13 +468,13 @@
// 1. 8 6
//
// 2.// 8
// //
// 3. 6 7
// //
// 4.77
//
var ifone=0,iftwo=0,ifthree=0,iffour=0;
@ -522,7 +521,7 @@
else if(iffour>1){
tips="亲爱的伽人您好,您的体质为复合型体质典型,建议综合调理。请联系您的馆主或教练,领取训练机生活方案,快速调整哦。"
}
uni.showModal({
title: '提示',
content: tips,
@ -531,15 +530,15 @@
success: ress => {
if (ress.confirm) {}
}
});
});
}
else{
else{
uni.showModal({
title: '提示',
content: res.message? res.message:'体质测评提交失败!请重试!',
cancelText: '取消',
confirmText: '确定'
});
});
}
}
catch{
@ -548,9 +547,9 @@
content: '计算异常!请重试!',
cancelText: '取消',
confirmText: '确定'
});
});
}
},
async getSort() {
//
@ -636,7 +635,7 @@
async getList() {
if(this.list[this.tabCurrentIndex].loadStatus!=="noMore")
{
var para={
visitStore:this.shopid
}
@ -679,21 +678,21 @@
uni.showLoading({
title: '数据加载中...'
});
//
if(this.list[this.tabCurrentIndex].id==10){
//
const {data: res} = await uni.$http.get(url);
if(res.data){
var data=res.data;
this.list[this.tabCurrentIndex].loadStatus="noMore";
this.list[this.tabCurrentIndex].loadStatus="noMore";
this.list[this.tabCurrentIndex].slist=data.constitutions?data.constitutions:[];
this.description=data.description;
this.title=data.title;
this.surveyId=data.surveyId;
this.sessionId=data.sessionId;
this.$forceUpdate();
this.$forceUpdate();
if(this.userid){
//
const {data: rest} = await uni.$http.get("/api/questionnaire/result");
@ -708,10 +707,10 @@
success: ress => {
if (ress.confirm) {}
}
});
});
}
// var constitutionScores=rest.data.constitutionScores?rest.data.constitutionScores:[];
// var answers=rest.data.answers?rest.data.answers:[];
// answers.forEach(cell=>{
// this.list[this.tabCurrentIndex].slist.forEach((item,ii)=>{
@ -731,7 +730,7 @@
// }
// });
// });
}
}
}
@ -798,7 +797,7 @@
url: `/pages/product/list?id=2`
});
}
else if(this.list[e.currentTarget.dataset.id].id==8){
else if(this.list[e.currentTarget.dataset.id].id==8){
//
uni.reLaunch({
url: `/pages/product/list`
@ -808,7 +807,7 @@
this.tabCurrentIndex = e.currentTarget.dataset.id;
this.$forceUpdate();
}
},
animationfinish({ detail: { current } }) {
// console.log("animationfinish")
@ -835,7 +834,7 @@
url: `/pages/product/list?id=2`
});
}
else if(this.list[e.detail.current].id==8){
else if(this.list[e.detail.current].id==8){
//
uni.reLaunch({
url: `/pages/product/list`
@ -922,7 +921,7 @@
if (ress.confirm) {
}
}
});
});
}
else{
uni.showModal({
@ -930,16 +929,16 @@
content: '计算异常!请重试!',
cancelText: '取消',
confirmText: '确定'
});
});
}
}
else{
else{
uni.showModal({
title: '提示',
content: res.message? res.message:'计算异常!请重试!',
cancelText: '取消',
confirmText: '确定'
});
});
}
}
catch{
@ -948,9 +947,9 @@
content: '计算异常!请重试!',
cancelText: '取消',
confirmText: '确定'
});
});
}
},
//
geStatusBarHeight(){
@ -1002,7 +1001,7 @@
.swiper-item {
height: 100%;
}
.scrolltab{
height: 60rpx;
white-space: nowrap;
@ -1101,9 +1100,9 @@
}
}
}
.scrolllist{
height: 110rpx;
height: 110rpx;
background: #FFF;
white-space: nowrap;
width: 100%;
@ -1142,7 +1141,7 @@
background-image: url('/static/image/no.png');
background-size: 52% auto;
background-repeat: no-repeat;
background-position: center;
background-position: center;
font-size: 28rpx;
text-align: center;
color: #00a89b;
@ -1254,7 +1253,7 @@
}
}
}
::v-deep.uni-data-checklist .checklist-group .checklist-box .checklist-content .checklist-text{
line-height: 40rpx !important;
font-size: 28rpx !important;
@ -1326,7 +1325,7 @@
height: 40rpx;
line-height: 40rpx;
margin-left: 16rpx;
}
}
.example {
margin: 20rpx 8rpx 0;
padding: 20rpx;

@ -380,7 +380,7 @@ export default {
const that = this;
if (this.isConnected) return;
uni.connectSocket({
url: 'ws://192.168.13.9:8528/im',
url: 'wss://www.sanduolantoyoga.com/yoga-imserver',
header: { Authorization: uni.getStorageSync('token') },
success: (res) => {
console.log('socket连接成功', res);

@ -111,7 +111,7 @@ export default {
}, 500)
},
methods: {
...mapActions('chatStore', ['removeChat', 'moveTop']),
...mapActions('chatStore', ['removeChat', 'moveTop','loadFriend']),
//
setBadge(count) {

@ -52,24 +52,24 @@
{{product.remarks}}
</view>
</view>
<view class="pjcon">
<view class="pjitem">
<view class="pjyg">评价{{product.pjnum}}</view>
<view class="srpj" v-if="product.pjnum>0">
查看全部评价<uni-icons type="forward" color="#b3b3b3" size="20"></uni-icons>
</view>
</view>
<view class="pjitem" v-if="product.pjnum>0">
<view class="pjr">
<image class="img" :src="product.pjrimg"></image>
<text class="ptxt">{{product.pjname}}</text>
<text class="ptxt">{{product.pjdate}}</text>
</view>
</view>
<view class="pjitem">
{{product.pjcontent}}
</view>
</view>
<!-- <view class="pjcon">-->
<!-- <view class="pjitem">-->
<!-- <view class="pjyg">评价{{product.pjnum}}</view>-->
<!-- <view class="srpj" v-if="product.pjnum>0">-->
<!-- 查看全部评价<uni-icons type="forward" color="#b3b3b3" size="20"></uni-icons>-->
<!-- </view>-->
<!-- </view>-->
<!-- <view class="pjitem" v-if="product.pjnum>0">-->
<!-- <view class="pjr">-->
<!-- <image class="img" :src="product.pjrimg"></image>-->
<!-- <text class="ptxt">{{product.pjname}}</text>-->
<!-- <text class="ptxt">{{product.pjdate}}</text>-->
<!-- </view>-->
<!-- </view>-->
<!-- <view class="pjitem">-->
<!-- {{product.pjcontent}}-->
<!-- </view>-->
<!-- </view>-->
<view>
<button type="primary" class="cbtn" @tap="gotoCourse()"></button>
</view>

@ -1,15 +1,15 @@
<template>
<view class="page">
<view class="fixhead" :style="{ marginTop: geStatusBarHeight() + 'px'}">
<view class="lcon">
<view class="leftarr">
<uni-icons type="back" size="24" color="#fff" @tap="gotoBack"></uni-icons>
</view>
<selShop :showName="false" :showQR="true" :shopid="shopid" :shop="shop" @changeArea="changeArea"></selShop>
<selShop :showName="true" :showQR="false" :shopid="shopid" :shop="shop" @changeArea="changeArea"></selShop>
</view>
<view class="hcon">
<uni-search-bar @confirm="search" @input="input" :focus="false" @focus="focus" v-model="searchValue"
<uni-search-bar @confirm="search" @input="input" :focus="false" @focus="focus" v-model="searchValue"
placeholder="请输入商品关键字" bg-color="#FFFFFF" @cancel="cancel" @clear="clear" style="flex:1">
</uni-search-bar>
<view class="cartcon" @tap="gotoCart">
@ -18,7 +18,7 @@
</view>
</view>
</view>
<!-- 关联框示例 -->
<view v-if="!ifshow" class="tcon">
<view class="scell" v-for="(item, index) in searList" :key="index" @click="navToList(item)">
@ -26,11 +26,11 @@
<view class="stxt" v-html="highlightKeyword(item.title, searchValue)"></view>
</view>
</view>
<!-- 商品列表 -->
<view v-else class="f-list">
<view class="guess-section" v-if="goodsList.length>0">
<view
<view
v-for="(item, index) in goodsList" :key="index"
class="guess-item"
>
@ -53,23 +53,23 @@
</view>
<uni-load-more iconType="circle" :status="loadStatus" :content-text="contentText" />
</view>
<!-- 是否登录 -->
<openlogin ref="loginId" @getPhoneNumber="getPhoneNumber"></openlogin>
<!-- service 客服-->
<service ref="serviceId" @goservice="goservice"></service>
<!-- top 返回顶部-->
<top ref="topId"></top>
<!-- cart 购物车-->
<cart ref="cartId" x="0.94" y="0.08" @addShopCar="addShopCar" :pdata="product" :ptype="1"></cart>
<!-- 加入购物车动画 cartx carty 是购物车位置在屏幕位置的比例 例如左上角x0.1 y0.1 右下角 x0.9 y0.9-->
<shopCarAnimation ref="carAnmation" cartx="0.94" carty="0.08"></shopCarAnimation>
</view>
</template>
@ -180,7 +180,7 @@
},
]
},
};
},
onLoad() {
@ -266,9 +266,9 @@
unit:product.unit,
weight:product.weight, //
instructor:product.instructor, //
brandName:product.brandName, //
productCategoryName:product.productCategoryName, //
isCourse:product.isCourse, //
brandName:product.brandName, //
productCategoryName:product.productCategoryName, //
isCourse:product.isCourse, //
price:product.price, //
pic:product.pic?product.pic:'',//
img:product.pic?product.pic:'',//
@ -305,7 +305,7 @@
});
}
this.$forceUpdate();
if(this.product.ifspec=='1'){
//
this.selinit();
@ -346,7 +346,7 @@
console.log(e)
}
}
}
else{
uni.showModal({
@ -434,10 +434,10 @@
console.log(val);
},
highlightKeyword(text, keyword) {
if (!keyword) return text;
// 使<span>
const regex = new RegExp(keyword, 'gi');
return text.replace(regex, `<span style="color:#00a89b">${keyword}</span>`);
if (!keyword) return text;
// 使<span>
const regex = new RegExp(keyword, 'gi');
return text.replace(regex, `<span style="color:#00a89b">${keyword}</span>`);
},
input(res) {
console.log('input',res);

@ -24,16 +24,16 @@
</view>
<!-- 标签信息 -->
<view class="tips">
<view class="tip">
<image class="tip-img" src="/static/image/bz.png" mode="aspectFill"></image>
<text class="tip-txt">商家24H发货,第三方物流配送,免运费</text>
</view>
<view class="tip">
<image class="tip-img" src="/static/image/thh.png" mode="aspectFill"></image>
<text class="tip-txt">不支持7天无理由退换货</text>
</view>
</view>
<!-- <view class="tips">-->
<!-- <view class="tip">-->
<!-- <image class="tip-img" src="/static/image/bz.png" mode="aspectFill"></image>-->
<!-- <text class="tip-txt">商家24H发货,第三方物流配送,免运费</text>-->
<!-- </view>-->
<!-- <view class="tip">-->
<!-- <image class="tip-img" src="/static/image/thh.png" mode="aspectFill"></image>-->
<!-- <text class="tip-txt">不支持7天无理由退换货</text>-->
<!-- </view>-->
<!-- </view>-->
<!-- 商品信息 -->
<view class="s-list">
@ -67,24 +67,24 @@
<uni-icons type="forward" color="#b3b3b3" size="20"></uni-icons>
</view>
<view class="pjcon">
<view class="pjitem">
<view class="pjyg">评价{{product.pjnum}}</view>
<view class="srpj" v-if="product.pjnum>0">
查看全部评价<uni-icons type="forward" color="#b3b3b3" size="20"></uni-icons>
</view>
</view>
<view class="pjitem" v-if="product.pjnum>0">
<view class="pjr">
<image class="img" :src="product.pjrimg"></image>
<text class="ptxt">{{product.pjname}}</text>
<text class="ptxt">{{product.pjdate}}</text>
</view>
</view>
<view class="pjitem">
{{product.pjcontent}}
</view>
</view>
<!-- <view class="pjcon">-->
<!-- <view class="pjitem">-->
<!-- <view class="pjyg">评价{{product.pjnum}}</view>-->
<!-- <view class="srpj" v-if="product.pjnum>0">-->
<!-- 查看全部评价<uni-icons type="forward" color="#b3b3b3" size="20"></uni-icons>-->
<!-- </view>-->
<!-- </view>-->
<!-- <view class="pjitem" v-if="product.pjnum>0">-->
<!-- <view class="pjr">-->
<!-- <image class="img" :src="product.pjrimg"></image>-->
<!-- <text class="ptxt">{{product.pjname}}</text>-->
<!-- <text class="ptxt">{{product.pjdate}}</text>-->
<!-- </view>-->
<!-- </view>-->
<!-- <view class="pjitem">-->
<!-- {{product.pjcontent}}-->
<!-- </view>-->
<!-- </view>-->
<view class="ocen">
<view class="title">商品参数</view>

@ -1,8 +1,8 @@
<template>
<view class="page">
<view class="fixhead" :style="{ marginTop: geStatusBarHeight() + 'px'}">
<selShop :showName="false" :showQR="true" :shopid="shopid" :shop="shop" @changeArea="changeArea"></selShop>
<selShop :showName="true" :showQR="false" :shopid="shopid" :shop="shop" @changeArea="changeArea"></selShop>
<view @tap="gotoSearch" >
<uni-search-bar v-model="searchValue" placeholder="请输入关键字" bg-color="#FFFFFF" :readonly="true"></uni-search-bar>
</view>
@ -12,7 +12,7 @@
</view>
</scroll-view>
</view>
<!-- 关联框示例 -->
<view v-if="!ifshow" class="tcon">
<view class="scell" v-for="(item, index) in searList" :key="index" @click="navToList(item.id)">
@ -20,7 +20,7 @@
<view class="stxt" v-html="highlightKeyword(item.title, searchValue)"></view>
</view>
</view>
<!-- 商品列表 -->
<view v-else class="f-list">
<!-- 广告 -->
@ -53,7 +53,7 @@
<view v-for="(tabItem,ii) in list" :key="tabItem.id">
<view v-show="ii==tabCurrentIndex">
<view class="guess-section" v-if="tabItem.goodsList&&tabItem.goodsList.length>0">
<view
<view
v-for="(item, index) in tabItem.goodsList" :key="index"
class="guess-item"
>
@ -78,22 +78,22 @@
</view>
</view>
</view>
<!-- 是否登录 -->
<openlogin ref="loginId" @getPhoneNumber="getPhoneNumber"></openlogin>
<!-- service 客服-->
<service ref="serviceId" @goservice="goservice"></service>
<!-- top 返回顶部-->
<top ref="topId"></top>
<!-- cart 购物车-->
<cart ref="cartId" x="0.74" y="1.2" @addShopCar="addShopCar" :pdata="product" :ptype="1"></cart>
<!-- 加入购物车动画 cartx carty 是购物车位置在屏幕位置的比例 例如左上角x0.1 y0.1 右下角 x0.9 y0.9-->
<shopCarAnimation ref="carAnmation" cartx="0.74" carty="1.2"></shopCarAnimation>
</view>
</template>
@ -172,7 +172,7 @@
sels:"",
specs:[]
},
};
},
onLoad(option) {
@ -185,7 +185,7 @@
}
this.scrollLeft = (this.tabCurrentIndex - 1) * 90;
}
},
mounted() {
if(this.userid==""||this.userid=="0"){
@ -198,12 +198,12 @@
this.userid = user.userid? user.userid:'';
this.phone = user.userphone;
// this.shop = myCache('myshop')?myCache('myshop'):'';
//
this.getsortList();
// 广
this.getggList();
//
var cartnum=getcartNum();
if(cartnum>0){
@ -219,7 +219,7 @@
index: 4
})
}
},
onPullDownRefresh() {
setTimeout(()=>{
@ -277,7 +277,7 @@
if(this.userid==""||this.userid=="0"){
this.$refs.loginId.open();
}
//
try{
uni.showLoading();
@ -285,16 +285,16 @@
if (res1&&res1.product) {
var product=res1.product;
this.product={
id:product.id,
id:product.id,
productId:product.id, // id
name:product.name, //
productName:product.name, //
unit:product.unit,
weight:product.weight, //
instructor:product.instructor, //
brandName:product.brandName, //
productCategoryName:product.productCategoryName, //
isCourse:product.isCourse, //
brandName:product.brandName, //
productCategoryName:product.productCategoryName, //
isCourse:product.isCourse, //
price:product.price, //
pic:product.pic?product.pic:'',//
img:product.pic?product.pic:'',//
@ -331,7 +331,7 @@
});
}
this.$forceUpdate();
if(this.product.ifspec=='1'){
//
this.selinit();
@ -371,7 +371,7 @@
console.log(e)
}
}
}
else{
uni.showModal({
@ -385,7 +385,7 @@
catch(e){
console.log(e)
}
},
selinit(){
//
@ -500,7 +500,7 @@
// {
// id:12,
// name:"M"
// },
// },
// ]
// },
// {
@ -528,7 +528,7 @@
});
}
},
//
changeArea(item){
console.log(item)
@ -547,10 +547,10 @@
this.loadData();
},
highlightKeyword(text, keyword) {
if (!keyword) return text;
// 使<span>
const regex = new RegExp(keyword, 'gi');
return text.replace(regex, `<span style="color:#00a89b">${keyword}</span>`);
if (!keyword) return text;
// 使<span>
const regex = new RegExp(keyword, 'gi');
return text.replace(regex, `<span style="color:#00a89b">${keyword}</span>`);
},
getPhoneNumber(e){
if(e.userid){
@ -861,7 +861,7 @@
.scroll-view_H{
white-space: nowrap;
width: 100%;
}
}
.adimg{
position: relative;
display: inline-block;

@ -1,8 +1,8 @@
<template>
<view class="page">
<view class="oinfo">
<!-- 地址信息 商品需要选择配送地址 -->
<!-- v-if="orderlist1&&orderlist1.length>0" -->
<view class="yycon">
@ -26,17 +26,17 @@
<view class="aright" @click="getAddr">
<uni-icons type="arrowright" size="18" color="#a9a9a9"></uni-icons>
</view>
<view class="aline"></view>
</view>
</view>
<!-- 商品信息 -->
<view class="yycon" v-for="(info, index) in orderlist1" :key="index">
<view class="olist">
<view class="tip">
<text style="color:#000;font-weight: 600;">包裹{{index+1}}快递发货</text>
<text style="margin-left: 10rpx;">商家24H发货第三方物流配送 免运费</text>
<!-- <text style="margin-left: 10rpx;">商家24H发货第三方物流配送 免运费</text>-->
</view>
<view class="oscon">
<view class="osimg imgload">
@ -62,12 +62,12 @@
</view>
<view class="ostj">
<!-- <text style="color: #747474;font-size: 24rpx;margin-right: 5rpx;">{{info.price}}</text> -->
<text style="color: #000;font-size: 24rpx;">小计</text>
<text style="color: #000;font-size: 24rpx;">小计</text>
<text style="color:#ff3d0e;font-size: 34rpx;">{{parseFloat(info.price*info.quantity).toFixed(2)}}</text>
</view>
</view>
</view>
<!-- 课程信息 -->
<view class="yycon" v-for="(info, index) in orderlist2" :key="'id'+index">
<view class="olist">
@ -104,12 +104,12 @@
</view>
<view class="ostj">
<!-- <text style="color: #747474;font-size: 24rpx;margin-right: 5rpx;">{{info.price}}</text> -->
<text style="color: #000;font-size: 24rpx;">小计</text>
<text style="color: #000;font-size: 24rpx;">小计</text>
<text style="color:#ff3d0e;font-size: 34rpx;">{{parseFloat(info.price*info.quantity).toFixed(2)}}</text>
</view>
</view>
</view>
<!-- 下单备注 -->
<!-- <view class="yycon odrcell">
<view class="olist">
@ -123,7 +123,7 @@
</view> -->
</view>
<!-- 提交订单 -->
<view class="submitcon">
<view class="ocon">
@ -136,7 +136,7 @@
<button type="primary" v-if="!ifsubmit" class="btn" @click="gotoOrder"></button>
</view>
</view>
<!-- 支付弹框 -->
<uni-popup ref="paypup" type="share">
<view class="allcon">
@ -169,7 +169,7 @@
<button type="primary" class="paybtn" @click="paydo()"></button>
</view>
</uni-popup>
<!-- 地址选择弹框 -->
<uni-popup ref="adrpup" type="share">
<view class="allcon">
@ -178,7 +178,7 @@
<view class="rclose" @tap="_adrhide">
<uni-icons type="closeempty" size="24" color="#999999"></uni-icons>
</view>
</view>
</view>
<view class="selcon">
<radio-group class="checklist-group" @change="adrchange">
<view v-for="(item, index) in myaddresslist" :key="index" class="adrsitem">
@ -192,7 +192,7 @@
{{item.province+item.city+(item.area?item.area:'')+item.address}}
</view>
</view>
<view class="opecon">
<view class="opecon">
<radio :value="index.toString()" :checked="item.isChecked" />
</view>
</view>
@ -201,10 +201,10 @@
<button type="primary" class="addadrbtn" @click="addAddr()"></button>
</view>
</uni-popup>
<!-- 是否登录 -->
<openlogin ref="loginId" @getPhoneNumber="getPhoneNumber"></openlogin>
</view>
</template>
@ -310,7 +310,7 @@
});
return false;
}
//
if(!this.info.addressId){
uni.showModal({
@ -323,7 +323,7 @@
});
return false;
}
//
this.ifsubmit=true;
try {
@ -340,7 +340,7 @@
freightAmount:0 //
});
});
//
//
this.orderlist2.forEach(cell=>{
skuList.push({
skuId:cell.skuId,
@ -349,7 +349,7 @@
freightAmount:0 //
});
});
var params = {
addressId: this.info.addressId,
from:this.type,
@ -372,7 +372,7 @@
});
}
});
//
myCache('buycartList','');
// ??
@ -436,7 +436,7 @@
});
return false;
}
try {
var skuList=[];
//
@ -467,7 +467,7 @@
spDataValue: this.retSku(cell.spData)
})
});
var params = {
productTotalAmount: this.info.sums,
orderTotalAmount: this.info.sums,
@ -486,7 +486,7 @@
delta: 1
});
}
});
});
}
else if (res){
//
@ -505,13 +505,13 @@
delta: 1
});
}
});
});
}
},
async getinfo(type) {
var _this=this;
// ,
this.myaddresslist=myCache("myaddresslist");
this.myaddresslist=myCache("myaddresslist");
//
this.myaddresslist.forEach(data=>{
if(data.isDefault){
@ -523,8 +523,8 @@
this.$forceUpdate();
}
});
var buys = [];
var buys = [];
if(type=="buy"){
//
var buy=myCache('buycartList');
@ -544,7 +544,7 @@
});
});
}
if(buys.length<1){
uni.showModal({
title: '提示',
@ -560,7 +560,7 @@
});
return false;
}
//
this.orderlist1=[];
this.orderlist2=[];
@ -594,7 +594,7 @@
this.info.sums=sums.toFixed(2);
this.info.nums=nums.toFixed(0);
this.$forceUpdate();
//
this.ordercreate();
},
@ -735,11 +735,11 @@
console.log("MP-ALIPAY");
this.alipaydo();
// #endif
},
async zfbpayFailDo(){
//
uni.hideLoading();
uni.hideLoading();
var that=this;
uni.showModal({
title: '提示',
@ -762,7 +762,7 @@
//
var that=this;
console.log("支付宝发起支付");
//
//
var param={
"userid": myCache('userid'),
"userId": myCache('openId'),
@ -781,7 +781,7 @@
service: 'payment',
success: function (res) {
console.log(res.provider,"uni.getProvider");
if (~res.provider.indexOf('alipay')) {
uni.requestPayment({
"provider": "alipay", //"alipay"
@ -816,7 +816,7 @@
}
}
});
}
else{
// ,
@ -833,9 +833,9 @@
}
});
}
},
}
}
</script>
@ -886,7 +886,7 @@
font-size: 48rpx;
font-weight: 600;
color:#ff3d0e ;
}
}
}
.sbtn{
margin: 20rpx 45rpx 20rpx;
@ -1025,9 +1025,9 @@
}
}
}
}
.tip{
padding: 30rpx 20rpx 26rpx 20rpx;
border-bottom: 1rpx solid #f0f0f0;
@ -1037,7 +1037,7 @@
justify-content: space-between;
align-items: center;
}
.odrcell{
border-radius: 12rpx;
padding: 20rpx 40rpx;
@ -1164,11 +1164,11 @@
}
}
}
::v-deep .uni-easyinput__content-input{
font-size: 36rpx !important;
}
::v-deep.uni-radio-input-checked{
background-color: #00a89b !important;
border-color: #00a89b !important;
@ -1203,7 +1203,7 @@
width:100%;
padding: 20rpx 0;
font-size: 40rpx;
font-weight:600;
font-weight:600;
.mcost{
font-size: 60rpx;
}
@ -1356,5 +1356,5 @@
}
}
}
</style>

@ -1,6 +1,6 @@
<template>
<view class="page">
<view class="headcon" :style="{ paddingTop: geStatusBarHeight() + 'px'}">
<view class="hback">
<uni-icons type="back" size="24" color="#000" @tap="gotoBack"></uni-icons>
@ -20,7 +20,7 @@
</view>
</scroll-view>
</view>
<view v-show="0==tabCurrentIndex0">
<scroll-view class="scrolllist" scroll-x="true" scroll-with-animation :scroll-left="scrollLeft">
<view class="tabcell" v-for="(item, index) in list" :key="index" :class="index==tabCurrentIndex?'cur':''" @tap="tabSelect" :data-id="index">
@ -33,30 +33,29 @@
<scroll-view scroll-y style="height: 100%;width: 100%;">
<view class="scell" v-if="tabItem.slist.length>0">
<view v-for="(item, index) in tabItem.slist" :key="index" class="oitem">
<view class="otop">
<view class="hleft">
{{item.courseName||'-'}}
{{item.storeName||'-'}}
</view>
<view class="hright">
{{item.startTime+'-'+item.endTime}}
{{formatTime(item.startTime)+' - '+formatTime(item.endTime)}}
</view>
</view>
<view class="oscon">
<view class="osimg imgload">
<image class="osimg" v-if="item.pic" :src="getimgRemoteFile(item.pic)" mode="aspectFill"></image>
<image v-if="item.pic" :src="getimgRemoteFile(item.pic)" mode="aspectFill"></image>
</view>
<view class="osname">
<view class="oscell">
<!-- <view v-if="item.claName=='团课'" class="txtbg">{{item.claName}}</view>
<view v-else class="txtbg1">{{item.claName}}</view> -->
<view v-if="item.claName" class="txtbg1">{{item.claName}}</view>
<uni-rate :size="15" :readonly="true" :value="item.star?item.star:5" :max="5"/>
<!-- <view v-if="item.claName" class="txtbg1">{{item.claName}}</view>-->
<uni-rate :size="15" :readonly="true" :value="item.star?item.star:0" :max="5"/>
</view>
<view class="oscell" v-if="item.storeName">
<uni-icons type="paperclip" size="18" color="#00A99A"></uni-icons>
<view class="ntip">{{item.storeName}}</view>
<view class="ntip">{{item.courseName}}</view>
</view>
<view class="oscell">
<uni-icons type="calendar" size="18" color="#00A99A"></uni-icons>
@ -82,22 +81,22 @@
</view>
<view class="rcpm">
<button type="primary" class="orderbtn" @click="gotoorder(item)"></button>
<button type="primary" class="sharebtn" @click="gotoshare(item)"></button>
<!-- <button type="primary" class="sharebtn" @click="gotoshare(item)"></button>-->
</view>
</view>
</view>
</view>
</view>
<view v-if="tabItem.slist.length==0 && tabItem.loadStatus=='noMore'" class="nodata"></view>
<uni-load-more v-if="tabItem.slist.length>0" iconType="circle" :status="tabItem.loadStatus" />
</scroll-view>
</swiper-item>
</swiper>
</view>
<view v-show="1==tabCurrentIndex0">
<uni-table class="courcon" ref="table" :loading="loading" emptyText="暂无更多数据">
<view class="table_head">
@ -124,12 +123,12 @@
{{item.time}}
</view>
</uni-td>
<uni-td width="80" align="center" v-for="(cell, ii) in columnTitles" :key="ii">
<uni-td width="80" align="center" v-for="(cell, ii) in columnTitles" :key="ii">
<block v-for="(cc, kk) in item.claTimeWeekDayMap" :key="kk">
<block v-for="(dd, mm) in cc" :key="mm">
<!-- :style="{color:colorlist[index].fcolor,backgroundColor:colorlist[index].color,borderLeftColor:colorlist[index].fcolor}" -->
<view class="courheadtext" v-if="dd.claDate==cell.day"
:style="{
<view class="courheadtext" v-if="dd.claDate==cell.day"
:style="{
fontSize:(dd.fontSize?dd.fontSize+'px':'26rpx'),
color: (dd.fontColor?dd.fontColor:'#000'),
backgroundColor: ( dd.claColor?dd.claColor:colorlist[index].color),
@ -141,19 +140,19 @@
<view class="ctxt">{{dd.claName}}</view>
<view class="ctxt" v-if="dd.staffName">{{dd.staffName}}</view>
<view class="ctxt" v-if="dd.roomName">{{dd.roomName}}</view>
<button v-if="dd.claTimeStatus=='1'" type="primary" class="orderbtn" @click="gotoorder(dd)"></button>
<view v-else class="noorderbtn">不可预约</view>
<button v-if="dd.claTimeStatus=='1'" type="primary" class="orderbtn" style="width: 80%;" @click="gotoorder(dd)"></button>
<!-- <view v-else class="noorderbtn">不可预约</view>-->
</view>
</block>
</block>
</uni-td>
</uni-tr>
</view>
</uni-table>
</view>
<!-- 购买须知 -->
<uni-popup ref="pfDialog" :mask-click="false">
<view class="pcon">
@ -168,7 +167,7 @@
</view>
</view>
</uni-popup>
<!-- 是否登录 -->
<openlogin ref="loginId" @getPhoneNumber="getPhoneNumber"></openlogin>
@ -644,7 +643,7 @@
}
}
],
};
},
onLoad(option) {
@ -679,6 +678,10 @@
},100);
},
methods: {
formatTime(timeStr) {
// timeStr "HH:MM:SS"
return timeStr.slice(0, 5); // 5 "HH:MM"
},
closeDialog(){
this.$refs.pfDialog.close();
},
@ -933,7 +936,7 @@
.scrolllist0{
display: flex;
flex: 1;
height: 100rpx;
height: 100rpx;
background: #FFF;
white-space: nowrap;
width: 100%;
@ -968,7 +971,7 @@
margin-left: 30%;
}
.scrolllist{
height: 150rpx;
height: 150rpx;
background: #FFF;
white-space: nowrap;
width: 100%;
@ -1000,7 +1003,7 @@
border: 1rpx solid #00A99A;
border-radius: 10rpx;
}
.swiper-box {
flex: 1;
height: calc(100vh - var(--window-top) - 310rpx) !important;
@ -1015,7 +1018,7 @@
background-image: url('/static/image/no.png');
background-size: 52% auto;
background-repeat: no-repeat;
background-position: center;
background-position: center;
font-size: 28rpx;
text-align: center;
color: #00A99A;
@ -1067,9 +1070,14 @@
align-items: center;
width: 100%;
.osimg{
width: 160rpx;
height: 260rpx;
border-radius: 10rpx;
width: 200rpx;
height: 200rpx;
margin-right: 10rpx;
>image {
width: 200rpx;
height: 200rpx;
border-radius: 10rpx;
}
}
.osname{
display: flex;
@ -1109,7 +1117,7 @@
font-size: 26rpx;
color: #333;
margin-right: 10rpx;
}
}
.txtbg3{
padding: 2rpx 15rpx;
border-radius: 30rpx;
@ -1241,7 +1249,7 @@
// height: calc(100vh - 240rpx - var(--window-top));
// /* #endif */
background: #f8f8f8;
}
}
::v-deep .uni-table-tr{
display: flex;
background: #f8f8f8;
@ -1418,8 +1426,8 @@
border:none;
}
}
.pcon{
width: 690rpx;
padding-top:30rpx;
@ -1466,5 +1474,5 @@
color: #FCFCFD;
}
}
</style>

@ -11,7 +11,7 @@
<!-- 商品列表 -->
<view class="f-list">
<view class="guess-section" v-if="goodsList.length>0">
<view
<view
v-for="(item, index) in goodsList" :key="index"
class="guess-item"
>
@ -33,24 +33,24 @@
<image class="skimg" src="@/static/image/nodata.png" mode="aspectFill" ></image>
</view>
<uni-load-more v-if="loadStatus!=='noMore'" iconType="circle" :status="loadStatus" :content-text="contentText" />
</view>
<!-- 是否登录 -->
<openlogin ref="loginId" @getPhoneNumber="getPhoneNumber"></openlogin>
<!-- service 客服-->
<service ref="serviceId" @goservice="goservice"></service>
<!-- top 返回顶部-->
<top ref="topId"></top>
<!-- cart 购物车-->
<cart ref="cartId" x="0.94" y="0.08" @addShopCar="addShopCar" :pdata="product" :ptype="1"></cart>
<!-- 加入购物车动画 cartx carty 是购物车位置在屏幕位置的比例 例如左上角x0.1 y0.1 右下角 x0.9 y0.9-->
<shopCarAnimation ref="carAnmation" cartx="0.94" carty="0.08"></shopCarAnimation>
</view>
</template>
@ -191,7 +191,7 @@
},
]
},
};
},
onLoad() {
@ -220,7 +220,7 @@
methods: {
//
addShopCar(sels,quantity,buyType){
if(sels){
//
this.cartnum=getcartNum();
@ -264,9 +264,9 @@
unit:product.unit,
weight:product.weight, //
instructor:product.instructor, //
brandName:product.brandName, //
productCategoryName:product.productCategoryName, //
isCourse:product.isCourse, //
brandName:product.brandName, //
productCategoryName:product.productCategoryName, //
isCourse:product.isCourse, //
price:product.price, //
pic:product.pic?product.pic:'',//
img:product.pic?product.pic:'',//
@ -303,7 +303,7 @@
});
}
this.$forceUpdate();
if(this.product.ifspec=='1'){
//
this.selinit();
@ -343,7 +343,7 @@
console.log(e)
}
}
}
else{
uni.showModal({
@ -407,7 +407,7 @@
console.log(e)
}
},
//
changeArea(item){
this.shop=item.value_name;
@ -425,10 +425,10 @@
console.log(val);
},
highlightKeyword(text, keyword) {
if (!keyword) return text;
// 使<span>
const regex = new RegExp(keyword, 'gi');
return text.replace(regex, `<span style="color:#00a89b">${keyword}</span>`);
if (!keyword) return text;
// 使<span>
const regex = new RegExp(keyword, 'gi');
return text.replace(regex, `<span style="color:#00a89b">${keyword}</span>`);
},
input(res) {
if(!this.ifsear){
@ -486,7 +486,7 @@
{
uni.showLoading({
title: '数据加载中...'
});
});
const {data: res} = await uni.$http.get('/api/userFavorite/getUserFavorites');
if(res&&res.data&&res.data.length>0){
this.loadStatus="noMore";
@ -528,16 +528,16 @@
return { intPart, decimalPart };
},
navToList(item){
if(item.type==1){
uni.navigateTo({
url: `/pages/product/detail?id=${item.id}`
})
}
else if(item.type==2){
uni.navigateTo({
url: `/pages/product/cdetail?id=${item.id}`
})
}
if(item.isCourse==1){
uni.navigateTo({
url: `/pages/product/cdetail?id=${item.id}`
})
}
else {
uni.navigateTo({
url: `/pages/product/detail?id=${item.id}`
})
}
},
gotoBack(){
//

@ -1,10 +1,10 @@
<template>
<view class="page">
<view class="swiper-bg">
<uni-search-bar @confirm="search" :focus="false" v-model="searchValue" placeholder="请输入关键字"
bg-color="#FFFFFF" @cancel="cancel" @clear="clear">
</uni-search-bar>
</view>
<!-- <view class="swiper-bg">-->
<!-- <uni-search-bar @confirm="search" :focus="false" v-model="searchValue" placeholder="请输入关键字" -->
<!-- bg-color="#FFFFFF" @cancel="cancel" @clear="clear">-->
<!-- </uni-search-bar>-->
<!-- </view>-->
<!-- 列表 -->
<view class="f-list">
<view class="guess-section" v-if="goodsList.length>0">
@ -29,56 +29,76 @@
</view>
</view>
<view class="pcon">
<view class="ptxt" style="width: 280rpx;">
课程{{item.courseName}}
</view>
<view class="ptxt">
收费模式{{ item.chargeType?retStr(item.chargeType):'其他' }}
<view class="ptxt" style="width: 350rpx;">
卡号{{item.cardNo}}
</view>
</view>
<view class="pcon">
<view class="ptxt">
次数{{item.count}}
</view>
<view class="ptxt">
收费模式{{ item.chargeType?retStr(item.chargeType):'其他' }}
</view>
</view>
<view class="pcon">
<view class="ptxt">
时间{{item.days}}
</view>
<view v-if="item.chargeType == 'count'">
<view class="ptxt" >
总次数{{item.count}}
</view>
<view class="ptxt" >
剩余次数{{item.remainingCount}}
</view>
</view>
<view v-if="item.chargeType == 'count'" >
<view class="ptxt" >
总天数{{item.days}}
</view>
<view class="ptxt" >
剩余天数{{item.remainingDays}}
</view>
</view>
<view v-if="item.chargeType == 'total_fee'">
<view class="ptxt" >
储值金额{{item.totalFee}}
</view>
<view class="ptxt" >
剩余金额{{item.remainingTotalFee}}
</view>
</view>
</view>
<view class="pcon">
<view class="ptxt" style="width: 280rpx;">
<view class="ptxt" >
收费{{item.receiptFee}}
</view>
<view class="ptxt">
储值{{item.totalFee}}
</view>
</view>
<view class="pcon">
<view class="pcon" v-if="item.expireDate">
<view class="ptxt" style="width: 300rpx;">
激活日期{{item.beginDate? item.beginDate:'未激活'}}
</view>
<view class="ptxt">
有限期限{{(item.beginDate?item.beginDate:' — ')+'至'+(item.expireDate?item.expireDate:' — ')}}
到期日期{{item.expireDate}}
</view>
</view>
</view>
</view>
</view>
<view v-else class="skcon">
<image v-if="loadStatus=='noMore'" class="skimg" src="@/static/image/no.png" mode="aspectFill" ></image>
</view>
<uni-load-more iconType="circle" :status="loadStatus" :content-text="contentText" />
</view>
<!-- 是否登录 -->
<openlogin ref="loginId" @getPhoneNumber="getPhoneNumber"></openlogin>
<!-- service 客服-->
<service ref="serviceId" @goservice="goservice"></service>
<!-- top 返回顶部-->
<top ref="topId"></top>
<u-toast ref="uToast" />
</view>
</template>
@ -228,7 +248,7 @@
}
if (res1.data&&res1.data.length>0) {
this.loadStatus="noMore";
this.contentText.contentnomore="没有数据了...";
this.contentText.contentnomore="";
this.goodsList=res1.data;
this.$forceUpdate();
}
@ -267,7 +287,7 @@
// url: `/pages/product/detail?id=${id}`
// })
},
}
}
</script>

@ -1,6 +1,6 @@
<template>
<view class="page">
<view class="hcon">
<view class="h-header">
<image :src="avatar"></image>
@ -12,7 +12,7 @@
<view class="ebtn" v-if="userid" @click="gotoEdit"></view>
</view>
</view>
<!-- 菜单1 -->
<view class="s-list">
<view class="s-header">
@ -34,7 +34,7 @@
</view>
</scroll-view>
</view>
<!-- 菜单2 -->
<view class="s-list">
<view class="s-header">
@ -59,12 +59,12 @@
<view class="title">{{servers[5].name}}</view>
</view>
<!-- 设置 -->
<view class="product-item" @click="gotoServe(0)">
<view class="image-wrapper">
<image class="imgicon" :src="servers[0].img" mode="aspectFill" lazy-load></image>
</view>
<view class="title">{{servers[0].name}}</view>
</view>
<!-- <view class="product-item" @click="gotoServe(0)">-->
<!-- <view class="image-wrapper">-->
<!-- <image class="imgicon" :src="servers[0].img" mode="aspectFill" lazy-load></image>-->
<!-- </view>-->
<!-- <view class="title">{{servers[0].name}}</view>-->
<!-- </view>-->
<!-- 收货地址 -->
<view class="product-item" @click="gotoServe(1)">
<view class="image-wrapper">
@ -164,22 +164,22 @@
</view>
</scroll-view>
</view>
<u-toast ref="uToast" />
<!-- 是否登录 -->
<openlogin ref="loginId" @getPhoneNumber="getPhoneNumber"></openlogin>
<!-- service 客服-->
<service ref="serviceId" @goservice="goservice"></service>
</view>
</template>
<script>
import { myCache,getcartNum,getmessageNum,getRemoteFile } from '../../utils/utils.js';
import openlogin from "../components/openlogin.vue";
import top from "../components/top.vue";
import service from "../components/service.vue";
export default {
@ -290,8 +290,8 @@
},
{
key:13,
img:'../../static/image/yyjl.png',
name:'预约学员',//
img:'../../static/image/sj.png',
name:'全店预约学员',//
},
{
key:14,
@ -325,7 +325,7 @@
this.signature = user.signature;
this.roleId=user.roleId?user.roleId:[];
}
//
var cartnum=getcartNum();
if(cartnum>0){
@ -341,7 +341,7 @@
index: 4
})
}
var messageNum=getmessageNum();
console.log("messageNum",messageNum)
if(messageNum>0){
@ -357,7 +357,7 @@
index: 3
})
}
if(this.userid){
//
this.getnum();
@ -402,7 +402,7 @@
console.log(val);
},
async getnum(){
const {data: res} = await uni.$http.get('/api/order/countOrder');
if(res){
this.menus[0].num=res.unpaid?res.unpaid:0;//
@ -411,7 +411,7 @@
this.menus[3].num=res.aftersale?res.aftersale:0;//
this.$forceUpdate();
}
const {data: res1} = await uni.$http.get('/api/userFavorite/getUserFavoriteCount');
if(res1&&res1.data){
this.favoritesnum=res1.data?res1.data:0;
@ -539,7 +539,7 @@
confirmText: '确定',
success: ress => {
if (ress.confirm) {
//
this.openId = "";
this.phone = "";
@ -555,27 +555,27 @@
isauth:0,
};
this.$forceUpdate();
//
myCache('token','');
myCache('user','');
myCache('userInfo','');
myCache('phone','');
myCache('openId','');
myCache('userid','');
myCache('userid','');
// 退
myCache('shop','');
myCache('myshop','');
myCache('myshopid','');
myCache('shoplist','');
myCache('shop','');
myCache('myshop','');
myCache('myshopid','');
myCache('shoplist','');
//
this.menus[0].num=0;
this.menus[1].num=0;
this.menus[2].num=0;
this.menus[3].num=0;
this.favoritesnum=0;//
//
var cartnum=getcartNum();
if(cartnum>0){
@ -591,7 +591,7 @@
index: 4
})
}
this.$refs.uToast.show({
title: '已退出登录!',
type: 'warning',
@ -653,7 +653,7 @@
});
// #endif
},
async logoff(){
uni.showLoading({
title: '账号注销中...'
@ -681,8 +681,8 @@
myCache('userInfo','');
myCache('phone','');
myCache('openId','');
myCache('userid','');
myCache('userid','');
uni.showModal({
title: '提示',
content: '账号已注销!',
@ -775,7 +775,7 @@
background-position: center center;
min-height: calc(100vh - var(--window-top) - var(--window-bottom));
}
.fixhead{
.fixhead{
display: flex;
flex-direction: row;
width: 100%;
@ -849,7 +849,7 @@
color: #888;
background: #e4f9f7;
}
.scan{
position: absolute;
height: 50rpx;
@ -869,7 +869,7 @@
margin-left: 12rpx;
}
}
}
.h-bocon{
display:flex;
@ -927,7 +927,7 @@
}
}
}
.mcon{
display: flex;
flex-direction: row;
@ -1067,5 +1067,5 @@
align-items: center;
}
}
</style>

Loading…
Cancel
Save