zouyanyan 3 months ago
parent ed8bff61f4
commit a2cd86fd4e

@ -45,7 +45,7 @@
line-height: 1;
}
.tki-tree-bar-confirm {
color: #89965f;
color: #00a89b;
}
.tki-tree-view {
position: absolute;
@ -120,7 +120,7 @@
border-bottom-width: 2rpx;
border-right-width: 2rpx;
border-style: solid;
border-color: #89965f;
border-color: #00a89b;
display: flex;
justify-content: center;
align-items: center;
@ -133,7 +133,7 @@
border-top-right-radius: 20%;
border-bottom-right-radius: 20%;
border-bottom-left-radius: 20%;
background-color: #89965f;
background-color: #00a89b;
}
.tki-tree-check .radio {
border-top-left-radius: 50%;

@ -19,7 +19,7 @@
<view v-if="ifmore" class="bt-img" @tap="more">
<image src="../../static/icon/more.png"></image>
</view>
<u-button v-if="!ifmore" @tap="sendMsg" style="background-color: #89965f; width: 88rpx;color: #fff;border-radius: 10rpx;"></u-button>
<u-button v-if="!ifmore" @tap="sendMsg" style="background-color: #00a89b; width: 88rpx;color: #fff;border-radius: 10rpx;"></u-button>
</view>
<!-- 表情框 -->
@ -554,7 +554,7 @@
display: inline-block;
min-width: 120rpx;
line-height: 84rpx;
background-color: #89965f;
background-color: #00a89b;
border-radius: 42rpx;
color:#ffffff;
}

@ -1,9 +1,9 @@
{
"name" : "三朵蘭瑜伽",
"appid" : "__UNI__4060561",
"description" : "三朵蘭瑜伽",
"versionName" : "1.0.10",
"versionCode" : 1010,
"name" : "瑜伽",
"appid" : "__UNI__B6E0086",
"description" : "瑜伽",
"versionName" : "1.0.0",
"versionCode" : 100,
"transformPx" : false,
"app-plus" : {
"flexible" : true,

@ -311,7 +311,7 @@
"path": "pages/message/group",
"style": {
"enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#89965f",
"navigationBarBackgroundColor": "#00a89b",
"app-plus": {
"titleNView": false
}
@ -321,7 +321,7 @@
"path": "pages/message/contact",
"style": {
"enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#89965f",
"navigationBarBackgroundColor": "#00a89b",
"app-plus": {
"titleNView": false
}
@ -359,6 +359,14 @@
"enablePullDownRefresh": false
}
},
{
"path": "pages/book/bookteacher",
"style" :
{
"navigationBarTitleText": "预约学员",
"enablePullDownRefresh": false
}
},
{
"path": "pages/book/book",
"style" :
@ -414,8 +422,8 @@
"pageOrientation": "auto",
"navigationStyle": "default", // "navigationStyle": "custom",
"navigationBarTextStyle": "white",
"navigationBarBackgroundColor": "#89965f",
"backgroundColor": "#89965f"
"navigationBarBackgroundColor": "#00a89b",
"backgroundColor": "#00a89b"
},
"tabBar": {
"color": "#909399",

@ -1,7 +1,7 @@
<template>
<view class="page">
<view class="tip">
<uni-icons type="info" size="20" color="#89965f"></uni-icons>
<uni-icons type="info" size="20" color="#00a89b"></uni-icons>
<text style="margin-left: 10rpx;">若所在省市无法选择请在省市区选择其他在详细地址输入即可</text>
</view>
<view class="example">
@ -29,7 +29,7 @@
<view class="xcon">
<view class="xcell">
<text class="txt">设置默认地址</text>
<switch :checked="valiFormData.isDefault" @change="switch1Change" color="#89965f" style="transform:scale(0.7)"/>
<switch :checked="valiFormData.isDefault" @change="switch1Change" color="#00a89b" style="transform:scale(0.7)"/>
</view>
<!-- <view class="xright" @click="delDo" >删除地址</view> -->
</view>
@ -447,7 +447,7 @@
}
}
.tip{
background: #f3f4ee;
background: #e4f9f7;
padding: 20rpx;
font-size: 24rpx;
color: #303133;
@ -464,7 +464,7 @@
width: 660rpx;
height: 76rpx;
line-height: 76rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
border-radius: 10rpx;
opacity: 1;

@ -221,7 +221,7 @@
font-weight: 400;
font-size: 24rpx;
color: #FFFFFF;
background: #89965f;
background: #00a89b;
border-radius: 8rpx 8rpx 8rpx 8rpx;
display: flex;
flex-direction: row;
@ -270,7 +270,7 @@
width: 560rpx;
height: 76rpx;
line-height: 76rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
border-radius: 10rpx;
opacity: 1;
@ -328,7 +328,7 @@
height: 48rpx;
text-align: center;
line-height: 50rpx;
background: #89965f;
background: #00a89b;
border-radius: 24rpx;
margin-left: 10rpx;
}

@ -133,7 +133,9 @@
//
if(options.data){
this.item = JSON.parse(decodeURIComponent(options.data));
console.log(this.item)
this.id = this.item.courseTimeId;
this.getinfo();
}
},
onShow(){
@ -196,12 +198,12 @@
});
},
async getinfo() {
//
uni.showLoading({
title: '数据加载中...'
});
const {data: res} = await uni.$http.post('api/course/bookCourseDetail', {id:this.id});
const {data: res} = await uni.$http.post('/api/my/courseTimeDetail', {"courseTimeId":this.id}); // this.id
if(res){
//
this.info=res;
this.$forceUpdate();
@ -227,13 +229,12 @@
var param={
"courseTimeId": this.item.courseTimeId
};
uni.showToast({
title: '课程预约中...',
icon: 'success',
duration: 2000
uni.showLoading({
title: '课程预约中...'
});
const {data: res} = await uni.$http.post('/api/course/bookCourse', param);
if(res.msg=="successed"){
console.log(res)
if(res.success){
uni.showToast({
title: '课程已预约!',
icon: 'success',
@ -247,10 +248,21 @@
});
}
else{
uni.showToast({
title: res.msg? res.msg:'课程预约失败!',
icon: 'error',
duration: 2000
// uni.showToast({
// title: res.message? res.message:'',
// icon: 'error',
// duration: 2000
// });
uni.showModal({
title: '提示',
content: res.message? res.message:'课程预约失败!',
cancelText: '取消',
confirmText: '确定',
success: ress => {
if (ress.confirm) {
}
}
});
}
},

@ -286,24 +286,24 @@
.rmb{
font-size: 30rpx;
font-family: smallYuan;
color:#89965f ;
color:#00a89b ;
margin-left: 10rpx;
}
.zs{
font-size: 48rpx;
font-weight: 600;
font-family: smallYuan;
color:#89965f ;
color:#00a89b ;
}
.xs{
font-size: 28rpx;
font-weight: 600;
font-family: smallYuan;
color:#89965f ;
color:#00a89b ;
}
}
.btn{
background-color: #89965f !important;
background-color: #00a89b !important;
margin: 30rpx 20rpx 0 0;
border-radius: 50rpx;
height: 60rpx;
@ -376,8 +376,8 @@
line-height: 60rpx;
width:170rpx;
font-size: 26rpx;
border:1rpx solid #89965f;
color:#89965f;
border:1rpx solid #00a89b;
color:#00a89b;
}
.wlbtn::after{
border:0 !important;
@ -463,7 +463,7 @@
.owc{
display: flex;
flex-direction: column;
background-color: #89965f ;
background-color: #00a89b ;
padding: 20rpx;
border-radius: 16rpx;
.ozstate{
@ -586,8 +586,8 @@
}
::v-deep.uni-radio-input-checked{
background-color: #89965f !important;
border-color: #89965f !important;
background-color: #00a89b !important;
border-color: #00a89b !important;
background-clip: content-box!important;
box-sizing: border-box;
}

@ -493,7 +493,7 @@
}
},
//
orderdo(e,item){ // /api/course/bookCourse
orderdo(e,item){
console.log(id,item);
var that = this;
//
@ -520,7 +520,7 @@
duration: 2000
});
const {data: res} = await uni.$http.post('/api/course/bookCourse', param);
if(res.msg=="successed"){
if(res.success){
uni.showToast({
title: '上课已预约!',
icon: 'success',
@ -530,10 +530,20 @@
this.reset();
}
else{
uni.showToast({
title: res.msg? res.msg:'上课预约失败!',
icon: 'error',
duration: 2000
// uni.showToast({
// title: res.msg? res.msg:'',
// icon: 'error',
// duration: 2000
// });
uni.showModal({
title: '提示',
content: res.message? res.message:'课程预约失败!',
cancelText: '取消',
confirmText: '确定',
success: ress => {
if (ress.confirm) {
}
}
});
}
},
@ -752,14 +762,14 @@
height: 90rpx;
}
.cur .ptext{
color: #89965f;
color: #00a89b;
font-size: 33rpx;
font-weight: 600;
}
.cur .pline{
width: 40%;
height: 9rpx;
background: #89965f;
background: #00a89b;
border-radius: 6rpx;
opacity: 1;
margin-left: 30%;
@ -774,7 +784,7 @@
background-position: center;
font-size: 28rpx;
text-align: center;
color: #89965f;
color: #00a89b;
overflow: hidden;
}
.scell{
@ -948,14 +958,14 @@
line-height: 48rpx;
padding: 0 20rpx;
font-size: 24rpx;
border:1rpx solid #89965f;
border:1rpx solid #00a89b;
color:#595d4d;
}
.conbtn::after{
border:0 !important;
}
.paybtn{
background-color: #89965f !important;
background-color: #00a89b !important;
margin-left: 20rpx;
border-radius: 50rpx;
border-radius: 50rpx;
@ -963,7 +973,7 @@
line-height: 48rpx;
padding: 0 20rpx;
font-size: 24rpx;
border:1rpx solid #89965f;
border:1rpx solid #00a89b;
}
.paybtn::after{
border:0 !important;

@ -0,0 +1,787 @@
<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" @click="gotoInfo(item.courseTimeId)">
<view class="hleft">
<text>{{item.storeName?item.storeName:'门店'}}</text>
</view>
<view class="hright">
<!-- 1待上课2预约中3待评价 4已完成 5已取消 -->
<!-- 描述:0->预约中;1->教练确认;2->店长确认/预约成功/待上课 3->已取消;4->已完成/待评价; -->
<view v-if="item.bookStatus==1" class="ztip"></view>
<view v-else-if="item.bookStatus==0" class="jtip">预约中</view>
<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>
</view>
<view class="oscon" @click="gotoInfo(item.courseTimeId)">
<view class="osimg imgload">
<image class="osimg" v-if="item.pic" :src="getimgRemoteFile(item.pic)" mode="aspectFill"></image>
</view>
<view class="osname">
<text class="ntxt">{{item.courseName}} {{item.claName}} </text>
<text class="txt"> 教练{{item.teacherName }}</text>
<text class="txt">上课时间{{ item.claDate+' '+item.startTime+'-'+item.endTime}}</text>
<text class="txt">教室{{item.roomName}}</text>
</view>
</view>
<view class="obtn">
<view class="omoney"></view>
<!-- 1待上课2预约中3待评价 4已完成 5已取消-->
<!-- 描述:0->预约中;1->教练确认;2->店长确认/预约成功/待上课 3->已取消;4->已完成/待评价; -->
<button type="primary" class="conbtn" @click="gototeacher(item)"></button>
<button v-if="item.orderstate==2||item.orderstate==1" type="primary" class="cancelbtn" :data-id="item.courseTimeId" @click="cancelkcdo"></button>
<button v-if="item.orderstate==0" type="primary" class="cancelbtn" :data-id="item.courseTimeId" @click="cancelyydo"></button>
<button v-if="item.orderstate==0" type="primary" class="paybtn" :data-id="item.courseTimeId" @click="checkdo($event,item)"></button>
<button v-if="item.orderstate==4" type="primary" class="viewbtn" :data-id="item.courseTimeId" @click="orderdo($event,item)"></button>
<button v-if="item.orderstate==4" type="primary" class="gzbtn" :data-id="item.courseTimeId" @click="gotoevaluate($event,item)"></button>
</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>
<script>
import { myCache,getRemoteFile } from '../../utils/utils.js';
import openlogin from "../components/openlogin.vue";
export default {
components: {
openlogin
},
data() {
return {
openId:"",
phone:"",
userid:"",
loadStatus:"more", // loading noMore
list:[],
};
},
onLoad(option) {
myCache('courserefresh',0);
this.loadData();
},
onShow(option){
//
if(myCache('courserefresh')){
this.loadData();
myCache('courserefresh',0);
}
},
onReady(){
this.openId = myCache('openId');
var user = myCache('user');
this.userid = user.userid? user.userid:'';
this.phone = user.userphone;
if(this.userid==""||this.userid=="0"){
uni.navigateTo({
url: `/pages/login/login`
});
}
},
onPullDownRefresh() {
setTimeout(()=>{
uni.stopPullDownRefresh()
},100);
},
methods: {
getimgRemoteFile(img){
if(img){
img=img.split(',')[0];
return getRemoteFile(img)
}
else{
return require("@/static/image/theme/p1.jpg")
}
},
getPhoneNumber(e){
if(e.phone){
this.phone = e.phone
}
if(e.userid){
this.userid = e.userid
}
},
async getOrderList() {
if(this.loadStatus!=="noMore")
{
uni.showLoading({
title: '数据加载中...'
});
const {data: res} = await uni.$http.get('/api/my/appointmentListForTeacher');
if(res&&res.data){
//
this.loadStatus="noMore";
this.list=res.data;
this.$forceUpdate();
}
else{
this.loadStatus="noMore";
this.$forceUpdate();
}
}
},
loadData(){
console.log('loadData');
//
if(this.loadStatus=="more") {
this.loadStatus="loading";
setTimeout(() => {
this.getOrderList();
}, 300);
}
},
gotoInfo(id){
//
uni.navigateTo({
url: `/pages/book/bookinfo?id=${id}`
});
},
//
gototeacher(item){
var data={
id:item.id,
name:"教练A"
}
//
var data=encodeURIComponent(JSON.stringify(data));
uni.navigateTo({
url: `/pages/teacher/chat?data=${data}`
})
},
//
gotoevaluate(item){
var data=encodeURIComponent(JSON.stringify(item));
uni.navigateTo({
url: `/pages/book/bookpj?data=${data}`
});
},
iflogin(){
this.openId = myCache('openId');
var user = myCache('user');
this.userid = user.userid? user.userid:'';
this.phone = user.userphone;
if(this.userid==""||this.userid=="0"||this.phone==""){
uni.navigateTo({
url: `/pages/login/login`
});
return false;
}
else{
return true;
}
},
//
orderdo(e,item){
console.log(id,item);
var that = this;
//
uni.showModal({
title: '提示',
content: '确定再次预约吗?',
cancelText: '取消',
confirmText: '确定',
success: ress => {
if (ress.confirm) {
that.checkdodo(id,item);
}
}
});
},
//
async orderdodo(id,item){
var param={
"courseTimeId": item.courseTimeId
};
uni.showToast({
title: '再次预约中...',
icon: 'success',
duration: 2000
});
const {data: res} = await uni.$http.post('/api/course/bookCourse', param);
if(res.success){
uni.showToast({
title: '上课已预约!',
icon: 'success',
duration: 2000
});
//
this.loadData();
}
else{
// uni.showToast({
// title: res.msg? res.msg:'',
// icon: 'error',
// duration: 2000
// });
uni.showModal({
title: '提示',
content: res.message? res.message:'课程预约失败!',
cancelText: '取消',
confirmText: '确定',
success: ress => {
if (ress.confirm) {
}
}
});
}
},
//
checkdo(e,item){
console.log(e);
var id= e.currentTarget.dataset.id;
var that = this;
//
uni.showModal({
title: '提示',
content: '确定上课吗?',
cancelText: '取消',
confirmText: '确定',
success: ress => {
if (ress.confirm) {
that.checkdodo(id,item);
}
}
});
},
//
async checkdodo(id,item){
var param={
"courseTimeId": item.courseTimeId,
"startTime": item.startTime,
"endTime": item.endTime
};
uni.showToast({
title: '确定上课中...',
icon: 'success',
duration: 2000
});
const {data: res} = await uni.$http.post('/api/my/confirmClass', param);
if(res.msg=="successed"){
uni.showToast({
title: '上课已确认!',
icon: 'success',
duration: 2000
});
//
this.loadData();
}
else{
uni.showToast({
title: res.msg? res.msg:'上课确认失败!',
icon: 'error',
duration: 2000
});
}
},
//
cancelyydo(e){
console.log(e);
var id= e.currentTarget.dataset.id;
var that = this;
//
uni.showModal({
title: '提示',
content: '确定要取消预约吗?',
cancelText: '取消',
confirmText: '确定',
success: ress => {
if (ress.confirm) {
that.delyydo(id);
}
}
});
},
//
async delyydo(id){
var param={
"courseTimeId":id
};
uni.showToast({
title: '取消中...',
icon: 'success',
duration: 2000
});
const {data: res} = await uni.$http.post('/api/course/cancelCourse', param);
if(res.msg=="successed"){
uni.showToast({
title: '预约已取消!',
icon: 'success',
duration: 2000
});
//
this.loadData();
}
else{
uni.showToast({
title: res.msg? res.msg:'预约取消失败!',
icon: 'error',
duration: 2000
});
}
},
//
cancelkcdo(e){
console.log(e);
var id= e.currentTarget.dataset.id;
var that = this;
//
uni.showModal({
title: '提示',
content: '确定要取消课程吗?',
cancelText: '取消',
confirmText: '确定',
success: ress => {
if (ress.confirm) {
that.delkcdo(id);
}
}
});
},
//
async delkcdo(id){
var param={
"courseTimeId":id
};
uni.showToast({
title: '取消中...',
icon: 'success',
duration: 2000
});
const {data: res} = await uni.$http.post('/api/course/cancelCourse', param);
if(res.msg=="successed"){
uni.showToast({
title: '课程已取消!',
icon: 'success',
duration: 2000
});
//
this.loadData();
}
else{
uni.showToast({
title: res.msg? res.msg:'课程取消失败!',
icon: 'error',
duration: 2000
});
}
}
}
}
</script>
<style lang="scss" scoped>
.page {
padding: 0;
position: relative;
background-image: url('@/static/image/bg.jpg');
background-attachment: fixed;
background-size: cover;
background-position: center center;
min-height: calc(100vh - var(--window-top) - var(--window-bottom));
}
.olistcon{
padding: 0 20rpx 20rpx 20rpx;
.olist{
display: flex;
flex-direction: column;
.ocell{
font-size: 26rpx;
color:#747474;
padding: 10rpx 0;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
.red{
color:#ff3d0e;
}
.green{
color:#00cd00;
}
}
}
}
.swiper-box {
flex: 1;
height: calc(100vh - var(--window-top) - 130rpx) !important;
}
.swiper-item {
height: 100%;
}
.scrolllist{
height: 110rpx;
background: #FFF;
white-space: nowrap;
width: 100%;
}
.tabicl{
min-width: 130rpx;
height: 100rpx;
line-height: 100rpx;
position: relative;
display: inline-block;
overflow: hidden;
margin-right: 20rpx;
}
.ptext{
font-size: 30rpx;
text-align: center;
color: #000;
font-weight: 600;
height: 90rpx;
}
.cur .ptext{
color: #00a89b;
font-size: 33rpx;
font-weight: 600;
}
.cur .pline{
width: 40%;
height: 9rpx;
background: #00a89b;
border-radius: 6rpx;
opacity: 1;
margin-left: 30%;
}
.nodata{
width: 100%;
height: calc(100vh - 400rpx) !important;
line-height: calc(100vh) !important;
background-image: url('/static/image/no.png');
background-size: 52% auto;
background-repeat: no-repeat;
background-position: center;
font-size: 28rpx;
text-align: center;
color: #00a89b;
overflow: hidden;
}
.scell{
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
margin: 20rpx;
.oitem{
display: flex;
flex-direction: column;
background-color: #FFFFFF;
border-radius: 6rpx;
padding: 20rpx;
width: 100%;
margin-bottom: 20rpx;
.otop{
display: flex;
flex-direction: row;
padding: 10rpx 0 0;
height: 60rpx;
line-height: 60rpx;
width: 100%;
.hleft{
display: flex;
flex-direction: row;
flex:1;
align-items: center;
font-size: 30rpx;
color: #000;
}
.hright{
display: flex;
justify-content: flex-end;
align-items: center;
// <!--123 4 56-->
.ztip{
border-radius: 12rpx;
color:#1296db;
font-size: 26rpx;
padding: 0;
height: 40rpx;
line-height: 40rpx;
}
.jtip{
border-radius: 12rpx;
color:#feb467;
font-size: 26rpx;
padding: 0;
height: 40rpx;
line-height: 40rpx;
}
.htip{
border-radius: 12rpx;
color:#fc6900;
font-size: 26rpx;
padding: 0;
height: 40rpx;
line-height: 40rpx;
}
.hwtip{
border-radius: 12rpx;
color:#FF0000;
font-size: 26rpx;
padding: 0;
height: 40rpx;
line-height: 40rpx;
}
.wtip{
border-radius: 12rpx;
color:#43cca4;
font-size: 26rpx;
padding: 0;
height: 40rpx;
line-height: 40rpx;
}
.gtip{
border-radius: 12rpx;
color:#0036D6;
font-size: 26rpx;
padding: 0;
height: 40rpx;
line-height: 40rpx;
}
.ftip{
border-radius: 12rpx;
color:#6A81F1;
font-size: 26rpx;
padding: 0;
height: 40rpx;
line-height: 40rpx;
}
.ctip{
border-radius: 12rpx;
color:#888;
font-size: 26rpx;
padding: 0;
height: 40rpx;
line-height: 40rpx;
}
}
}
.obtn{
display: flex;
flex-direction: row;
justify-content: flex-end;
border-top: 1rpx solid #eee;
padding: 20rpx 0 10rpx;
width: 100%;
.omoney{
display: flex;
flex:1;
height: 60rpx;
width: 100%;
color:#333;
align-items: center;
.omtip{
font-size: 36rpx;
color:rgb(252, 105, 0);
}
}
.cancelbtn{
background-color: #FFFFFF !important;
margin-left: 20rpx;
border-radius: 50rpx;
height: 50rpx;
line-height: 48rpx;
padding: 0 20rpx;
font-size: 24rpx;
color:#888;
border:1rpx solid #888;
}
.cancelbtn::after{
border:0 !important;
}
.viewbtn{
background-color: #FFFFFF !important;
margin-left: 20rpx;
border-radius: 50rpx;
border-radius: 50rpx;
height: 50rpx;
line-height: 48rpx;
padding: 0 20rpx;
font-size: 24rpx;
color:#6A81F1;
border:1rpx solid #6A81F1;
}
.viewbtn::after{
border:0 !important;
}
.pjbtn{
background-color: #FFFFFF !important;
margin-left: 20rpx;
border-radius: 50rpx;
border-radius: 50rpx;
height: 50rpx;
line-height: 48rpx;
padding: 0 20rpx;
font-size: 24rpx;
border:1rpx solid rgb(252, 105, 0);
color:rgb(252, 105, 0);
}
.pjbtn::after{
border:0 !important;
}
.conbtn{
background-color: #f3f4ef !important;
margin-left: 20rpx;
border-radius: 50rpx;
border-radius: 50rpx;
height: 50rpx;
line-height: 48rpx;
padding: 0 20rpx;
font-size: 24rpx;
border:1rpx solid #00a89b;
color:#595d4d;
}
.conbtn::after{
border:0 !important;
}
.paybtn{
background-color: #00a89b !important;
margin-left: 20rpx;
border-radius: 50rpx;
border-radius: 50rpx;
height: 50rpx;
line-height: 48rpx;
padding: 0 20rpx;
font-size: 24rpx;
border:1rpx solid #00a89b;
}
.paybtn::after{
border:0 !important;
}
.gzbtn{
background-color: #f5aa00 !important;
margin-left: 20rpx;
border-radius: 50rpx;
height: 50rpx;
line-height: 48rpx;
padding: 0 20rpx;
font-size: 24rpx;
border:1rpx solid #f5aa00;
}
.gzbtn::after{
border:0 !important;
}
.gzbtn{
background-color: #f5aa00 !important;
margin-left: 20rpx;
border-radius: 50rpx;
height: 50rpx;
line-height: 48rpx;
padding: 0 20rpx;
font-size: 24rpx;
border:1rpx solid #f5aa00;
}
.gzbtn::after{
border:0 !important;
}
}
.oscon{
margin:20rpx 0;
border-radius: 16rpx;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
.osimg{
width: 120rpx;
height: 120rpx;
border-radius: 10rpx;
}
.osname{
display: flex;
flex: 1;
display: flex;
flex-direction: column;
margin-left: 26rpx;
.ntxt{
font-size: 28rpx;
color:#000;
line-height: 36rpx;
margin-bottom: 8rpx;
}
.txt{
font-size: 24rpx;
color:#666;
}
}
.osprice{
display: flex;
justify-content: flex-end;
margin-right: 10rpx;
font-size: 30rpx;
color:#666;
}
}
}
.sitem {
display: flex;
flex-direction: column;
flex: 1;
background-color: #FFFFFF;
/*设置最小宽度,才会让元素排不下,导致换行排列*/
min-width: calc((100% - 20rpx) / 2);
max-width: calc((100% - 20rpx) / 2);
margin-right:5rpx;
margin-left:5rpx;
margin-bottom: 10rpx;
border-radius: 16rpx;
.simg{
width: 100%;
height: 360rpx;
.img{
width: 100%;
height: 100%;
border-radius: 16rpx 16rpx 0 0;
}
}
.sname{
font-size: 30rpx;
font-weight: 600;
color: rgb(29, 29, 29);
padding: 16rpx;
}
.sinfo{
font-size: 26rpx;
color:rgb(116, 116, 116);
padding: 0 16rpx;
height: 60rpx;
line-height: 30rpx;
overflow: hidden;
position: relative;
text-overflow: ellipsis;
display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:2;
}
.sprices{
padding: 0 16rpx 20rpx 16rpx;
font-size: 36rpx;
color:rgb(252, 105, 0);
border-radius: 0 0 16rpx 16rpx;
.cx{
font-size: 28rpx;
color:rgb(116, 116, 116);
text-decoration: line-through;
margin-left: 20rpx;
}
}
}
}
</style>

@ -0,0 +1,787 @@
<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" @click="gotoInfo(item.courseTimeId)">
<view class="hleft">
<text>{{item.storeName?item.storeName:'门店'}}</text>
</view>
<view class="hright">
<!-- 1待上课2预约中3待评价 4已完成 5已取消 -->
<!-- 描述:0->预约中;1->教练确认;2->店长确认/预约成功/待上课 3->已取消;4->已完成/待评价; -->
<view v-if="item.bookStatus==1" class="ztip"></view>
<view v-else-if="item.bookStatus==0" class="jtip">预约中</view>
<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>
</view>
<view class="oscon" @click="gotoInfo(item.courseTimeId)">
<view class="osimg imgload">
<image class="osimg" v-if="item.pic" :src="getimgRemoteFile(item.pic)" mode="aspectFill"></image>
</view>
<view class="osname">
<text class="ntxt">{{item.courseName}} {{item.claName}} </text>
<text class="txt"> 教练{{item.teacherName }}</text>
<text class="txt">上课时间{{ item.claDate+' '+item.startTime+'-'+item.endTime}}</text>
<text class="txt">教室{{item.roomName}}</text>
</view>
</view>
<view class="obtn">
<view class="omoney"></view>
<!-- 1待上课2预约中3待评价 4已完成 5已取消-->
<!-- 描述:0->预约中;1->教练确认;2->店长确认/预约成功/待上课 3->已取消;4->已完成/待评价; -->
<button type="primary" class="conbtn" @click="gototeacher(item)"></button>
<button v-if="item.orderstate==2||item.orderstate==1" type="primary" class="cancelbtn" :data-id="item.courseTimeId" @click="cancelkcdo"></button>
<button v-if="item.orderstate==0" type="primary" class="cancelbtn" :data-id="item.courseTimeId" @click="cancelyydo"></button>
<button v-if="item.orderstate==0" type="primary" class="paybtn" :data-id="item.courseTimeId" @click="checkdo($event,item)"></button>
<button v-if="item.orderstate==4" type="primary" class="viewbtn" :data-id="item.courseTimeId" @click="orderdo($event,item)"></button>
<button v-if="item.orderstate==4" type="primary" class="gzbtn" :data-id="item.courseTimeId" @click="gotoevaluate($event,item)"></button>
</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>
<script>
import { myCache,getRemoteFile } from '../../utils/utils.js';
import openlogin from "../components/openlogin.vue";
export default {
components: {
openlogin
},
data() {
return {
openId:"",
phone:"",
userid:"",
loadStatus:"more", // loading noMore
list:[],
};
},
onLoad(option) {
myCache('courserefresh',0);
this.loadData();
},
onShow(option){
//
if(myCache('courserefresh')){
this.loadData();
myCache('courserefresh',0);
}
},
onReady(){
this.openId = myCache('openId');
var user = myCache('user');
this.userid = user.userid? user.userid:'';
this.phone = user.userphone;
if(this.userid==""||this.userid=="0"){
uni.navigateTo({
url: `/pages/login/login`
});
}
},
onPullDownRefresh() {
setTimeout(()=>{
uni.stopPullDownRefresh()
},100);
},
methods: {
getimgRemoteFile(img){
if(img){
img=img.split(',')[0];
return getRemoteFile(img)
}
else{
return require("@/static/image/theme/p1.jpg")
}
},
getPhoneNumber(e){
if(e.phone){
this.phone = e.phone
}
if(e.userid){
this.userid = e.userid
}
},
async getOrderList() {
if(this.loadStatus!=="noMore")
{
uni.showLoading({
title: '数据加载中...'
});
const {data: res} = await uni.$http.get('/api/my/appointmentListForTeacher');
if(res&&res.data){
//
this.loadStatus="noMore";
this.list=res.data;
this.$forceUpdate();
}
else{
this.loadStatus="noMore";
this.$forceUpdate();
}
}
},
loadData(){
console.log('loadData');
//
if(this.loadStatus=="more") {
this.loadStatus="loading";
setTimeout(() => {
this.getOrderList();
}, 300);
}
},
gotoInfo(id){
//
uni.navigateTo({
url: `/pages/book/bookinfo?id=${id}`
});
},
//
gototeacher(item){
var data={
id:item.id,
name:"教练A"
}
//
var data=encodeURIComponent(JSON.stringify(data));
uni.navigateTo({
url: `/pages/teacher/chat?data=${data}`
})
},
//
gotoevaluate(item){
var data=encodeURIComponent(JSON.stringify(item));
uni.navigateTo({
url: `/pages/book/bookpj?data=${data}`
});
},
iflogin(){
this.openId = myCache('openId');
var user = myCache('user');
this.userid = user.userid? user.userid:'';
this.phone = user.userphone;
if(this.userid==""||this.userid=="0"||this.phone==""){
uni.navigateTo({
url: `/pages/login/login`
});
return false;
}
else{
return true;
}
},
//
orderdo(e,item){
console.log(id,item);
var that = this;
//
uni.showModal({
title: '提示',
content: '确定再次预约吗?',
cancelText: '取消',
confirmText: '确定',
success: ress => {
if (ress.confirm) {
that.checkdodo(id,item);
}
}
});
},
//
async orderdodo(id,item){
var param={
"courseTimeId": item.courseTimeId
};
uni.showToast({
title: '再次预约中...',
icon: 'success',
duration: 2000
});
const {data: res} = await uni.$http.post('/api/course/bookCourse', param);
if(res.success){
uni.showToast({
title: '上课已预约!',
icon: 'success',
duration: 2000
});
//
this.loadData();
}
else{
// uni.showToast({
// title: res.msg? res.msg:'',
// icon: 'error',
// duration: 2000
// });
uni.showModal({
title: '提示',
content: res.message? res.message:'课程预约失败!',
cancelText: '取消',
confirmText: '确定',
success: ress => {
if (ress.confirm) {
}
}
});
}
},
//
checkdo(e,item){
console.log(e);
var id= e.currentTarget.dataset.id;
var that = this;
//
uni.showModal({
title: '提示',
content: '确定上课吗?',
cancelText: '取消',
confirmText: '确定',
success: ress => {
if (ress.confirm) {
that.checkdodo(id,item);
}
}
});
},
//
async checkdodo(id,item){
var param={
"courseTimeId": item.courseTimeId,
"startTime": item.startTime,
"endTime": item.endTime
};
uni.showToast({
title: '确定上课中...',
icon: 'success',
duration: 2000
});
const {data: res} = await uni.$http.post('/api/my/confirmClass', param);
if(res.msg=="successed"){
uni.showToast({
title: '上课已确认!',
icon: 'success',
duration: 2000
});
//
this.loadData();
}
else{
uni.showToast({
title: res.msg? res.msg:'上课确认失败!',
icon: 'error',
duration: 2000
});
}
},
//
cancelyydo(e){
console.log(e);
var id= e.currentTarget.dataset.id;
var that = this;
//
uni.showModal({
title: '提示',
content: '确定要取消预约吗?',
cancelText: '取消',
confirmText: '确定',
success: ress => {
if (ress.confirm) {
that.delyydo(id);
}
}
});
},
//
async delyydo(id){
var param={
"courseTimeId":id
};
uni.showToast({
title: '取消中...',
icon: 'success',
duration: 2000
});
const {data: res} = await uni.$http.post('/api/course/cancelCourse', param);
if(res.msg=="successed"){
uni.showToast({
title: '预约已取消!',
icon: 'success',
duration: 2000
});
//
this.loadData();
}
else{
uni.showToast({
title: res.msg? res.msg:'预约取消失败!',
icon: 'error',
duration: 2000
});
}
},
//
cancelkcdo(e){
console.log(e);
var id= e.currentTarget.dataset.id;
var that = this;
//
uni.showModal({
title: '提示',
content: '确定要取消课程吗?',
cancelText: '取消',
confirmText: '确定',
success: ress => {
if (ress.confirm) {
that.delkcdo(id);
}
}
});
},
//
async delkcdo(id){
var param={
"courseTimeId":id
};
uni.showToast({
title: '取消中...',
icon: 'success',
duration: 2000
});
const {data: res} = await uni.$http.post('/api/course/cancelCourse', param);
if(res.msg=="successed"){
uni.showToast({
title: '课程已取消!',
icon: 'success',
duration: 2000
});
//
this.loadData();
}
else{
uni.showToast({
title: res.msg? res.msg:'课程取消失败!',
icon: 'error',
duration: 2000
});
}
}
}
}
</script>
<style lang="scss" scoped>
.page {
padding: 0;
position: relative;
background-image: url('@/static/image/bg.jpg');
background-attachment: fixed;
background-size: cover;
background-position: center center;
min-height: calc(100vh - var(--window-top) - var(--window-bottom));
}
.olistcon{
padding: 0 20rpx 20rpx 20rpx;
.olist{
display: flex;
flex-direction: column;
.ocell{
font-size: 26rpx;
color:#747474;
padding: 10rpx 0;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
.red{
color:#ff3d0e;
}
.green{
color:#00cd00;
}
}
}
}
.swiper-box {
flex: 1;
height: calc(100vh - var(--window-top) - 130rpx) !important;
}
.swiper-item {
height: 100%;
}
.scrolllist{
height: 110rpx;
background: #FFF;
white-space: nowrap;
width: 100%;
}
.tabicl{
min-width: 130rpx;
height: 100rpx;
line-height: 100rpx;
position: relative;
display: inline-block;
overflow: hidden;
margin-right: 20rpx;
}
.ptext{
font-size: 30rpx;
text-align: center;
color: #000;
font-weight: 600;
height: 90rpx;
}
.cur .ptext{
color: #00a89b;
font-size: 33rpx;
font-weight: 600;
}
.cur .pline{
width: 40%;
height: 9rpx;
background: #00a89b;
border-radius: 6rpx;
opacity: 1;
margin-left: 30%;
}
.nodata{
width: 100%;
height: calc(100vh - 400rpx) !important;
line-height: calc(100vh) !important;
background-image: url('/static/image/no.png');
background-size: 52% auto;
background-repeat: no-repeat;
background-position: center;
font-size: 28rpx;
text-align: center;
color: #00a89b;
overflow: hidden;
}
.scell{
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
margin: 20rpx;
.oitem{
display: flex;
flex-direction: column;
background-color: #FFFFFF;
border-radius: 6rpx;
padding: 20rpx;
width: 100%;
margin-bottom: 20rpx;
.otop{
display: flex;
flex-direction: row;
padding: 10rpx 0 0;
height: 60rpx;
line-height: 60rpx;
width: 100%;
.hleft{
display: flex;
flex-direction: row;
flex:1;
align-items: center;
font-size: 30rpx;
color: #000;
}
.hright{
display: flex;
justify-content: flex-end;
align-items: center;
// <!--123 4 56-->
.ztip{
border-radius: 12rpx;
color:#1296db;
font-size: 26rpx;
padding: 0;
height: 40rpx;
line-height: 40rpx;
}
.jtip{
border-radius: 12rpx;
color:#feb467;
font-size: 26rpx;
padding: 0;
height: 40rpx;
line-height: 40rpx;
}
.htip{
border-radius: 12rpx;
color:#fc6900;
font-size: 26rpx;
padding: 0;
height: 40rpx;
line-height: 40rpx;
}
.hwtip{
border-radius: 12rpx;
color:#FF0000;
font-size: 26rpx;
padding: 0;
height: 40rpx;
line-height: 40rpx;
}
.wtip{
border-radius: 12rpx;
color:#43cca4;
font-size: 26rpx;
padding: 0;
height: 40rpx;
line-height: 40rpx;
}
.gtip{
border-radius: 12rpx;
color:#0036D6;
font-size: 26rpx;
padding: 0;
height: 40rpx;
line-height: 40rpx;
}
.ftip{
border-radius: 12rpx;
color:#6A81F1;
font-size: 26rpx;
padding: 0;
height: 40rpx;
line-height: 40rpx;
}
.ctip{
border-radius: 12rpx;
color:#888;
font-size: 26rpx;
padding: 0;
height: 40rpx;
line-height: 40rpx;
}
}
}
.obtn{
display: flex;
flex-direction: row;
justify-content: flex-end;
border-top: 1rpx solid #eee;
padding: 20rpx 0 10rpx;
width: 100%;
.omoney{
display: flex;
flex:1;
height: 60rpx;
width: 100%;
color:#333;
align-items: center;
.omtip{
font-size: 36rpx;
color:rgb(252, 105, 0);
}
}
.cancelbtn{
background-color: #FFFFFF !important;
margin-left: 20rpx;
border-radius: 50rpx;
height: 50rpx;
line-height: 48rpx;
padding: 0 20rpx;
font-size: 24rpx;
color:#888;
border:1rpx solid #888;
}
.cancelbtn::after{
border:0 !important;
}
.viewbtn{
background-color: #FFFFFF !important;
margin-left: 20rpx;
border-radius: 50rpx;
border-radius: 50rpx;
height: 50rpx;
line-height: 48rpx;
padding: 0 20rpx;
font-size: 24rpx;
color:#6A81F1;
border:1rpx solid #6A81F1;
}
.viewbtn::after{
border:0 !important;
}
.pjbtn{
background-color: #FFFFFF !important;
margin-left: 20rpx;
border-radius: 50rpx;
border-radius: 50rpx;
height: 50rpx;
line-height: 48rpx;
padding: 0 20rpx;
font-size: 24rpx;
border:1rpx solid rgb(252, 105, 0);
color:rgb(252, 105, 0);
}
.pjbtn::after{
border:0 !important;
}
.conbtn{
background-color: #f3f4ef !important;
margin-left: 20rpx;
border-radius: 50rpx;
border-radius: 50rpx;
height: 50rpx;
line-height: 48rpx;
padding: 0 20rpx;
font-size: 24rpx;
border:1rpx solid #00a89b;
color:#595d4d;
}
.conbtn::after{
border:0 !important;
}
.paybtn{
background-color: #00a89b !important;
margin-left: 20rpx;
border-radius: 50rpx;
border-radius: 50rpx;
height: 50rpx;
line-height: 48rpx;
padding: 0 20rpx;
font-size: 24rpx;
border:1rpx solid #00a89b;
}
.paybtn::after{
border:0 !important;
}
.gzbtn{
background-color: #f5aa00 !important;
margin-left: 20rpx;
border-radius: 50rpx;
height: 50rpx;
line-height: 48rpx;
padding: 0 20rpx;
font-size: 24rpx;
border:1rpx solid #f5aa00;
}
.gzbtn::after{
border:0 !important;
}
.gzbtn{
background-color: #f5aa00 !important;
margin-left: 20rpx;
border-radius: 50rpx;
height: 50rpx;
line-height: 48rpx;
padding: 0 20rpx;
font-size: 24rpx;
border:1rpx solid #f5aa00;
}
.gzbtn::after{
border:0 !important;
}
}
.oscon{
margin:20rpx 0;
border-radius: 16rpx;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
.osimg{
width: 120rpx;
height: 120rpx;
border-radius: 10rpx;
}
.osname{
display: flex;
flex: 1;
display: flex;
flex-direction: column;
margin-left: 26rpx;
.ntxt{
font-size: 28rpx;
color:#000;
line-height: 36rpx;
margin-bottom: 8rpx;
}
.txt{
font-size: 24rpx;
color:#666;
}
}
.osprice{
display: flex;
justify-content: flex-end;
margin-right: 10rpx;
font-size: 30rpx;
color:#666;
}
}
}
.sitem {
display: flex;
flex-direction: column;
flex: 1;
background-color: #FFFFFF;
/*设置最小宽度,才会让元素排不下,导致换行排列*/
min-width: calc((100% - 20rpx) / 2);
max-width: calc((100% - 20rpx) / 2);
margin-right:5rpx;
margin-left:5rpx;
margin-bottom: 10rpx;
border-radius: 16rpx;
.simg{
width: 100%;
height: 360rpx;
.img{
width: 100%;
height: 100%;
border-radius: 16rpx 16rpx 0 0;
}
}
.sname{
font-size: 30rpx;
font-weight: 600;
color: rgb(29, 29, 29);
padding: 16rpx;
}
.sinfo{
font-size: 26rpx;
color:rgb(116, 116, 116);
padding: 0 16rpx;
height: 60rpx;
line-height: 30rpx;
overflow: hidden;
position: relative;
text-overflow: ellipsis;
display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:2;
}
.sprices{
padding: 0 16rpx 20rpx 16rpx;
font-size: 36rpx;
color:rgb(252, 105, 0);
border-radius: 0 0 16rpx 16rpx;
.cx{
font-size: 28rpx;
color:rgb(116, 116, 116);
text-decoration: line-through;
margin-left: 20rpx;
}
}
}
}
</style>

@ -11,7 +11,7 @@
<!-- 购物车商品 -->
<view class="cart-list" v-if="cartnum > 0" v-for="(cell,ii) in carts" :key="ii+'shop'">
<view class="cart-shop">
<u-checkbox @change="checkedcell(ii)" v-model="cell.check" size="40" shape="circle" active-color="#89965f" class="checkall"></u-checkbox>
<u-checkbox @change="checkedcell(ii)" v-model="cell.check" size="40" shape="circle" active-color="#00a89b" class="checkall"></u-checkbox>
<view class="cart-shop-name">
{{cell.storeName}}
</view>
@ -31,7 +31,7 @@
>
<view class="item u-border-bottom">
<u-checkbox-group @change="checkboxChange(index,ii)" width="40rpx">
<u-checkbox v-model="item.check" size="40" shape="circle" active-color="#89965f" class="checkbox"></u-checkbox>
<u-checkbox v-model="item.check" size="40" shape="circle" active-color="#00a89b" class="checkbox"></u-checkbox>
</u-checkbox-group>
<view class="cart-img">
<image class="cimg" mode="widthFix" :src="getimgRemoteFile(item.pic)" @click.stop="$u.throttle(gotoDetail(item.productId), 2000)"></image>
@ -93,7 +93,7 @@
</view>
</view>
<view class="bottom" v-if="carts.length > 0">
<u-checkbox @change="checkedAll" v-model="checked" size="40" shape="circle" active-color="#89965f" class="checkall"><span>全选</span></u-checkbox>
<u-checkbox @change="checkedAll" v-model="checked" size="40" shape="circle" active-color="#00a89b" class="checkall"><span>全选</span></u-checkbox>
<text class="price fill" v-if="btnType === 'edit'">
<text class="sml">合计:</text>
{{ totalPrice }}
@ -173,7 +173,7 @@
// u-button
customStyle: {
color: '#fff',
backgroundColor: '#89965f',
backgroundColor: '#00a89b',
margin: '0',
padding: '0 20rpx',
width: '200rpx',
@ -646,7 +646,7 @@
}
//
.status_bar {
background-color: #89965f;
background-color: #00a89b;
}
.page-header {
position: fixed;
@ -656,7 +656,7 @@
display: flex;
color: #fff;
font-size: 36rpx;
background-color: #89965f;
background-color: #00a89b;
align-items: center;
.text-center {
width: 100%;
@ -708,7 +708,7 @@
}
.cart-lose-btn{
font-size: 26rpx;
color: #89965f;
color: #00a89b;
}
.cart-shop{
display: flex;
@ -872,8 +872,8 @@
line-height: 64rpx;
color: #ffffff;
font-size: 26rpx;
background: -webkit-linear-gradient(to right, rgba(137, 150, 95, 0.3) 0%, rgba(137, 150, 95, 1) 100%);
background: linear-gradient(to right, rgba(137, 150, 95, 0.3) 0%, rgba(137, 150, 95, 1) 100%);
background: -webkit-linear-gradient(to right, rgba(137, 150, 95, 0.3) 0%, rgba(0, 168, 155, 1) 100%);
background: linear-gradient(to right, rgba(137, 150, 95, 0.3) 0%, rgba(0, 168, 155, 1) 100%);
}
}
.bottom {

@ -1,17 +1,20 @@
<template>
<view class="page">
<view class="fixhead" :style="{ marginTop: geStatusBarHeight() + 'px'}">
<selShop :showName="false" :showQR="true" :shop="shop" @changeArea="changeArea"></selShop>
<selShop :showName="false" :showQR="true" :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>
<view class="pline"></view>
</view>
</scroll-view>
<swiper class="swiper-box" :duration="300" :current="tabCurrentIndex" @animationfinish="animationfinish">
<swiper class="swiper-box" :duration="300" :current="tabCurrentIndex" @animationfinish="animationfinish" @change="handleChange">
<swiper-item class="swiper-item" v-for="(tabItem,index) in list" :key="tabItem.id">
<scroll-view v-if="index==1" scroll-y style="height: 100%;width: 100%;">
<!-- 了解场馆 -->
<scroll-view v-if="list[index].id==3" scroll-y style="height: 100%;width: 100%;">
<scroll-view class="scrolltab" scroll-x="true" scroll-with-animation>
<view class="tab" :class="0==tabIndex?'cur':''" @tap="tabSelectC" :data-id="0">
企业介绍
@ -33,33 +36,34 @@
<view v-if="2==tabIndex" class="adrcontent">
<view class="adrcon" v-for="(item, i) in shoplist" :key="i">
<view class="adrow">
<uni-icons type="shop-filled" color="#89965f" size="25"></uni-icons>
<uni-icons type="shop-filled" color="#00a89b" size="25"></uni-icons>
<view class="txt">{{item.storeName}}</view>
<image class="qrimg" src="/static/image/qr.png" mode="aspectFit"></image>
<uni-icons type="phone" color="#89965f" size="25" @click="gotoPhone(item.phone)" ></uni-icons>
<uni-icons type="phone" color="#00a89b" size="25" @click="gotoPhone(item.phone)" ></uni-icons>
</view>
<view class="adrow">
<uni-icons type="map-pin-ellipse" color="#89965f" size="24"></uni-icons>
<uni-icons type="map-pin-ellipse" color="#00a89b" size="24"></uni-icons>
<view class="atxt">{{item.address}}</view>
<uni-icons type="paperplane" color="#868c99" size="25" @click="gotoAddress(item.address)"></uni-icons>
</view>
</view>
<!-- <view class="adrcon">
<view class="adrow">
<uni-icons type="shop-filled" color="#89965f" size="25"></uni-icons>
<uni-icons type="shop-filled" color="#00a89b" size="25"></uni-icons>
<view class="txt">淮海中路店</view>
<image class="qrimg" src="/static/image/qr.png" mode="aspectFit"></image>
<uni-icons type="phone" color="#89965f" size="25"></uni-icons>
<uni-icons type="phone" color="#00a89b" size="25"></uni-icons>
</view>
<view class="adrow">
<uni-icons type="map-pin-ellipse" color="#89965f" size="24"></uni-icons>
<uni-icons type="map-pin-ellipse" color="#00a89b" size="24"></uni-icons>
<view class="atxt">上海市黄浦区淮海中路918号</view>
<uni-icons type="paperplane" color="#868c99" size="25"></uni-icons>
</view>
</view> -->
</view>
</scroll-view>
<scroll-view v-else-if="index==2" scroll-y style="height: 100%;width: 100%;">
<!-- 教练风采 -->
<scroll-view v-else-if="list[index].id==5" scroll-y style="height: 100%;width: 100%;">
<view class="tcard" v-for="(item, i) in tabItem.slist" :key="i" @tap="gotoTeacher(item)">
<view class="limg imgload">
<image v-if="item.avatar" :src="getimgRemoteFile(item.avatar)" mode="aspectFill"></image>
@ -75,11 +79,12 @@
</view>
<uni-load-more iconType="circle" :status="tabItem.loadStatus" />
</scroll-view>
<scroll-view v-else-if="index==7" scroll-y style="height: 100%;width: 100%;">
<!-- 健康指数体质测评 -->
<scroll-view v-else-if="list[index].id==2||list[index].id==10" scroll-y style="height: 100%;width: 100%;">
<view class="scontent">
<uni-forms ref="valiForm" :modelValue="valiFormData">
<uni-forms-item label="性别" labelWidth="180rpx" required name="contact">
<uni-data-checkbox v-model="valiFormData.sex" :localdata="sexs" />
<uni-data-checkbox v-model="valiFormData.gender" :localdata="sexs" />
</uni-forms-item>
<uni-forms-item label="年龄" labelWidth="180rpx" required name="phone">
<uni-easyinput type="number" v-model="valiFormData.age" maxlength="12" placeholder="请输入年龄" />
@ -94,6 +99,7 @@
<button type="primary" class="btn" @click="submit('valiForm')"></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">
@ -116,6 +122,7 @@
</view>
<uni-load-more iconType="circle" :status="tabItem.loadStatus" />
</scroll-view>
</swiper-item>
</swiper>
@ -144,126 +151,75 @@
shopid:myCache('myshopid')?myCache('myshopid'):'',
shop:myCache('myshop')?myCache('myshop'):'',
tabIndex: 0,
id:1,
sexs: [{
text: '男',
value: 0
}, {
text: '女',
value: 1
}, {
text: '保密',
value: 2
text: '男性',
value: "male"
},
{
text: '女性',
value: "female"
}],
valiFormData: {//
id: null,
sex: '',
gender: '',
age: '',
height: '',
weight: '',
},
//tabs
list:[
{
name:"瑜伽传承",
id:1,
loadStatus:'more',//'more', // 'noMore',
slist:[
list: myCache('sortCache'),
// [
// {
// name:"",
// id:1,
// name: "",
// info: `仿"".`,
// img: '../../static/image/theme/i2.jpg',
// num:101,
// date:'2025-06-20'
// loadStatus:'more',//'more', // 'noMore',
// slist:[]
// },
]
},
{
name:"了解场馆",
id:2,
loadStatus:'more',//'more', // 'noMore',
slist:[]
},
{
name:"教练风采",
id:3,
loadStatus:'more',//'more', // 'noMore',
slist:[
// {
// id:11,
// name: "Madeline ()",
// info: "",
// img: '../../static/image/theme/t2.png'
// name:"",
// id:2,
// loadStatus:'more',//'more', // 'noMore',
// slist:[]
// },
]
},
{
name:"练习瞬间",
id:4,
loadStatus:'more',//'more', // 'noMore',
slist:[
// {
// id:1,
// name: "",
// info: ``,
// img: '../../static/image/theme/t2.png',
// num:151,
// date:'2025-06-24'
// name:"",
// id:3,
// loadStatus:'more',//'more', // 'noMore',
// slist:[]
// },
]
},
{
name:"瑜伽欣赏",
id:5,
loadStatus:'more',//'more', // 'noMore',
slist:[
// {
// id:1,
// name: "",
// info: `线`,
// img: '../../static/image/theme/i3.jpg',
// num:56,
// date:'2025-06-24'
// name:"",
// id:4,
// loadStatus:'more',//'more', // 'noMore',
// slist:[]
// },
]
},
{
name:"瑜伽常识",
id:6,
loadStatus:'more',//'more', // 'noMore',
slist:[
// {
// id:1,
// name: "",
// info: `使, `,
// img: '../../static/image/theme/i4.jpg',
// num:516,
// date:'2025-06-22'
// name:"",
// id:5,
// loadStatus:'more',//'more', // 'noMore',
// slist:[]
// },
]
},
{
name:"健康饮食",
id:7,
loadStatus:'more',//'more', // 'noMore',
slist:[
// {
// id:1,
// name: "",
// info: `使, `,
// img: '../../static/image/theme/i4.jpg',
// num:516,
// date:'2025-06-22'
// name:"",
// id:6,
// loadStatus:'more',//'more', // 'noMore',
// slist:[]
// },
]
},
{
name:"健康指数",
id:8,
loadStatus:'noMore',//'more', // 'noMore',
slist:[]
}
],
// {
// name:"",
// id:7,
// loadStatus:'more',//'more', // 'noMore',
// slist:[
// ]
// },
// {
// name:"",
// id:8,
// loadStatus:'noMore',//'more', // 'noMore',
// slist:[]
// }
// ],
html1:`三朵蘭瑜伽机构由从事瑜伽行业18年的全国知名瑜伽导师冉洪涛老师创办并带领一批行业内瑜伽教学经验8年以上的优秀瑜伽老师成立核心课程研发团队立足于将在世界传承几千年的瑜伽修炼体系精髓进行实践化和实用化结合中医的经络学和中医理疗方法针对现代人体质和容易出现的健康问题研发出多套经典的瑜伽实用课程经过几年在全国的推广和瑜伽会员的习练测试已经让越来越多的人恢复了健康和活力
<br>三朵蘭以预防未病助人健康为己任一直为瑜伽而传播为更多人保持和恢复健康助力让更多人通过练习瑜伽拥有健康的体魄平和宁静的内心幸福和快乐的生活<br>
`,
@ -271,15 +227,9 @@
<br>三朵蘭以预防未病助人健康为己任一直为瑜伽而传播为更多人保持和恢复健康助力让更多人通过练习瑜伽拥有健康的体魄平和宁静的内心幸福和快乐的生活<br>
`,
shoplist:[],
shopdetail:{
storeName:"",
address:"",
id:"",
phone:"",
},
//
rules: {
sex: {
gender: {
rules: [{
required: true,
errorMessage: '请选择性别'
@ -308,18 +258,13 @@
},
onLoad(option) {
if(option.id||option.id==0){
if(parseInt(option.id)==0){
this.tabCurrentIndex=0;
this.id=option.id;
}
else{
this.tabCurrentIndex=parseInt(option.id);
}
this.scrollLeft = (this.tabCurrentIndex - 1) * 90;
}
//
this.loadData();
//
this.getSort();
},
onShow(){
this.openId = myCache('openId');
var user = myCache('user');
this.userid = user.userid? user.userid:'';
@ -351,6 +296,29 @@
},100);
},
methods: {
async getSort() {
//
const {data: res} = await uni.$http.get('/api/index/getIndex');
if (res&&res.data) {
myCache('sortCache',res.data);
this.list=[];
res.data.forEach((cell,ii)=>{
if(cell.id==this.id){
this.tabCurrentIndex=ii;
this.$forceUpdate();
}
this.list.push({
name:cell.name,
id:cell.id,
loadStatus:'more',//'more', // 'noMore',
slist:[]
});
this.$forceUpdate();
});
//
this.loadData();
}
},
gotoPhone(phone){
//#ifdef MP-WEIXIN
uni.makePhoneCall({
@ -380,60 +348,11 @@
this.shop=item.storeName;
this.shopid=item.id;
//
this.list=[
{
name:"瑜伽传承",
id:1,
loadStatus:'more',//'more', // 'noMore',
slist:[]
},
{
name:"了解场馆",
id:2,
loadStatus:'noMore',//'more', // 'noMore',
slist:[]
},
{
name:"教练风采",
id:3,
loadStatus:'more',//'more', // 'noMore',
slist:[]
},
{
name:"练习瞬间",
id:4,
loadStatus:'more',//'more', // 'noMore',
slist:[]
},
{
name:"瑜伽欣赏",
id:5,
loadStatus:'more',//'more', // 'noMore',
slist:[]
},
{
name:"瑜伽常识",
id:6,
loadStatus:'more',//'more', // 'noMore',
slist:[]
},
{
name:"健康饮食",
id:7,
loadStatus:'more',//'more', // 'noMore',
slist:[]
},
{
name:"健康指数",
id:8,
loadStatus:'noMore',//'more', // 'noMore',
slist:[]
}
];
this.list=[];
this.html1=``;
this.html2=``;
this.$forceUpdate();
this.loadData();
this.getSort();
},
iflogin(){
this.openId = myCache('openId');
@ -461,48 +380,50 @@
async getList() {
if(this.list[this.tabCurrentIndex].loadStatus!=="noMore")
{
uni.showLoading({
title: '数据加载中...'
});
var para={
visitStore:this.shopid
}
var url="/api/inherit/getList";
if(this.tabCurrentIndex==0){
//
if(this.list[this.tabCurrentIndex].id==1){
// ()
url="/api/inherit/getList";
}
else if(this.tabCurrentIndex==1){
else if(this.list[this.tabCurrentIndex].id==3){
//
url="/api/store/getList";
}
else if(this.tabCurrentIndex==2){
else if(this.list[this.tabCurrentIndex].id==5){
//
url="/api/context/getList";
}
else if(this.tabCurrentIndex==3){
//
else if(this.list[this.tabCurrentIndex].id==6){
// ()
url="/api/moments/getList";
}
else if(this.tabCurrentIndex==4){
else if(this.list[this.tabCurrentIndex].id==11){
//
url="/api/appreciate/getList";
}
else if(this.tabCurrentIndex==5){
else if(this.list[this.tabCurrentIndex].id==12){
//
url="/api/sense/getList";
}
else if(this.tabCurrentIndex==6){
//
else if(this.list[this.tabCurrentIndex].id==9){
// ()
url="/api/healthy/getList";
}
else{
return false;
}
uni.showLoading({
title: '数据加载中...'
});
//
const {data: res} = await uni.$http.post(url, para);
if(res.data){
this.list[this.tabCurrentIndex].loadStatus="noMore";
if(this.tabCurrentIndex==1){
if(this.list[this.tabCurrentIndex].id==3){
console.log(res.data)
//
var companyIntroduction=res.data&&res.data.companyIntroduction?res.data.companyIntroduction:'';
@ -515,6 +436,7 @@
}
else{
this.list[this.tabCurrentIndex].slist=res.data;
this.$forceUpdate();
}
this.$forceUpdate();
}
@ -534,11 +456,79 @@
}
},
tabSelect(e) {
console.log(e);
var that=this;
console.log("tabSelect");
if(this.list[e.currentTarget.dataset.id].id==4){
//
if(this.userid==""||this.userid=="0"){
this.$refs.loginId.open();
}
else{
//
uni.navigateTo({
url: `/pages/user/courselist`
});
}
}
else if(this.list[e.currentTarget.dataset.id].id==7){
// (线)
uni.reLaunch({
url: `/pages/product/list?id=2`
});
}
else if(this.list[e.currentTarget.dataset.id].id==8){
//
uni.reLaunch({
url: `/pages/product/list`
});
}
else{
this.tabCurrentIndex = e.currentTarget.dataset.id;
this.scrollLeft = (e.currentTarget.dataset.id - 1) * 90;
if(this.tabCurrentIndex==7){
this.$forceUpdate();
}
},
animationfinish({ detail: { current } }) {
console.log("animationfinish")
// this.tabCurrentIndex = current;
},
handleChange(e) {
//animationfinish
console.log("handleChange");
if(this.list[e.detail.current].id==4){
//
if(this.userid==""||this.userid=="0"){
this.$refs.loginId.open();
}
else{
//
uni.navigateTo({
url: `/pages/user/courselist`
});
}
}
else if(this.list[e.detail.current].id==7){
// (线)
uni.reLaunch({
url: `/pages/product/list?id=2`
});
}
else if(this.list[e.detail.current].id==8){
//
uni.reLaunch({
url: `/pages/product/list`
});
}
else{
this.tabCurrentIndex = e.detail.current;
this.$forceUpdate();
this.tabChangeDo();
}
},
tabChangeDo(){
this.scrollLeft = (this.tabCurrentIndex - 1) * 90;
if(this.list[this.tabCurrentIndex].id==2||this.list[this.tabCurrentIndex].id==10){
var that=this;
//
setTimeout(() => {
console.log(that.$refs.valiForm)
if(that.$refs.valiForm){
@ -546,23 +536,22 @@
}
}, 1000);
}
else{
//
// this.list[this.tabCurrentIndex].loadStatus="more";
// this.list[this.tabCurrentIndex].slist=[];
this.loadData();
}
},
tabSelectC(e) {
console.log(e)
console.log("tabSelectC")
this.tabIndex = e.currentTarget.dataset.id;
},
animationfinish({ detail: { current } }) {
this.tabCurrentIndex = current;
this.loadData();
},
gotoDetail(item,name,type){
gotoDetail(item,name,index){
//
item["name"]=name;
var data=encodeURIComponent(JSON.stringify(item));
var type=this.list[index].id;
uni.navigateTo({
url: `/pages/category/detail?data=${data}&type=${type}`
});
@ -584,27 +573,58 @@
},
async savedo(){
try{
const {data: res} = await uni.$http.post('/yoga/count', this.valiFormData);
if(res){
uni.showToast({
title: '计算成功!',
icon: 'success',
duration: 2000
})
const {data: res} = await uni.$http.post('/api/healthy/calculateBim', this.valiFormData);
if(res&&res.success){
var bim=res.data?parseFloat(res.data):0;
if(bim){
var msg="";
if(bim<=18.5){
msg="您的体重过轻请联系馆主或教练领取A方案!";
}
else if(bim>18.5&&bim<=24){
msg="太棒了您的体重非常健康请联系馆主或教练领取B方案保持!";
}
else if(bim>24&&bim<28){
msg="您的体重超重请联系馆主或教练领取C方案保持!";
}
else if(bim>=28){
msg="您的体重肥胖请联系馆主或教练领取D方案保持!";
}
uni.showModal({
title: '提示',
content: msg,
cancelText: '取消',
confirmText: '确定',
success: ress => {
if (ress.confirm) {
}
}
});
}
else{
uni.showToast({
title: '计算失败!请重试',
icon: 'error',
duration: 2000
})
uni.showModal({
title: '提示',
content: '计算异常!请重试!',
cancelText: '取消',
confirmText: '确定'
});
}
}
else{
uni.showModal({
title: '提示',
content: res.message? res.message:'计算异常!请重试!',
cancelText: '取消',
confirmText: '确定'
});
}
}
catch{
uni.showToast({
title: res.msg? res.msg:'计算失败!',
icon: 'error',
duration: 2000
uni.showModal({
title: '提示',
content: '计算异常!请重试!',
cancelText: '取消',
confirmText: '确定'
});
}
@ -682,8 +702,8 @@
}
.tab.cur{
color: #000;
background-color: #f3f4ee;
border: 2rpx solid #89965f;
background-color: #e4f9f7;
border: 2rpx solid #00a89b;
}
}
.btn{
@ -695,7 +715,7 @@
width: 314rpx;
height: 76rpx;
line-height: 76rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
border-radius: 10rpx;
opacity: 1;
@ -766,28 +786,28 @@
width: 100%;
}
.tabicl{
width: 180rpx;
min-width: 160rpx;
height: 100rpx;
line-height: 100rpx;
position: relative;
display: inline-block;
overflow: hidden;
margin-left: 20rpx;
margin-left: 12rpx;
}
.ptext{
font-size: 33rpx;
font-size: 30rpx;
text-align: center;
color: #333333;
color: #000;
height: 90rpx;
}
.cur .ptext{
color: #000;
font-size: 38rpx;
font-size: 34rpx;
}
.cur .pline{
width: 40%;
height: 9rpx;
background: #89965f;
background: #00a89b;
border-radius: 6rpx;
opacity: 1;
margin-left: 30%;
@ -802,7 +822,7 @@
background-position: center;
font-size: 28rpx;
text-align: center;
color: #89965f;
color: #00a89b;
overflow: hidden;
}
.tcard {
@ -886,11 +906,13 @@
.txt1{
font-size: 26rpx;
margin-right: 20rpx;
margin-left: 4rpx;
width: 50rpx;
}
.txt{
font-size: 26rpx;
margin-right: 20rpx;
margin-left: 4rpx;
}
}
.tlinfo {

@ -147,28 +147,27 @@
};
try{
var url="/api/inherit/getOne";
if(this.type==0){
if(this.type==1){
//
url="/api/inherit/getOne";
}
else if(this.type==3){
//
else if(this.type==6){
// ()
url="/api/moments/getOne";
}
else if(this.type==4){
else if(this.type==11){
//
url="/api/appreciate/getOne";
}
else if(this.type==5){
else if(this.type==12){
//
url="/api/sense/getOne";
}
else if(this.type==6){
//
else if(this.type==9){
// ()
url="/api/healthy/getOne";
}
const {data: res1} = await uni.$http.post(url,params);
console.log(res1);
if (res1.success) {
if(!res1.data){
uni.showModal({
@ -278,7 +277,7 @@
width: 100%;
align-items: center;
.leftarr{
background-color: #b9af9d;
background-color: #00a89b;
padding: 10rpx;
border-radius: 10rpx;
}
@ -370,7 +369,7 @@
width: 314rpx;
height: 76rpx;
line-height: 76rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
border-radius: 10rpx;
opacity: 1;

@ -285,7 +285,7 @@ export default {
}
.price{
line-height: 1;
color: #89965f;
color: #00a89b;
.txt{
font-size: 30rpx;
}
@ -334,8 +334,8 @@ export default {
margin-bottom: 20rpx;
}
.spcli.cur{
background: #f3f4ee;
border: 1rpx solid #89965f;
background: #e4f9f7;
border: 1rpx solid #00a89b;
font-weight: 600;
}
.spclilong{
@ -354,8 +354,8 @@ export default {
justify-content: space-between;
}
.spclilong.cur{
background: #f3f4ee;
border: 1rpx solid #89965f;
background: #e4f9f7;
border: 1rpx solid #00a89b;
font-weight: 600;
}
}
@ -382,7 +382,7 @@ export default {
width: 690rpx;
height: 76rpx;
line-height: 76rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
margin: 0 30rpx 30rpx;
border-radius: 10rpx;
@ -400,7 +400,7 @@ export default {
width: 690rpx;
height: 76rpx;
line-height: 76rpx;
background: #55690e;
background: #468a73;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
margin: 0 30rpx 30rpx;
border-radius: 10rpx;

@ -155,8 +155,8 @@ export default {
}
.btn2{
width: 180rpx;
background-color: #89965f;
border:1rpx solid #89965f;
background-color: #00a89b;
border:1rpx solid #00a89b;
font-size: 28rpx;
height: 60rpx;
line-height: 60rpx;

@ -2,7 +2,7 @@
<view>
<view class="stcon">
<view v-show="showName" class="textop">
瑜伽APP
瑜伽
</view>
<view v-show="showQR" class="qrimg" @tap="ViewImage()">
<image :src="qr" mode="aspectFit"></image>
@ -21,15 +21,16 @@
<view class="htitle">附近有{{areas.length}}家门店可提供服务</view>
<view class="hinfo">(请点击选择服务门店)</view>
<view class="rclose" @tap="_cancel">
<uni-icons type="close" size="30" color="#8b9565"></uni-icons>
<uni-icons type="close" size="30" color="#00a89b"></uni-icons>
</view>
</view>
<view class="selcon">
<view class="sitem" v-for="(item,index) in areas" :key="index" :class="item.storeName==shop?'cur':''">
<view class="stimg">
<image class="stimg" :src="getimgRemoteFile(item.banner)" mode="aspectFill"></image>
</view>
<view class="sname">
<view v-for="(item,index) in areas" :key="index" >
<view class="sitem" :class="item.id==shopid?'cur':''">
<uni-icons v-if="item.expanded" type="down" size="20" color="#666" @click="expandDO(index)"></uni-icons>
<uni-icons v-else type="right" size="20" color="#666" @click="expandDO(index)"></uni-icons>
<image class="stimg" :src="getimgRemoteFile(item.banner)" mode="aspectFill" @click="expandDO(index)"></image>
<view class="sname" @click="expandDO(index)">
<view class="stxt">
{{item.storeName}}
</view>
@ -37,13 +38,34 @@
{{item.address}}
</view>
</view>
<view class="selbtn" v-if="item.storeName==shop" @click="changeArea(item)" >
<view class="selbtn" v-if="item.id==shopid" @click="changeArea(item)" >
<image class="selimg" src="/static/image/sel.png" mode="aspectFill"></image>
</view>
<view class="selbtn" v-else @click="changeArea(item)" >
<image class="selimg" src="/static/image/nosel.png" mode="aspectFill"></image>
</view>
</view>
<view v-if="item.expanded">
<view class="sitemcell" v-for="(cell,ii) in item.childList" :key="ii" :class="cell.storeName==shop?'cur':''">
<image class="stimg" :src="getimgRemoteFile(cell.banner)" mode="aspectFill"></image>
<view class="sname">
<view class="stxt">
{{cell.storeName}}
</view>
<view class="sadr">
{{cell.address}}
</view>
</view>
<view class="selbtn" v-if="cell.id==shopid" @click="changeArea(cell)" >
<image class="selimg" src="/static/image/sel.png" mode="aspectFill"></image>
</view>
<view class="selbtn" v-else @click="changeArea(cell)" >
<image class="selimg" src="/static/image/nosel.png" mode="aspectFill"></image>
</view>
</view>
</view>
</view>
</view>
</view>
</uni-popup>
@ -63,6 +85,10 @@ export default {
type: Boolean,
default: false,
},
shopid: {
type: Number,
default: 0,
},
shop: {
type: String,
default: "",
@ -72,21 +98,8 @@ export default {
return {
qr:"../../static/image/qr.png",
areas: myCache('shoplist'), //
// [
// {
// value_name:'',
// value_address:'198',
// value_img:'',
// value_value:'1',
// value_qr:"../../static/image/qr.png",
// },
// ], //
};
},
mounted() {
console.log('mounted')
this.loadshop();
},
methods: {
getimgRemoteFile(img){
if(img){
@ -105,6 +118,8 @@ export default {
this.$emit("changeArea", item);
},
_show() {
this.areas= myCache('shoplist');
this.$forceUpdate();
this.$refs.share.open();
},
_hide() {
@ -121,16 +136,17 @@ export default {
current:0
});
},
async loadshop(){
//
const {data: res} = await uni.$http.post('/api/index/getStores');
if(res.data&&res.data.length>0){
this.areas=res.data;
// console.log("areas",this.areas)
myCache('shoplist',res.data);
expandDO(index){
console.log(index)
if(this.areas[index].expanded){
this.areas[index].expanded=false;
this.$forceUpdate();
}
else{
this.areas[index].expanded=true;
this.$forceUpdate();
}
},
}
}
}
</script>
@ -185,7 +201,7 @@ export default {
.sitetxt{
font-size: 32rpx;
font-weight: 600;
color:#8b9565;
color:#00a89b;
margin-left: 12rpx;
display: -webkit-box;
-webkit-box-orient: vertical;
@ -251,18 +267,70 @@ export default {
height: 50rpx;
}
.sitem.cur{
background-color: #f3f4ef;
background-color: rgba(228, 249, 247, 0.8);
}
.sitem {
display: flex;
flex-direction: row;
background-color: #FFFFFF;
border-bottom: 1rpx solid #eeeeee;
padding: 30rpx 0;
margin: 0 30rpx;
padding: 20rpx 0 20rpx 10rpx;
margin: 10rpx 30rpx 0 30rpx;
align-items: center;
.stimg{
width: 80rpx;
height: 80rpx;
border-radius: 50rpx;
margin-left: 10rpx;
}
.selbtn{
width: 60rpx;
height: 60rpx;
display: flex;
justify-content: center;
align-items: center;
margin-right: 20rpx;
border-radius: 6rpx;
font-size: 26rpx;
color: #999;
margin-top: 16rpx;
}
.selimg{
width: 100%;
height: 100%;
}
.sname{
display: flex;
flex: 1;
justify-content: flex-start;
flex-direction: column;
padding: 10rpx 10rpx 0 10rpx;
margin-left: 12rpx;
.stxt{
font-size: 28rpx;
font-weight: 600;
color: rgb(29, 29, 29);
}
.sadr{
font-size: 26rpx;
color: #626464;
margin-top: 6rpx;
}
}
}
.sitemcell.cur{
background-color: rgba(228, 249, 247, 0.6);
}
.sitemcell {
display: flex;
flex-direction: row;
background-color: #F5F5F5;
padding: 20rpx 0 20rpx 12rpx;
margin: 0 30rpx 0 70rpx;
align-items: center;
.stimg{
width: 100rpx;
height: 100rpx;
width: 80rpx;
height: 80rpx;
border-radius: 50rpx;
margin-left: 10rpx;
}

@ -1,169 +0,0 @@
<template>
<view>
<!-- 选择门店 -->
<uni-popup ref="share" type="share">
<view class="allcon">
<view class="hcon">
<view class="htitle">选择门店 <view class="bottom-line"></view></view>
<view class="rclose" @tap="_cancel">
取消
</view>
</view>
<view class="selcon">
<view class="sitem" v-for="(item,index) in areas" :key="index">
<view class="sname">{{item.value_name}}</view>
<view class="selbtn" :class="item.value_name==city?'cur':''" @click="changeArea(item)" >选择</view>
</view>
</view>
</view>
</uni-popup>
</view>
</template>
<script>
import { myCache } from '../../utils/utils.js';
export default {
props: {
city: {
type: String,
default: myCache('mycity'),
},
},
data() {
return {
areas:[]
};
},
mounted() {
console.log('mounted')
this.loadarea();
},
computed:{
selcity(){
return this.city;
},
},
methods: {
_show() {
console.log('_show')
this.$refs.share.open();
},
_hide() {
this.$refs.share.close();
},
_cancel() {
this._hide();
this.$emit("cancel", "");
},
changeArea(item){
myCache('mycity',item.value_name);
this.$emit("change", item.value_name);
this._hide();
},
async loadarea(){
const {data: ress} = await uni.$http.get('/api/dict/CITY');
if(ress.data){
this.areas=ress.data;
}
},
}
}
</script>
<style lang="scss" scoped>
.allcon{
width: 750rpx;
/* #ifdef MP-ALIPAY */
height: calc(100vh/2 + 300rpx);
/* #endif */
/* #ifdef MP-WEIXIN */
height: calc(100vh - var(--window-top));
/* #endif */
/* #ifdef H5 */
height: calc(100vh - var(--window-top));
/* #endif */
overflow: hidden;
background-color: #FFFFFF;
margin: 0 auto;
}
.hcon{
display: flex;
flex-direction: row;
padding: 20rpx 20rpx 20rpx;
.htitle{
flex:1;
justify-content: flex-start;
font-size: 32rpx;
font-weight: 600;
letter-spacing: 5rpx;
padding-left: 10rpx;
}
.rclose{
width: 70rpx;
display: flex;
justify-content: flex-start;
font-size: 28rpx;
color:#949494;
}
}
.selcon{
padding: 0;
position: relative;
display: block;
overflow-y: auto;
/* #ifdef MP-ALIPAY */
height: calc(100vh/2 + 200rpx);
/* #endif */
/* #ifdef MP-WEIXIN */
height: calc(100vh - var(--window-top) - 120rpx);
/* #endif */
/* #ifdef H5 */
height: calc(100vh - var(--window-top) - var(--window-bottom) - 120rpx);
/* #endif */
.lineb{
height: 50rpx;
}
.sitem {
display: flex;
flex-direction: row;
background-color: #FFFFFF;
border-top: 1rpx solid #eeeeee;
margin: 16rpx 0;
.selbtn{
width: 100rpx;
height: 44rpx;
display: flex;
justify-content: center;
align-items: center;
margin-right: 20rpx;
background-color: #f0f0f0;
border-radius: 6rpx;
font-size: 26rpx;
color: #999;
margin-top: 16rpx;
}
.selbtn.cur{
background-color: rgb(30, 209, 162);
color: #FFF;
}
.sname{
display: flex;
flex: 1;
justify-content: flex-start;
align-items: center;
flex-direction: row;
font-size: 28rpx;
font-weight: 600;
color: rgb(29, 29, 29);
padding: 10rpx 10rpx 0 10rpx;
margin-left: 20rpx;
}
}
}
</style>

@ -75,9 +75,9 @@ export default {
display: flex;
align-items: center;
justify-content: center;
background-color: rgba(243, 244, 239, 0.8);
background-color: rgba(228, 249, 247, 0.8);
border-radius: 100% 100%;
border: 1rpx solid #89965f;
border: 1rpx solid #00a89b;
z-index: 998;
.topimg{
width: 40rpx;

@ -43,9 +43,9 @@ export default {
display: flex;
align-items: center;
justify-content: center;
background-color: rgba(243, 244, 239, 0.8);
background-color: rgba(228, 249, 247, 0.8);
border-radius: 100% 100%;
border: 1rpx solid #89965f;
border: 1rpx solid #00a89b;
z-index: 998;
.topimg{
width: 40rpx;

@ -6,7 +6,7 @@
<view class="box">
<view class="fixhead" :style="{ paddingTop: geStatusBarHeight() + 'px'}">
<selShop :showName="true" :showQR="false" :shop="shop" @changeArea="changeArea"></selShop>
<selShop :showName="true" :showQR="false" :shopid="shopid" :shop="shop" @changeArea="changeArea"></selShop>
</view>
<!-- 轮播图区域 -->
@ -33,13 +33,14 @@
<!-- 功能菜单 -->
<view class="theme">
<view class="thcon" v-for="(item, index) in themeList" :key="index" :style="{ backgroundColor:item.color}" @click="gotoCategory(index)">
<view class="thcon" v-for="(item, index) in themeList" :key="index" :style="{ backgroundColor:item.color?item.color:colors[index]}"
@click="gotoCategory(item.id)">
<view class="thinfo">
<view class="thname">{{item.name}}</view>
<view class="thtext">{{item.text}}</view>
<!-- <view class="thtext">{{item.text}}</view> -->
</view>
<view class="thimg">
<image class="theimg" :src="item.img" mode="aspectFill" lazy-load></image>
<image class="theimg" :src="item.img?item.img:timgs[index]" mode="aspectFill" lazy-load></image>
</view>
</view>
</view>
@ -103,9 +104,8 @@
openId:"",
phone:"",
userid:"",
screenWidth: 375,
shopid:myCache('myshopid')?myCache('myshopid'):'',
shop:myCache('myshop')?myCache('myshop'):'',
shopid: myCache('myshopid'),
shop: myCache('myshop'),
// banner
swiperList:[
{
@ -115,76 +115,86 @@
ban_img:"../../static/image/b2.png"
}
],// myCache('swiperCache'),
themeList: [
{
name: "瑜伽传承",
text: "传承瑜伽",
img: '../../static/image/theme/y1.jpg',
color:'#c4dfe4'
},
{
name: "了解场馆",
text: "场馆介绍",
img: '../../static/image/theme/y2.jpg',
color:'#c7d7bd'
},
{
name: "瑜伽用品",
text: "瑜伽好物",
img: '../../static/image/theme/y3.jpg',
color:'#f9d1c8'
},
{
name: "线上大咖课",
text: "大咖教师",
img: '../../static/image/theme/y4.jpg',
color:'#fff9e6'
},
{
name: "课程预约",
text: "超值课程",
img: '../../static/image/theme/y1.jpg',
color:'#c4ccdf'
},
{
name: "教练风采",
text: "风采展示",
img: '../../static/image/theme/y2.jpg',
color:'#fceaac'
},
{
name: "练习瞬间",
text: "记录美好",
img: '../../static/image/theme/y3.jpg',
color:'#d5e7c1'
},
{
name: "教练培训",
text: "专业课程",
img: '../../static/image/theme/y4.jpg',
color:'#c4ccdf'
},
{
name: "瑜伽欣赏",
text: "瑜伽科普",
img: '../../static/image/theme/y3.jpg',
color:'#efdddd'
},
{
name: "瑜伽常识",
text: "瑜伽科普",
img: '../../static/image/theme/y4.jpg',
color:'#dcd1bd'
},
], //
teacherList: [
colors:[
"#f9d1c8","#c7d7bd","#c4dfe4","#efdddd","#c4ccdf","#fceaac","#d5e7c1",
"#f9d1c8","#c7d7bd","#c4dfe4","#efdddd","#c4ccdf","#fceaac","#d5e7c1",
"#f9d1c8","#c7d7bd","#c4dfe4","#efdddd","#c4ccdf","#fceaac","#d5e7c1",
"#f9d1c8","#c7d7bd","#c4dfe4","#efdddd","#c4ccdf","#fceaac","#d5e7c1",
],
timgs:[
'../../static/image/theme/y1.jpg','../../static/image/theme/y2.jpg','../../static/image/theme/y3.jpg','../../static/image/theme/y4.jpg',
'../../static/image/theme/y1.jpg','../../static/image/theme/y2.jpg','../../static/image/theme/y3.jpg','../../static/image/theme/y4.jpg',
'../../static/image/theme/y1.jpg','../../static/image/theme/y2.jpg','../../static/image/theme/y3.jpg','../../static/image/theme/y4.jpg',
'../../static/image/theme/y1.jpg','../../static/image/theme/y2.jpg','../../static/image/theme/y3.jpg','../../static/image/theme/y4.jpg',
'../../static/image/theme/y1.jpg','../../static/image/theme/y2.jpg','../../static/image/theme/y3.jpg','../../static/image/theme/y4.jpg',
'../../static/image/theme/y1.jpg','../../static/image/theme/y2.jpg','../../static/image/theme/y3.jpg','../../static/image/theme/y4.jpg',
'../../static/image/theme/y1.jpg','../../static/image/theme/y2.jpg','../../static/image/theme/y3.jpg','../../static/image/theme/y4.jpg',
'../../static/image/theme/y1.jpg','../../static/image/theme/y2.jpg','../../static/image/theme/y3.jpg','../../static/image/theme/y4.jpg'
],
themeList: myCache('sortCache'),
// [
// {
// name: "",
// text: "",
// img: '../../static/image/theme/y1.jpg',
// color:'#c4dfe4'
// },
// {
// name: "",
// text: "",
// img: '../../static/image/theme/y2.jpg',
// color:'#c7d7bd'
// },
// {
// name: "",
// text: "",
// img: '../../static/image/theme/y3.jpg',
// color:'#f9d1c8'
// },
// {
// name: "线",
// text: "",
// img: '../../static/image/theme/y4.jpg',
// color:'#fff9e6'
// },
// {
// id:11,
// name: "Madeline ()",
// info: "",
// img: '../../static/image/theme/t2.png'
// name: "",
// text: "",
// img: '../../static/image/theme/y1.jpg',
// color:'#c4ccdf'
// },
], //
// {
// name: "",
// text: "",
// img: '../../static/image/theme/y2.jpg',
// color:'#fceaac'
// },
// {
// name: "",
// text: "",
// img: '../../static/image/theme/y3.jpg',
// color:'#d5e7c1'
// },
// {
// name: "",
// text: "",
// img: '../../static/image/theme/y4.jpg',
// color:'#c4ccdf'
// },
// {
// name: "",
// text: "",
// img: '../../static/image/theme/y3.jpg',
// color:'#efdddd'
// },
// {
// name: "",
// text: "",
// img: '../../static/image/theme/y4.jpg',
// color:'#dcd1bd'
// },
// ], //
teacherList: [], //
loadStatus:'more',
page: {
pageNum: 1,
@ -194,19 +204,29 @@
};
},
onLoad() {
//
const systemInfo = uni.getSystemInfoSync();
this.screenWidth = systemInfo.windowWidth;
this.$forceUpdate();
//
this.getSort();
//
this.getservice();
//
this.loadData();
},
onShow() {
this.shopid = myCache('myshopid')?myCache('myshopid'):'';
this.shop = myCache('myshop')?myCache('myshop'):'';
this.$forceUpdate();
if(myCache("loginindex")=="1"){
uni.setStorageSync("loginindex", "");
//
this.loadData();
}
this.openId = myCache('openId');
var user = myCache('user');
this.userid = user.userid? user.userid:'';
@ -292,7 +312,6 @@
this.$forceUpdate();
this.loadData();
},
dotclick(index){
this.swiperCurrent = index;
this.$forceUpdate();
@ -385,7 +404,103 @@
this.$forceUpdate();
}
},
gotoCategory(index){
async getSort() {
//
const {data: res} = await uni.$http.get('/api/index/getIndex');
if (res&&res.data) {
this.themeList=res.data?res.data:[];
this.$forceUpdate();
myCache('sortCache',this.themeList);
}
},
gotoCategory(id){
if(id==1){
// ()
uni.reLaunch({
url: `/pages/category/category?id=${id}`
});
}
else if(id==2){
//
uni.reLaunch({
url: `/pages/category/category?id=${id}`
});
}
else if(id==3){
//
uni.reLaunch({
url: `/pages/category/category?id=${id}`
});
}
else if(id==4){
//
//
if(this.userid==""||this.userid=="0"){
this.$refs.loginId.open();
}
else{
//
uni.navigateTo({
url: `/pages/user/courselist`
});
}
}
else if(id==5){
//
uni.reLaunch({
url: `/pages/category/category?id=${id}`
});
}
else if(id==6){
// ()
uni.reLaunch({
url: `/pages/category/category?id=${id}`
});
}
else if(id==7){
// (线)
uni.reLaunch({
url: `/pages/product/list?id=2`
});
}
else if(id==8){
//
uni.reLaunch({
url: `/pages/product/list`
});
}
else if(id==9){
// ()
uni.reLaunch({
url: `/pages/category/category?id=${id}`
});
}
else if(id==10){
//
uni.reLaunch({
url: `/pages/category/category?id=${id}`
});
}
else if(id==11){
//
uni.reLaunch({
url: `/pages/category/category?id=${id}`
});
}
else if(id==12){
//
uni.reLaunch({
url: `/pages/category/category?id=${id}`
});
}
else if(id==13){
//
uni.reLaunch({
url: `/pages/product/list?id=0`
});
}
},
gotoCategory0(index){
if(index==0||index==1){
//
uni.reLaunch({
@ -576,7 +691,7 @@
//
transform: translate(-50%, 0);
-webkit-transform: translate(-50%, 0);
z-index: 99;
z-index: 98;
display: flex;
flex-direction: row;
justify-content: center;
@ -610,7 +725,8 @@
box-sizing: border-box; /* 确保padding和border不会影响宽度计算 */
display: flex;
flex-direction: row;
padding: 30rpx 24rpx;
align-items: center;
padding: 20rpx 20rpx;
margin-right: 20rpx;
margin-bottom: 20rpx;
border-radius: 20rpx;
@ -619,9 +735,10 @@
.thinfo{
display: flex;
flex-direction: column;
align-items: center;
flex: 1;
.thname{
font-size: 32rpx;
font-size: 30rpx;
color:#000;
}
.thtext{
@ -631,8 +748,8 @@
}
}
.thimg{
width: 100rpx;
height: 100rpx;
width: 88rpx;
height: 88rpx;
margin-left: 10rpx;
.theimg{
width: 100%;

@ -11,7 +11,7 @@
</uni-forms-item>
<uni-forms-item prop="password" >
<uni-easyinput type="password" placeholder="请输入密码" v-model="form.password" @blur="mmhandleBlur" :inputBorder="false" :clearable="false" :placeholderStyle="placeholderStyle"/>
<uni-easyinput type="password" placeholder="请输入密码" v-model="form.password" @blur="mmhandleBlur" maxlength="12" :inputBorder="false" :clearable="false" :placeholderStyle="placeholderStyle"/>
</uni-forms-item>
<uni-forms-item prop="code" >
@ -85,7 +85,9 @@
const _this=this;
uni.getLocation({
type:'gcj02',//'gcj02','wgs84', // wgs84
geocode:true,
success: function (res) {
console.log(res);
console.log('当前位置的经度:' + res.longitude);
console.log('当前位置的纬度:' + res.latitude);
_this.form.position=res.latitude+','+res.longitude;
@ -100,6 +102,8 @@
success: function (res) {
if (res.confirm) {
console.log('用户点击确定');
// #ifdef APP-PLUS
//
plus.device.vendor = 'apple'; // iOS
if (plus.os.name == 'iOS') {
@ -107,6 +111,8 @@
} else {
plus.runtime.openURL('package:' + plus.android.runtimeMainActivity());
}
// #endif
}
}
});
@ -167,12 +173,13 @@
// if(e.detail.value&&!this.checkMM(e.detail.value)){
// '6-20',
// '8-203'
this.$refs.uToast.show({
title: "密码必须是6-20位字符至少包括英文、数字、特殊符号中2种以上请核实",
type: 'error',
duration: 2000
});
// this.$refs.uToast.show({
// title: "6-202",
// type: 'error',
// duration: 2000
// });
}
},
//
checkMM(mm) {
@ -297,11 +304,13 @@
title: '正在登录...'
});
const {data: res} = await uni.$http.post('/api/login',this.form);
console.log(res);
if(res&&res.code=="200"){
uni.setStorageSync('token', res.token);
uni.setStorageSync("loginindex", "1");
uni.setStorageSync("token", res.token);
//
this.getUserInfo();
//
this.loadshop();
this.$refs.uToast.show({
title: '登录成功',
type: 'success',
@ -327,7 +336,6 @@
async getUserInfo(){
var _this=this;
const {data: res} = await uni.$http.get('/api/getInfo');
console.log(res);
if(res&&res.appLoginUser){
var user=res.appLoginUser;
myCache('user',{
@ -345,8 +353,15 @@
myCache('shop',shop);
myCache('myshop',shop.storeName);
myCache('myshopid',shop.id);
var shoplist=[shop]
myCache('shoplist',shoplist);
// var shoplist=[shop]
// myCache('shoplist',shoplist);
}
},
async loadshop(){
//
const {data: res} = await uni.$http.post('/api/index/getStores');
if(res.data&&res.data.length>0){
myCache('shoplist',res.data);
}
},
async getUserShopList(){
@ -413,7 +428,7 @@
right: 28rpx;
display: block;
font-size: 36rpx;
color:#89965f;
color:#00a89b;
line-height: 38rpx;
height: 45rpx;
margin-left: 50rpx;
@ -430,7 +445,7 @@
top:12rpx;
right: 20rpx;
display: block;
color:#89965f;
color:#00a89b;
height: 60rpx;
line-height: 60rpx;
font-size: 26rpx;
@ -443,24 +458,24 @@
justify-content: center;
margin-top: 36rpx;
.regtxt{
color:#89965f;
color:#00a89b;
font-size: 28rpx;
display: flex;
align-items: center;
}
.regtxtl{
color:#89965f;
color:#00a89b;
width: 2rpx;
height: 26rpx;
font-size: 26rpx;
margin-left: 10rpx;
margin-right: 10rpx;
border-right: 1rpx solid #89965f;
border-right: 1rpx solid #00a89b;
display: flex;
align-items: center;
}
.regtxtr{
color:#89965f;
color:#00a89b;
height: 28rpx;
font-size: 28rpx;
display: flex;

@ -291,7 +291,7 @@
right: 28rpx;
display: block;
font-size: 36rpx;
color:#89965f;
color:#00a89b;
line-height: 38rpx;
height: 45rpx;
margin-left: 50rpx;
@ -308,7 +308,7 @@
top:12rpx;
right: 20rpx;
display: block;
color:#89965f;
color:#00a89b;
height: 60rpx;
line-height: 60rpx;
font-size: 26rpx;
@ -321,24 +321,24 @@
justify-content: center;
margin-top: 36rpx;
.regtxt{
color:#89965f;
color:#00a89b;
font-size: 28rpx;
display: flex;
align-items: center;
}
.regtxtl{
color:#89965f;
color:#00a89b;
width: 2rpx;
height: 26rpx;
font-size: 26rpx;
margin-left: 10rpx;
margin-right: 10rpx;
border-right: 1rpx solid #89965f;
border-right: 1rpx solid #00a89b;
display: flex;
align-items: center;
}
.regtxtr{
color:#89965f;
color:#00a89b;
height: 28rpx;
font-size: 28rpx;
display: flex;

@ -321,7 +321,7 @@
position: fixed;
width: 100%;
z-index: 999;
background-color: #89965f;
background-color: #00a89b;
.text-center {
width: 100%;
text-align: center;
@ -336,7 +336,7 @@
}
.hcon{
width: 100%;
background-color: #89965f;
background-color: #00a89b;
margin: 0;
padding: 26rpx 30rpx;
display: flex;
@ -511,7 +511,7 @@
width: 560rpx;
height: 76rpx;
line-height: 76rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
border-radius: 10rpx;
opacity: 1;
@ -530,6 +530,6 @@
padding-top: 180rpx;
text-align: center;
font-size: 28rpx;
color: #89965f;
color: #00a89b;
}
</style>

@ -245,7 +245,7 @@
display: flex;
color: #fff;
font-size: 36rpx;
background-color: #89965f;
background-color: #00a89b;
.text-center {
width: 100%;
text-align: center;
@ -382,9 +382,10 @@
background-image: url('../../static/image/nomsg.png');
background-repeat: no-repeat;
background-position: center center;
background-size: 100%;
height: 376rpx;
width: 256rpx;
color: #89965f;
color: #00a89b;
display: flex;
align-items: center;
justify-content: flex-end;

@ -69,7 +69,7 @@
</view>
</view>
<view class="tip">
<uni-icons type="info" size="20" color="#89965f"></uni-icons>
<uni-icons type="info" size="20" color="#00a89b"></uni-icons>
<text style="margin-left: 10rpx;">提示:快递运输期间不算租期实际起租日为快递签收当天</text>
</view>
</view>
@ -1030,7 +1030,7 @@
.xs{
font-size: 28rpx;
font-weight: 600;
color:#89965f ;
color:#00a89b ;
}
}
.sbtn{
@ -1063,7 +1063,7 @@
width: 660rpx;
height: 76rpx;
line-height: 76rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(67,110,255,0.4);
border-radius: 10rpx;
opacity: 1;
@ -1214,7 +1214,7 @@
height: 60rpx;
line-height: 60rpx;
text-align: center;
background: #89965f;
background: #00a89b;
border-radius: 40rpx 40rpx 40rpx 40rpx;
font-weight: 400;
font-size: 28rpx;
@ -1376,8 +1376,8 @@
}
::v-deep.uni-radio-input-checked{
background-color: #89965f !important;
border-color: #89965f !important;
background-color: #00a89b !important;
border-color: #00a89b !important;
background-clip: content-box!important;
box-sizing: border-box;
}
@ -1438,7 +1438,7 @@
width: 100%;
}
.paybtn{
background-color: #89965f !important;
background-color: #00a89b !important;
margin: 20rpx 20rpx;
border-radius: 50rpx;
height: 75rpx;
@ -1484,7 +1484,7 @@
height: 48rpx;
text-align: center;
line-height: 50rpx;
background: #89965f;
background: #00a89b;
border-radius: 24rpx;
margin-left: 10rpx;
}
@ -1521,7 +1521,7 @@
text-align: center;
.btn{
padding: 0 12rpx;
background-color: #89965f ;
background-color: #00a89b ;
border-radius: 24rpx;
font-size: 26rpx;
color: #fff;

@ -1121,24 +1121,24 @@
.rmb{
font-size: 30rpx;
font-family: smallYuan;
color:#89965f ;
color:#00a89b ;
margin-left: 10rpx;
}
.zs{
font-size: 48rpx;
font-weight: 600;
font-family: smallYuan;
color:#89965f ;
color:#00a89b ;
}
.xs{
font-size: 28rpx;
font-weight: 600;
font-family: smallYuan;
color:#89965f ;
color:#00a89b ;
}
}
.btn{
background-color: #89965f !important;
background-color: #00a89b !important;
margin: 30rpx 20rpx 0 0;
border-radius: 50rpx;
height: 60rpx;
@ -1211,8 +1211,8 @@
line-height: 60rpx;
width:170rpx;
font-size: 26rpx;
border:1rpx solid #89965f;
color:#89965f;
border:1rpx solid #00a89b;
color:#00a89b;
}
.wlbtn::after{
border:0 !important;
@ -1352,7 +1352,7 @@
.owc{
display: flex;
flex-direction: column;
background-color: #89965f ;
background-color: #00a89b ;
padding: 20rpx;
border-radius: 16rpx;
.ozstate{
@ -1473,8 +1473,8 @@
}
::v-deep.uni-radio-input-checked{
background-color: #89965f !important;
border-color: #89965f !important;
background-color: #00a89b !important;
border-color: #00a89b !important;
background-clip: content-box!important;
box-sizing: border-box;
}
@ -1490,7 +1490,7 @@
display: block;
padding-bottom: 80rpx;
.paybtn{
background-color: #89965f !important;
background-color: #00a89b !important;
margin: 50rpx 20rpx 20rpx;
border-radius: 50rpx;
height: 75rpx;
@ -1577,7 +1577,7 @@
text-align: center;
.btn{
padding: 0 12rpx;
background-color: #89965f ;
background-color: #00a89b ;
border-radius: 24rpx;
font-size: 26rpx;
color: #fff;

@ -13,7 +13,7 @@
<view v-for="(item, index) in tabItem.slist" :key="index" class="oitem">
<view class="obcon" @click="gotoInfo(item.orderId)">
<image style="width: 50rpx; height: 50rpx;margin-right: 8rpx;" src="/static/image/sj.png"></image>
<image style="width: 35rpx; height: 35rpx;margin-right: 8rpx;" src="/static/image/sj.png"></image>
<text>{{item.storeName}}</text>
</view>
@ -1295,14 +1295,14 @@
height: 90rpx;
}
.cur .ptext{
color: #89965f;
color: #00a89b;
font-size: 33rpx;
font-weight: 600;
}
.cur .pline{
width: 40%;
height: 9rpx;
background: #89965f;
background: #00a89b;
border-radius: 6rpx;
opacity: 1;
margin-left: 30%;
@ -1317,7 +1317,7 @@
background-position: center;
font-size: 28rpx;
text-align: center;
color: #89965f;
color: #00a89b;
overflow: hidden;
}
.scell{
@ -1522,7 +1522,7 @@
border:0 !important;
}
.paybtn{
background-color: #89965f !important;
background-color: #00a89b !important;
margin-left: 20rpx;
border-radius: 50rpx;
border-radius: 50rpx;
@ -1530,7 +1530,7 @@
line-height: 48rpx;
padding: 0 20rpx;
font-size: 24rpx;
border:1rpx solid #89965f;
border:1rpx solid #00a89b;
}
.paybtn::after{
border:0 !important;
@ -1640,8 +1640,8 @@
}
::v-deep.uni-radio-input-checked{
background-color: #89965f !important;
border-color: #89965f !important;
background-color: #00a89b !important;
border-color: #00a89b !important;
background-clip: content-box!important;
box-sizing: border-box;
}
@ -1657,7 +1657,7 @@
display: block;
padding-bottom: 80rpx;
.paybtn{
background-color: #89965f !important;
background-color: #00a89b !important;
margin: 50rpx 20rpx 20rpx;
border-radius: 50rpx;
height: 75rpx;
@ -1734,7 +1734,7 @@
text-align: center;
.btn{
padding: 0 12rpx;
background-color: #89965f ;
background-color: #00a89b ;
border-radius: 24rpx;
font-size: 26rpx;
color: #fff;

@ -413,7 +413,7 @@
display: block;
padding-bottom: 80rpx;
.paybtn{
background-color: #89965f !important;
background-color: #00a89b !important;
margin: 50rpx 20rpx 20rpx;
border-radius: 50rpx;
height: 75rpx;

@ -69,8 +69,8 @@ export default {
}
::v-deep.uni-radio-input-checked{
background-color: #89965f!important;
border-color: #89965f!important;
background-color: #00a89b!important;
border-color: #00a89b!important;
background-clip: content-box!important;
padding: 0rpx!important;
box-sizing: border-box;
@ -135,7 +135,7 @@ export default {
color: #FCFCFD;
height: 88rpx;
line-height: 88rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(67,110,255,0.4);
border-radius: 10rpx;
opacity: 1;
@ -173,7 +173,7 @@ export default {
text-align: center;
.btn{
padding: 0 12rpx;
background-color: #89965f;
background-color: #00a89b;
border-radius: 24rpx;
font-size: 26rpx;
color: #fff;

@ -70,11 +70,11 @@
color:#78839A;
text-align: center;
box-sizing:border-box;
border: 1rpx solid #89965f;
border: 1rpx solid #00a89b;
&.hollow{
background: #E1F2FF;
color: #78839A;
border: 1rpx solid #89965f;
border: 1rpx solid #00a89b;
}
}
</style>

@ -32,11 +32,11 @@
<text class="txt" v-if="product.unit"> / {{product.unit}} </text>
<!-- <text class="pretxt"> {{product.preprice}} </text> -->
<view v-if="ifcollect" class="collect" @tap="collectDo">
<uni-icons type="star-filled" size="18" color="#89965f"></uni-icons>
<uni-icons type="star-filled" size="18" color="#00a89b"></uni-icons>
<text class="txt">已收藏</text>
</view>
<view v-else class="collect" @tap="collectDo">
<uni-icons type="star" size="18" color="#89965f"></uni-icons>
<uni-icons type="star" size="18" color="#00a89b"></uni-icons>
<text class="txt">加入收藏</text>
</view>
</view>
@ -857,7 +857,7 @@
}
.price{
line-height: 1;
color: #89965f;
color: #00a89b;
.txt{
font-size: 30rpx;
}
@ -907,7 +907,7 @@
}
.spcli.cur{
background: #dceef7;
border: 1rpx solid #89965f;
border: 1rpx solid #00a89b;
font-weight: 600;
}
.spclilong{
@ -927,7 +927,7 @@
}
.spclilong.cur{
background: #dceef7;
border: 1rpx solid #89965f;
border: 1rpx solid #00a89b;
font-weight: 600;
}
}
@ -954,7 +954,7 @@
width: 690rpx;
height: 76rpx;
line-height: 76rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
margin: 0 30rpx 30rpx;
border-radius: 10rpx;
@ -972,7 +972,7 @@
width: 690rpx;
height: 76rpx;
line-height: 76rpx;
background: #55690e;
background: #468a73;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
margin: 0 30rpx 30rpx;
border-radius: 10rpx;
@ -1076,7 +1076,7 @@
color: #FCFCFD;
height: 76rpx;
line-height: 76rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
border-radius: 10rpx;
opacity: 1;
@ -1093,7 +1093,7 @@
width: 220rpx;
height: 76rpx;
line-height: 76rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
border-radius: 10rpx;
opacity: 1;
@ -1110,7 +1110,7 @@
width: 210rpx;
height: 76rpx;
line-height: 76rpx;
background: #55690e;
background: #468a73;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
border-radius: 10rpx;
opacity: 1;
@ -1154,12 +1154,12 @@
font-size: 28rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 600;
color: #89965f;
color: #00a89b;
}
.cur .pline{
width: 40rpx;
height: 6rpx;
background: #89965f;
background: #00a89b;
border-radius: 4rpx 4rpx 4rpx 4rpx;
opacity: 1;
}
@ -1277,7 +1277,7 @@
line-height: 40rpx;
color: #fff;
font-size: 22rpx;
background: #89965f;
background: #00a89b;
border-radius: 20rpx;
padding: 0 20rpx;
margin-right: 20rpx;
@ -1297,7 +1297,7 @@
align-items: baseline;
.txtt{
font-size: 24rpx;
color: #89965f;
color: #00a89b;
margin-right: 10rpx;
}
.txt{
@ -1308,7 +1308,7 @@
.tint{
font-size: 42rpx;
font-weight: 600;
color: #89965f;
color: #00a89b;
}
.pretxt{
color: #959694;
@ -1323,7 +1323,7 @@
align-items: center;
justify-content: flex-end;
.txt{
color: #89965f;
color: #00a89b;
font-size: 24rpx;
margin-left: 10rpx;
}
@ -1427,7 +1427,7 @@
}
.price{
line-height: 1;
color: #89965f;
color: #00a89b;
.txt{
font-size: 30rpx;
}

@ -6,7 +6,7 @@
<view class="leftarr">
<uni-icons type="back" size="24" color="#fff" @tap="gotoBack"></uni-icons>
</view>
<selShop :showName="false" :showQR="true" :shop="shop" @changeArea="changeArea"></selShop>
<selShop :showName="false" :showQR="true" :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"
@ -436,7 +436,7 @@
if (!keyword) return text;
// 使<span>
const regex = new RegExp(keyword, 'gi');
return text.replace(regex, `<span style="color:#89965f">${keyword}</span>`);
return text.replace(regex, `<span style="color:#00a89b">${keyword}</span>`);
},
input(res) {
if(!this.ifsear){
@ -649,8 +649,8 @@
}
.tab.cur{
color: #fff;
background-color: #89965f;
border: 1rpx solid #89965f;
background-color: #00a89b;
border: 1rpx solid #00a89b;
}
}
.tcon{

@ -44,11 +44,11 @@
<text class="txt"> / {{product.unit}} </text>
<!-- <text class="pretxt"> {{product.preprice}} </text> -->
<view v-if="ifcollect" class="collect" @tap="collectDo">
<uni-icons type="star-filled" size="18" color="#89965f"></uni-icons>
<uni-icons type="star-filled" size="18" color="#00a89b"></uni-icons>
<text class="txt">已收藏</text>
</view>
<view v-else class="collect" @tap="collectDo">
<uni-icons type="star" size="18" color="#89965f"></uni-icons>
<uni-icons type="star" size="18" color="#00a89b"></uni-icons>
<text class="txt">加入收藏</text>
</view>
</view>
@ -815,7 +815,7 @@
}
.price{
line-height: 1;
color: #89965f;
color: #00a89b;
.txt{
font-size: 30rpx;
}
@ -865,7 +865,7 @@
}
.spcli.cur{
background: #dceef7;
border: 1rpx solid #89965f;
border: 1rpx solid #00a89b;
font-weight: 600;
}
.spclilong{
@ -885,7 +885,7 @@
}
.spclilong.cur{
background: #dceef7;
border: 1rpx solid #89965f;
border: 1rpx solid #00a89b;
font-weight: 600;
}
}
@ -912,7 +912,7 @@
width: 690rpx;
height: 76rpx;
line-height: 76rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
margin: 0 30rpx 30rpx;
border-radius: 10rpx;
@ -930,7 +930,7 @@
width: 690rpx;
height: 76rpx;
line-height: 76rpx;
background: #55690e;
background: #468a73;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
margin: 0 30rpx 30rpx;
border-radius: 10rpx;
@ -1035,7 +1035,7 @@
width: 220rpx;
height: 76rpx;
line-height: 76rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
border-radius: 10rpx;
opacity: 1;
@ -1052,7 +1052,7 @@
width: 210rpx;
height: 76rpx;
line-height: 76rpx;
background: #55690e;
background: #468a73;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
border-radius: 10rpx;
opacity: 1;
@ -1096,12 +1096,12 @@
font-size: 28rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 600;
color: #89965f;
color: #00a89b;
}
.cur .pline{
width: 40rpx;
height: 6rpx;
background: #89965f;
background: #00a89b;
border-radius: 4rpx 4rpx 4rpx 4rpx;
opacity: 1;
}
@ -1219,7 +1219,7 @@
line-height: 40rpx;
color: #fff;
font-size: 22rpx;
background: #89965f;
background: #00a89b;
border-radius: 20rpx;
padding: 0 20rpx;
margin-right: 20rpx;
@ -1239,7 +1239,7 @@
align-items: baseline;
.txtt{
font-size: 24rpx;
color: #89965f;
color: #00a89b;
margin-right: 10rpx;
}
.txt{
@ -1250,7 +1250,7 @@
.tint{
font-size: 42rpx;
font-weight: 600;
color: #89965f;
color: #00a89b;
}
.pretxt{
color: #959694;
@ -1265,7 +1265,7 @@
align-items: center;
justify-content: flex-end;
.txt{
color: #89965f;
color: #00a89b;
font-size: 24rpx;
margin-left: 10rpx;
}
@ -1369,7 +1369,7 @@
}
.price{
line-height: 1;
color: #89965f;
color: #00a89b;
.txt{
font-size: 30rpx;
}

@ -2,7 +2,7 @@
<view class="page">
<view class="fixhead" :style="{ marginTop: geStatusBarHeight() + 'px'}">
<selShop :showName="false" :showQR="true" :shop="shop" @changeArea="changeArea"></selShop>
<selShop :showName="false" :showQR="true" :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>
@ -118,7 +118,8 @@
ifshow:true, //
searchValue:"",
ifsear:false,
shop:myCache('myshop')?myCache('myshop'):'',
shopid: myCache('myshopid'),
shop: myCache('myshop'),
scrollLeft: 0,
tabCurrentIndex:0,
list:myCache("spgglist"),
@ -548,7 +549,7 @@
if (!keyword) return text;
// 使<span>
const regex = new RegExp(keyword, 'gi');
return text.replace(regex, `<span style="color:#89965f">${keyword}</span>`);
return text.replace(regex, `<span style="color:#00a89b">${keyword}</span>`);
},
getPhoneNumber(e){
if(e.userid){
@ -756,7 +757,6 @@
height: 64rpx;
white-space: nowrap;
margin: 0 20rpx 20rpx 20rpx;
text-align: center;
.tab{
padding: 0 16rpx;
min-width: 180rpx;
@ -775,8 +775,8 @@
}
.tab.cur{
color: #fff;
background-color: #89965f;
border: 1rpx solid #89965f;
background-color: #00a89b;
border: 1rpx solid #00a89b;
}
}
.tcon{
@ -874,13 +874,14 @@
margin-right: 2%;
}
.adname{
background: rgba(0, 0, 0, 0.1);
background: rgba(0, 0, 0, 0.4);
position: absolute;
padding: 8rpx 8rpx;
padding: 6rpx 6rpx;
color: #fff;
font-size: 26rpx;
font-size: 24rpx;
bottom: 0;
left: 0;
border-radius: 4rpx;
}
}
}

@ -918,7 +918,7 @@
width: 220rpx;
height: 76rpx;
line-height: 76rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
border-radius: 10rpx;
opacity: 1;
@ -1170,8 +1170,8 @@
}
::v-deep.uni-radio-input-checked{
background-color: #89965f !important;
border-color: #89965f !important;
background-color: #00a89b !important;
border-color: #00a89b !important;
background-clip: content-box!important;
box-sizing: border-box;
}
@ -1231,7 +1231,7 @@
width: 100%;
}
.addadrbtn{
background-color: #89965f !important;
background-color: #00a89b !important;
margin: 20rpx 10%;
border-radius: 50rpx;
height: 70rpx;
@ -1239,7 +1239,7 @@
font-size: 30rpx;
}
.paybtn{
background-color: #89965f !important;
background-color: #00a89b !important;
margin: 20rpx 20rpx;
border-radius: 50rpx;
height: 75rpx;
@ -1286,7 +1286,7 @@
height: 48rpx;
text-align: center;
line-height: 50rpx;
background: #89965f;
background: #00a89b;
border-radius: 24rpx;
margin-left: 10rpx;
}
@ -1323,7 +1323,7 @@
text-align: center;
.btn{
padding: 0 12rpx;
background-color: #89965f ;
background-color: #00a89b ;
border-radius: 24rpx;
font-size: 26rpx;
color: #fff;

@ -968,7 +968,7 @@
}
.msg-text {
margin-right: 16rpx;
background-color: #89965f;
background-color: #00a89b;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
font-size: 32rpx;

@ -1022,7 +1022,7 @@
}
.msg-text {
margin-right: 16rpx;
background-color: #89965f;
background-color: #00a89b;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
font-size: 32rpx;

@ -4,13 +4,13 @@
<uni-table class="courcon" ref="table" :loading="loading" emptyText="暂无更多数据">
<view class="table_head">
<uni-tr>
<uni-th width="60" align="center" class="leftfix">
<uni-th width="50" align="center" class="leftfix">
<view class="leftcell">
<view class="ctitle">日期</view>
<view class="ctitle">15日内</view>
</view>
</uni-th>
<uni-th width="120" align="center" v-for="(item, index) in columnTitles" :key="index">
<uni-th width="80" align="center" v-for="(item, index) in columnTitles" :key="index">
<view class="rightcell">
<view class="ctitle">{{item.day}}</view>
<view class="ctitle">{{item.weekName}}</view>
@ -21,21 +21,22 @@
</view>
<view class="table_body">
<uni-tr v-for="(item, index) in claTimeContainer" :key="index">
<uni-td width="60" align="center" class="leftfix">
<uni-td width="50" align="center" class="leftfix">
<view class="courfix">
{{item.time}}
</view>
</uni-td>
<uni-td width="120" 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">
<!-- dd.weekDay==cell.weekName && -->
<view class="courheadtext" v-if="dd.claDate==cell.day"
:style="{color:colorlist[index].fcolor,backgroundColor:colorlist[index].color,borderLeftColor:colorlist[index].fcolor}" >
<view class="ctxt">{{dd.startTime}}-{{dd.endTime}}</view>
<view class="ctxt">{{dd.courseName}}</view>
<view class="ctxt" style="font-weight: 600;">{{dd.courseName}}</view>
<view class="ctxt">{{dd.claName}}</view>
<view class="ctxt">{{dd.staffName}}</view>
<view class="ctxt" v-if="dd.staffName">{{dd.staffName}}</view>
<view class="ctxt" v-if="dd.roomName">{{dd.roomName}}</view>
</view>
</block>
</block>
@ -701,13 +702,13 @@
position: sticky;
left: 0;
z-index: 10;
background-color: #FFFAF2;
background-color: #F2F2F2;
}
::v-deep .uni-table-tr .uni-table-td:first-child {
position: sticky;
left: 0;
z-index: 10;
background-color: #FFFAF2;
background-color: #F2F2F2;
}
.leftfix{
position: sticky;
@ -731,36 +732,40 @@
flex-direction: column;
align-items: center;
justify-content: center;
width: 120rpx;
width: 100%;
height: 120rpx;
background-color: #fffae0;
background-color: #e4f9f7;
border-right: 1rpx solid #fff;
}
.rightcell{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 240rpx;
width: 100%;
height: 120rpx;
background-color: #ffffff;
background-color: #e4f9f7;
border-radius: 10rpx;
border-right: 1rpx solid #fff;
position: relative;
}
.cnum{
position: absolute;
top:15rpx;
right: 20rpx;
bottom:30rpx;
right: 6rpx;
min-width: 28rpx;
padding: 0 2rpx;
border-radius: 50% 50%;
background-color: #ff0000;
color: #FFF;
font-size: 22rpx;
font-size: 20rpx;
}
.courhead{
border-radius: 8rpx;
background-color: #ffffff;
display: flex;
flex-direction: column;
width: 120rpx;
width: 100rpx;
height: 120rpx;
justify-content: center;
align-items: center;
@ -769,17 +774,17 @@
top: 0;
}
.ctitle{
font-size: 30rpx;
font-size: 26rpx;
color:#000;
}
.courcell{
width: 120rpx;
width: 100rpx;
height: 120rpx;
border-bottom: 1rpx dotted #ccc;
background-color: #ffffff;
}
.chcell{
width: 240rpx;
width: 200rpx;
}
.courfix{
position: sticky;
@ -787,17 +792,19 @@
z-index: 19;
display: flex;
flex-direction: column;
width: 120rpx;
height: 180rpx;
width: 100%;
height: 240rpx;
justify-content: center;
align-items: center;
border-bottom: 1rpx dotted #ccc;
color:#000;
font-size: 28rpx;
}
.courheadtext{
display: flex;
flex-direction: column;
width: 240rpx;
height: 180rpx;
width: 100%;
height: 240rpx;
justify-content: center;
align-items: center;
border-radius: 10rpx;
@ -806,8 +813,9 @@
border-left: solid;
}
.ctxt{
font-size: 28rpx;
line-height: 36rpx;
font-size: 24rpx;
line-height: 30rpx;
margin-bottom: 6rpx;
}
}
.bbtn{
@ -819,7 +827,7 @@
width: 314rpx;
height: 76rpx;
line-height: 76rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
border-radius: 10rpx;
opacity: 1;

@ -597,7 +597,7 @@
width: 314rpx;
height: 76rpx;
line-height: 76rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
border-radius: 10rpx;
opacity: 1;

@ -293,7 +293,7 @@
width: 100%;
align-items: center;
.leftarr{
background-color: #b9af9d;
background-color: #00a89b;
padding: 10rpx;
border-radius: 10rpx;
}
@ -376,7 +376,7 @@
width: 314rpx;
height: 76rpx;
line-height: 76rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
border-radius: 10rpx;
opacity: 1;

@ -538,14 +538,14 @@
height: 75rpx;
}
.cur .ptext{
color: #89965f;
color: #00a89b;
font-size: 33rpx;
font-weight: 600;
}
.cur .pline{
width: 40%;
height: 9rpx;
background: #89965f;
background: #00a89b;
border-radius: 6rpx;
opacity: 1;
margin-left: 30%;
@ -601,6 +601,7 @@
color: #333;
padding: 10rpx 2rpx 15rpx;
text-align: center;
word-wrap: break-word;
}
}
}

@ -51,7 +51,7 @@
<view class="oscell">
<view v-if="item.claName=='团课'" class="txtbg">{{item.claName}}</view>
<view v-else class="txtbg1">{{item.claName}}</view>
<uni-rate :size="20" :readonly="true" :value="item.star" :max="item.star"/>
<uni-rate :size="15" :readonly="true" :value="item.star" :max="item.star"/>
</view>
<view class="oscell" v-if="item.storeName">
<uni-icons type="paperclip" size="18" color="#00A99A"></uni-icons>
@ -101,13 +101,13 @@
<uni-table class="courcon" ref="table" :loading="loading" emptyText="暂无更多数据">
<view class="table_head">
<uni-tr>
<uni-th width="60" align="center" class="leftfix">
<uni-th width="50" align="center" class="leftfix">
<view class="leftcell">
<view class="ctitle">日期</view>
<view class="ctitle">15日内</view>
</view>
</uni-th>
<uni-th width="120" align="center" v-for="(item, index) in columnTitles" :key="index">
<uni-th width="80" align="center" v-for="(item, index) in columnTitles" :key="index">
<view class="rightcell">
<view class="ctitle">{{item.day}}</view>
<view class="ctitle">{{item.weekName}}</view>
@ -118,20 +118,21 @@
</view>
<view class="table_body">
<uni-tr v-for="(item, index) in claTimeContainer" :key="index">
<uni-td width="60" align="center" class="leftfix">
<uni-td width="50" align="center" class="leftfix">
<view class="courfix">
{{item.time}}
</view>
</uni-td>
<uni-td width="120" 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">
<view class="courheadtext" v-if="dd.claDate==cell.day"
:style="{color:colorlist[index].fcolor,backgroundColor:colorlist[index].color,borderLeftColor:colorlist[index].fcolor}" >
<view class="ctxt">{{dd.startTime}}-{{dd.endTime}}</view>
<view class="ctxt">{{dd.courseName}}</view>
<view class="ctxt" style="font-weight: 600;">{{dd.courseName}}</view>
<view class="ctxt">{{dd.claName}}</view>
<view class="ctxt">{{dd.staffName}}</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>
</view>
@ -762,10 +763,10 @@
date:this.list[this.tabCurrentIndex].redate
}
const {data: res} = await uni.$http.post('/api/course/getCourseListByDate', para);
if(res&&res.length>0){
if(res&&res.data&&res.data.length>0){
this.list[this.tabCurrentIndex].loadStatus="noMore";
this.$forceUpdate();
this.list[this.tabCurrentIndex].slist=res;
this.list[this.tabCurrentIndex].slist=res.data;
this.$forceUpdate();
}
else{
@ -916,7 +917,7 @@
}
.tabtip{
position: absolute;
top: -6rpx;
top: 0;
left: 10rpx;
position: relative;
display: inline-block;
@ -1057,6 +1058,7 @@
flex-direction: row;
justify-content: center;
align-items: center;
width: 100%;
.osimg{
width: 160rpx;
height: 260rpx;
@ -1065,13 +1067,14 @@
.osname{
display: flex;
flex: 1;
display: flex;
width: 100%;
flex-direction: column;
margin-left: 26rpx;
margin-left: 20rpx;
.oscell{
display: flex;
flex-direction: row;
margin-bottom: 10rpx;
align-items: center;
}
.txtbg{
padding: 2rpx 15rpx;
@ -1246,13 +1249,13 @@
position: sticky;
left: 0;
z-index: 10;
background-color: #FFFAF2;
background-color: #F2F2F2;
}
::v-deep .uni-table-tr .uni-table-td:first-child {
position: sticky;
left: 0;
z-index: 99;
background-color: #FFFAF2;
background-color: #F2F2F2;
}
.leftfix{
position: sticky;
@ -1276,37 +1279,40 @@
flex-direction: column;
align-items: center;
justify-content: center;
width: 120rpx;
width: 100%;
height: 120rpx;
background-color: #fffae0;
background-color: #e4f9f7;
border-right: 1rpx solid #fff;
}
.rightcell{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 240rpx;
width: 100%;
height: 120rpx;
background-color: #ffffff;
background-color: #e4f9f7;
border-radius: 10rpx;
border-right: 1rpx solid #fff;
position: relative;
}
.cnum{
position: absolute;
top:15rpx;
right: 20rpx;
bottom:30rpx;
right: 6rpx;
min-width: 28rpx;
padding: 0 2rpx;
border-radius: 50% 50%;
background-color: #ff0000;
color: #FFF;
font-size: 22rpx;
font-size: 20rpx;
}
.courhead{
border-radius: 8rpx;
background-color: #ffffff;
display: flex;
flex-direction: column;
width: 120rpx;
width: 100rpx;
height: 120rpx;
justify-content: center;
align-items: center;
@ -1315,11 +1321,11 @@
top: 0;
}
.ctitle{
font-size: 30rpx;
font-size: 26rpx;
color:#000;
}
.courcell{
width: 120rpx;
width: 100rpx;
height: 120rpx;
border-bottom: 1rpx dotted #ccc;
background-color: #ffffff;
@ -1333,18 +1339,20 @@
z-index: 19;
display: flex;
flex-direction: column;
width: 120rpx;
height: 240rpx;
background-color: #FFFAF2;
width: 100%;
height: 280rpx;
background-color: #F2F2F2;
justify-content: center;
align-items: center;
border-bottom: 1rpx dotted #ccc;
color:#000;
font-size: 28rpx;
}
.courheadtext{
display: flex;
flex-direction: column;
width: 240rpx;
height: 240rpx;
width: 100%;
height: 280rpx;
justify-content: center;
align-items: center;
border-radius: 10rpx;
@ -1353,8 +1361,9 @@
border-left: solid;
}
.ctxt{
font-size: 28rpx;
line-height: 36rpx;
font-size: 24rpx;
line-height: 30rpx;
margin-bottom: 6rpx;
}
.orderbtn{
background-color: #00A99A !important;

@ -55,7 +55,7 @@
<uni-rate :size="20" :readonly="true" :value="item.star" :max="item.star"/>
</view>
<view class="oscell" v-if="item.tip">
<uni-icons type="paperclip" size="18" color="#89965f"></uni-icons>
<uni-icons type="paperclip" size="18" color="#00a89b"></uni-icons>
<view class="ntip">{{item.tip}}</view>
</view>
<view class="oscell">
@ -64,11 +64,11 @@
<view class="txt">{{item.teacherposition }}</view>
</view>
<view class="oscell">
<uni-icons type="map-pin-ellipse" size="18" color="#89965f"></uni-icons>
<uni-icons type="map-pin-ellipse" size="18" color="#00a89b"></uni-icons>
<view class="ntxt">{{item.room}}</view>
</view>
<view class="oscell">
<uni-icons type="checkbox" size="18" color="#89965f"></uni-icons>
<uni-icons type="checkbox" size="18" color="#00a89b"></uni-icons>
<view class="ntxt">已预约{{item.order}}/{{item.limit}}</view>
</view>
<view class="oscell">
@ -1772,13 +1772,13 @@
height: 90rpx;
}
.cur .ptext{
color: #89965f;
color: #00a89b;
font-size: 36rpx;
}
.cur .pline{
width: 40%;
height: 9rpx;
background: #89965f;
background: #00a89b;
border-radius: 6rpx;
opacity: 1;
margin-left: 30%;
@ -1812,8 +1812,8 @@
}
}
.tabcell.cur{
background-color: #f3f4ee;
border: 1rpx solid #89965f;
background-color: #e4f9f7;
border: 1rpx solid #00a89b;
border-radius: 10rpx;
}
@ -1834,7 +1834,7 @@
background-position: center;
font-size: 28rpx;
text-align: center;
color: #89965f;
color: #00a89b;
overflow: hidden;
}
.scell{
@ -1971,14 +1971,14 @@
border:0 !important;
}
.orderbtn{
background-color: #89965f !important;
background-color: #00a89b !important;
margin-left: 20rpx;
border-radius: 40rpx;
height: 46rpx;
line-height: 44rpx;
padding: 0 20rpx;
font-size: 24rpx;
border:1rpx solid #89965f;
border:1rpx solid #00a89b;
margin-bottom: 30rpx;
}
.orderbtn::after{
@ -2181,13 +2181,13 @@
line-height: 36rpx;
}
.orderbtn{
background-color: #89965f !important;
background-color: #00a89b !important;
border-radius: 40rpx;
height: 40rpx;
line-height: 38rpx;
padding: 0 20rpx;
font-size: 24rpx;
border:1rpx solid #89965f;
border:1rpx solid #00a89b;
margin-top: 6rpx;
}
.orderbtn::after{
@ -2214,7 +2214,7 @@
width: 314rpx;
height: 76rpx;
line-height: 76rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
border-radius: 10rpx;
opacity: 1;

@ -405,14 +405,14 @@
height: 75rpx;
}
.cur .ptext{
color: #89965f;
color: #00a89b;
font-size: 33rpx;
font-weight: 600;
}
.cur .pline{
width: 40%;
height: 9rpx;
background: #89965f;
background: #00a89b;
border-radius: 6rpx;
opacity: 1;
margin-left: 30%;
@ -468,6 +468,7 @@
color: #333;
padding: 10rpx 2rpx 15rpx;
text-align: center;
word-wrap: break-word;
}
}
}

@ -385,14 +385,14 @@
height: 75rpx;
}
.cur .ptext{
color: #89965f;
color: #00a89b;
font-size: 33rpx;
font-weight: 600;
}
.cur .pline{
width: 40%;
height: 9rpx;
background: #89965f;
background: #00a89b;
border-radius: 6rpx;
opacity: 1;
margin-left: 30%;
@ -448,6 +448,7 @@
color: #333;
padding: 10rpx 10rpx 15rpx;
text-align: center;
word-wrap: break-word;
}
}
}

@ -427,7 +427,7 @@
if (!keyword) return text;
// 使<span>
const regex = new RegExp(keyword, 'gi');
return text.replace(regex, `<span style="color:#89965f">${keyword}</span>`);
return text.replace(regex, `<span style="color:#00a89b">${keyword}</span>`);
},
input(res) {
if(!this.ifsear){

@ -4,13 +4,13 @@
<uni-table class="courcon" ref="table" :loading="loading" emptyText="暂无更多数据">
<view class="table_head">
<uni-tr>
<uni-th width="60" align="center" class="leftfix">
<uni-th width="50" align="center" class="leftfix">
<view class="leftcell">
<view class="ctitle">日期</view>
<view class="ctitle">15日内</view>
</view>
</uni-th>
<uni-th width="120" align="center" v-for="(item, index) in columnTitles" :key="index">
<uni-th width="80" align="center" v-for="(item, index) in columnTitles" :key="index">
<view class="rightcell">
<view class="ctitle">{{item.day?(item.day).slice(-5):''}}</view>
<view class="ctitle">{{item.weekName}}</view>
@ -21,12 +21,12 @@
</view>
<view class="table_body">
<uni-tr v-for="(item, index) in claTimeContainer" :key="index">
<uni-td width="60" align="center" class="leftfix">
<uni-td width="50" align="center" class="leftfix">
<view class="courfix">
{{item.time}}
</view>
</uni-td>
<uni-td width="120" 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" >
<!-- dd.weekDay==cell.weekName && -->
@ -36,9 +36,10 @@
:style="{color:colorlist[index].fcolor,backgroundColor:colorlist[index].color,borderLeftColor:colorlist[index].fcolor}"
>
<view class="ctxt">{{dd.startTime}}-{{dd.endTime}}</view>
<view class="ctxt">{{dd.courseName}}</view>
<view class="ctxt" style="font-weight: 600;">{{dd.courseName}}</view>
<view class="ctxt">{{dd.claName}}</view>
<view class="ctxt">{{dd.staffName}}</view>
<view class="ctxt" v-if="dd.staffName">{{dd.staffName}}</view>
<view class="ctxt" v-if="dd.roomName">{{dd.roomName}}</view>
</view>
</block>
</block>
@ -687,13 +688,13 @@
position: sticky;
left: 0;
z-index: 10;
background-color: #FFFAF2;
background-color: #F2F2F2;
}
::v-deep .uni-table-tr .uni-table-td:first-child {
position: sticky;
left: 0;
z-index: 10;
background-color: #FFFAF2;
background-color: #F2F2F2;
}
.leftfix{
position: sticky;
@ -717,36 +718,40 @@
flex-direction: column;
align-items: center;
justify-content: center;
width: 120rpx;
width: 100%;
height: 120rpx;
background-color: #fffae0;
background-color: #e4f9f7;
border-right: 1rpx solid #fff;
}
.rightcell{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 240rpx;
width: 100%;
height: 120rpx;
background-color: #ffffff;
background-color: #e4f9f7;
border-radius: 10rpx;
border-right: 1rpx solid #fff;
position: relative;
}
.cnum{
position: absolute;
top:15rpx;
right: 20rpx;
bottom:30rpx;
right: 6rpx;
min-width: 28rpx;
padding: 0 2rpx;
border-radius: 50% 50%;
background-color: #ff0000;
color: #FFF;
font-size: 22rpx;
font-size: 20rpx;
}
.courhead{
border-radius: 8rpx;
background-color: #ffffff;
display: flex;
flex-direction: column;
width: 120rpx;
width: 100rpx;
height: 120rpx;
justify-content: center;
align-items: center;
@ -755,34 +760,36 @@
top: 0;
}
.ctitle{
font-size: 30rpx;
font-size: 26rpx;
color:#000;
}
.courcell{
width: 120rpx;
width: 100rpx;
height: 120rpx;
border-bottom: 1rpx dotted #ccc;
background-color: #ffffff;
}
.chcell{
width: 240rpx;
width: 200rpx;
}
.courfix{
position: sticky;
left: 0;
display: flex;
flex-direction: column;
width: 120rpx;
height: 180rpx;
width: 100%;
height: 240rpx;
justify-content: center;
align-items: center;
border-bottom: 1rpx dotted #ccc;
color: #000;
font-size: 28rpx;
}
.courheadtext{
display: flex;
flex-direction: column;
width: 240rpx;
height: 180rpx;
width: 100%;
height: 240rpx;
justify-content: center;
align-items: center;
border-radius: 10rpx;
@ -791,8 +798,9 @@
border-left: solid;
}
.ctxt{
font-size: 28rpx;
line-height: 36rpx;
font-size: 24rpx;
line-height: 30rpx;
margin-bottom: 6rpx;
}
}

@ -602,7 +602,7 @@
width: 314rpx;
height: 76rpx;
line-height: 76rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
border-radius: 10rpx;
opacity: 1;

@ -242,7 +242,7 @@
uni.showLoading({
title: '数据加载中...'
});
const {data: res} = await uni.$http.post('/api/my/courseTimeDetail', {id:this.id});
const {data: res} = await uni.$http.post('/api/my/courseTimeDetail', {courseTimeId:this.id});
if(res&&res.data){
var data=res.data;
//
@ -381,6 +381,7 @@
color: #333;
padding: 10rpx 10rpx 15rpx;
text-align: center;
word-wrap: break-word;
}
}
}

@ -33,13 +33,26 @@
课程{{item.courseName}}
</view>
<view class="ptxt">
收费模式{{item.chargeType=='hour'?'课时':(item.chargeType=='date'?'时间':(item.chargeType=='cycle'?'周期':'其他'))}}
收费模式{{ item.chargeType?retStr(item.chargeType):'其他' }}
</view>
</view>
<view class="pcon">
<view class="ptxt">
次数{{item.count}}
</view>
</view>
<view class="pcon">
<view class="ptxt">
时间{{item.days}}
</view>
</view>
<view class="pcon">
<view class="ptxt" style="width: 280rpx;">
收费{{item.receiptFee}}
</view>
<view class="ptxt">
储值{{item.totalFee}}
</view>
</view>
<view class="pcon">
<view class="ptxt">
@ -89,26 +102,14 @@
contentrefresh: '加载中',
contentnomore: ''
},
goodsList: [
// {
// id:1,
// name:"",
// sex:"",
// age:"20",
// phone:"18900000001",
// type:"",
// date:"20250305-20250405",
// },
],
loadStatus:'more',
page: {
pageNum: 1,
pageSize: 10
}
goodsList:[],
chargeTypes:[],
loadStatus:'more'
};
},
onLoad(options) {
this.getList();
this.getDic();
},
onPullDownRefresh() {
setTimeout(()=>{
@ -232,6 +233,22 @@
this.$forceUpdate();
}
},
async getDic() {
const {data: res} = await uni.$http.get('/api/dict/data/list/dictType/charge_type');
if(res&&res.data){
this.chargeTypes=res.data;
this.$forceUpdate();
}
},
retStr(code){
var ret="";
this.chargeTypes.forEach(cell=>{
if(cell.dictValue==code){
ret=cell.dictLabel;
}
})
return ret;
},
searDo(){
this.loadStatus="more";
this.loadData();

@ -174,7 +174,7 @@ export default {
color: #FCFCFD;
height: 80rpx;
line-height: 80rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
border-radius: 10rpx;
opacity: 1;

@ -18,7 +18,7 @@
<view class="title">
<image class="timg" src="../../static/image/tz.png"></image>开启通知
</view>
<view style="color:#89965f">已开启</view>
<view style="color:#00a89b">已开启</view>
<uni-icons type="right" size="18" color="#777777"></uni-icons>
</view> -->
<view class="cells" @tap="gotopwd()">
@ -243,7 +243,7 @@
border-radius: 5rpx;
text-align: center;
font-size: 28rpx;
color: #89965f;
color: #00a89b;
margin: 50rpx 20rpx 30rpx;
}
.listcell {

@ -550,14 +550,14 @@
height: 75rpx;
}
.cur .ptext{
color: #89965f;
color: #00a89b;
font-size: 33rpx;
font-weight: 600;
}
.cur .pline{
width: 40%;
height: 9rpx;
background: #89965f;
background: #00a89b;
border-radius: 6rpx;
opacity: 1;
margin-left: 30%;
@ -613,6 +613,7 @@
color: #333;
padding: 10rpx 10rpx 15rpx;
text-align: center;
word-wrap: break-word;
}
}
}

@ -58,30 +58,48 @@
<view v-if="favoritesnum>0" class="num">{{favoritesnum}}</view>
<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(1)">
<view class="image-wrapper">
<image class="imgicon" :src="servers[1].img" mode="aspectFill" lazy-load></image>
</view>
<view class="title">{{servers[1].name}}</view>
</view>
<!-- 我的课程 -->
<view class="product-item" @click="gotoServe(2)">
<view class="image-wrapper">
<image class="imgicon" :src="servers[2].img" mode="aspectFill" lazy-load></image>
</view>
<view class="title">{{servers[2].name}}</view>
</view>
<!-- 我的预约 -->
<view class="product-item" @click="gotoServe(3)">
<view class="image-wrapper">
<image class="imgicon" :src="servers[3].img" mode="aspectFill" lazy-load></image>
</view>
<view class="title">{{servers[3].name}}</view>
</view>
<!-- 预约学员 教练-->
<view v-if="ifview(104)" class="product-item" @click="gotoServe(12)">
<view class="image-wrapper">
<image class="imgicon" :src="servers[12].img" mode="aspectFill" lazy-load></image>
</view>
<view class="title">{{servers[12].name}}</view>
</view>
<!-- 预约学员 店长 -->
<view v-if="ifview(105)" class="product-item" @click="gotoServe(13)">
<view class="image-wrapper">
<image class="imgicon" :src="servers[13].img" mode="aspectFill" lazy-load></image>
</view>
<view class="title">{{servers[13].name}}</view>
</view>
<!-- 我的客户 -->
<view v-if="ifview(103)" class="product-item" @click="gotoServe(4)">
<view class="image-wrapper">
@ -131,11 +149,11 @@
</view>
<view class="title">{{servers[11].name}}</view>
</view>
<view v-if="userid" class="product-item" @click="gotoServe(12)">
<view v-if="userid" class="product-item" @click="gotoServe(99)">
<view class="image-wrapper">
<image class="imgicon" :src="servers[12].img" mode="aspectFill" lazy-load></image>
<image class="imgicon" :src="servers[14].img" mode="aspectFill" lazy-load></image>
</view>
<view class="title">{{servers[12].name}}</view>
<view class="title">{{servers[14].name}}</view>
</view>
</scroll-view>
</view>
@ -260,6 +278,16 @@
},
{
key:12,
img:'../../static/image/yyjl.png',
name:'预约学员',//
},
{
key:13,
img:'../../static/image/yyjl.png',
name:'预约学员',//
},
{
key:99,
img:'../../static/image/tc.png',
name:'退出登录',
},
@ -279,10 +307,10 @@
this.openId = myCache('openId');
var user = myCache('userInfo');
this.userid = user.userId? user.userId:'';
// this.nickName= user.nickName? user.nickName:'';
this.avatar = user.avatar?user.avatar:'../../static/image/logo.png';
this.nickName= user.nickName? user.nickName:'';
this.phone = user.phonenumber;
// this.signature = user.signature;
// this.avatar = user.avatar?user.avatar:'../../static/image/logo.png';
this.signature = user.signature;
this.roleId=user.roleId?user.roleId:[];
}
@ -322,6 +350,7 @@
},
methods: {
ifview(value){
// ID103 104 105 107
var str=false;
this.roleId.forEach(item=>{
if(item==value)
@ -454,6 +483,18 @@
});
}
else if(ii==12){
// -
uni.navigateTo({
url: `/pages/book/bookteacher`
});
}
else if(ii==13){
// -
uni.navigateTo({
url: `/pages/book/booktshop`
});
}
else if(ii==99){
// 退
uni.showModal({
title: '提示',
@ -486,10 +527,11 @@
myCache('phone','');
myCache('openId','');
myCache('userid','');
// myCache('shop','');
// myCache('myshop','');
// myCache('myshopid','');
// myCache('shoplist','');
// 退
myCache('shop','');
myCache('myshop','');
myCache('myshopid','');
myCache('shoplist','');
//
this.menus[0].num=0;
@ -597,7 +639,6 @@
}
},
logindo(){
console.log(this.userid)
if(this.userid==""||this.userid=="0"){
// this.$refs.loginId.open();
uni.navigateTo({
@ -667,7 +708,7 @@
height: 105rpx;
line-height: 100rpx;
align-items: center;
background-color: #89965f;
background-color: #00a89b;
padding-left: 20rpx;
.tx1{
font-size: 32rpx;
@ -732,7 +773,7 @@
border-radius: 30rpx;
font-size: 24rpx;
color: #888;
background: #f3f4ee;
background: #e4f9f7;
}
.scan{

@ -370,7 +370,7 @@
width: 560rpx;
height: 76rpx;
line-height: 76rpx;
background: #89965f;
background: #00a89b;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(137,150,95,0.4);
border-radius: 10rpx;
opacity: 1;

@ -410,14 +410,14 @@
height: 75rpx;
}
.cur .ptext{
color: #89965f;
color: #00a89b;
font-size: 33rpx;
font-weight: 600;
}
.cur .pline{
width: 40%;
height: 9rpx;
background: #89965f;
background: #00a89b;
border-radius: 6rpx;
opacity: 1;
margin-left: 30%;
@ -473,6 +473,7 @@
color: #333;
padding: 10rpx 2rpx 15rpx;
text-align: center;
word-wrap: break-word;
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 166 KiB

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1017 B

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 615 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save