1378 lines
37 KiB
Vue
1378 lines
37 KiB
Vue
<!-- 菜单悬浮的原理: 通过给菜单添加position:sticky实现, 用法超简单, 仅APP端的低端机不兼容 https://caniuse.com/#feat=css-sticky -->
|
||
<template>
|
||
<view class="content">
|
||
<!-- 对于mescroll-body: 需设置:sticky="true", 此应避免在mescroll-body标签前面加其他非定位的元素, 否则下拉区域会被挤出, 无法会隐藏.-->
|
||
<!-- 对于mescroll-uni: 则无需设置:sticky="true", 无其他限制和要求 -->
|
||
|
||
<!-- sticky吸顶悬浮的菜单, 父元素必须是 mescroll -->
|
||
<view class="jishi-index">
|
||
<view class=" u-flex justify-between avatar-section">
|
||
<!--<view class="back-img"
|
||
:style="{'background-image':
|
||
technicianType=='3'?'url(../../static/grade1.png)':
|
||
technicianType=='4'?'url(../../static/grade2.png)':
|
||
technicianType=='5'?'url(../../static/grade3.gif)':''
|
||
}">
|
||
<image :src="avatar" class="head-port"
|
||
@click="goNav('/pages/my/userinfo')"></image>
|
||
</view>-->
|
||
|
||
<view class="back-img">
|
||
<image :src="avatar" class="head-port" @click="goNav('/pages/my/userinfo')"></image>
|
||
<image class="popop-kuang" v-if="technicianType" :src="technicianType=='3'?'../../static/grade1.gif':technicianType=='4'?'../../static/grade2.gif':'../../static/grade3.gif'"></image>
|
||
</view>
|
||
<view class="u-flex-1" v-if="isLogin && userName">
|
||
<view class="u-font-18">
|
||
<view class="flex align-center">
|
||
<view class="margin-left-sm avatar-section-text">{{ userName }}</view>
|
||
<view class="labe zhuangtai" @tap="stateSave">
|
||
<view v-if="isTrue">已上线</view>
|
||
<view v-if="!isTrue">已离线</view>
|
||
</view>
|
||
</view>
|
||
<view class="flex margin-left-sm margin-top-xs">
|
||
<view class="online-tag" v-if="renzheng == 0" @click.stop="goNav('/my/renzheng/index?classify=' + 1)">
|
||
暂未实名认证
|
||
</view>
|
||
<view class="online-tag" v-if="renzheng == 1" @click.stop="goNav('/my/renzheng/index?classify=' + 1)">
|
||
实名审核中
|
||
</view>
|
||
<view class="online-tag" v-if="renzheng == 2">
|
||
已实名认证
|
||
</view>
|
||
<view class="online-tag" v-if="renzheng == 3" @click.stop="goNav('/my/renzheng/index?classify=' + 1)">
|
||
实名已拒绝
|
||
</view>
|
||
</view>
|
||
|
||
</view>
|
||
</view>
|
||
<view v-else class="logon" @click="goLogin('/pages/public/login')">
|
||
登录
|
||
</view>
|
||
</view>
|
||
<!-- <view class="flex align-center padding-left bg">
|
||
<image src="../../static/images/data.png" style="width: 26upx;height: 26upx;"></image>
|
||
<view class="margin-left-xs flex align-center" style="color: #999999;">
|
||
<view @click="bindData(1)">{{startTime?startTime:'开始时间'}}</view>
|
||
至
|
||
<view @click="bindData(2)">{{endTime?endTime:'结束时间'}}</view>
|
||
</view>
|
||
</view> -->
|
||
<!-- <me-tabs v-model="tabIndex" nameKey='title' :tabs="tabs" @change="tabChange"></me-tabs> -->
|
||
|
||
</view>
|
||
<u-tabs :list="tabs" :is-scroll="true" :current="tabIndex" @change="tabChange" active-color="#000000"
|
||
inactive-color="#999999" :customStyle="{ 'background-color': '#050505' }" isShowImg textClass="">
|
||
</u-tabs>
|
||
<mescroll-body :sticky="true" ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback"
|
||
style="padding: 0 16px;width: 100%;min-height: 100vh; background: #f5f5f5; margin-top: 12px;">
|
||
<!-- 数据列表 -->
|
||
<!-- <view v-if="goods.length > 0" class="margin-sm padding-sm bg radius" v-for="(item,index) in goods"
|
||
:key='index' @click="clickItem(item)"> -->
|
||
<view class="bgwhite radius margin-bottom-sm padding-order " v-for="(item, index) in goods" :key='index' style="position: relative;"
|
||
@click="goNav('/my/order/revenueDetails?ordersId=' + item.ordersId)">
|
||
|
||
<view class="pintuan_syrs flex justify-between" v-if="item.status == 6">
|
||
<view class="pintuan-title" >
|
||
<image src="../../static/clock.png" class="pintuan-img"></image>
|
||
<span class="pintuan-text">服务倒计时</span>
|
||
</view>
|
||
<!-- <uni-countdown ref="countDownEl" :title="'剩余'" :fontSize="'14'" :showDay="false"
|
||
:hour="item.endTime.hour" :minute="item.endTime.minute" :second="item.endTime.second"
|
||
color="#20C675">
|
||
</uni-countdown> -->
|
||
<u-count-down :timestamp="item.endOfServiceTimer" separator-color="#20C675" color="#20C675"
|
||
font-size="30" separator-size="30"></u-count-down>
|
||
</view>
|
||
|
||
<view class="flex justify-between padding-sm">
|
||
<view class="progress-text">
|
||
<text class="title-font text-bold">预约时间:</text>
|
||
<text class="title-font">{{ item.serveTime }}</text>
|
||
</view>
|
||
<!-- <view class="text-green" v-if="item.status == 1">待支付</view> -->
|
||
<view class="progress-status-fk" v-if="item.status == 2">待服务</view>
|
||
<view class="progress-status" v-if="item.status == 3">待评价</view>
|
||
<view class="progress-status-qx" v-if="item.status == 4">已取消</view>
|
||
<view class="progress-status-wa" v-if="item.status == 5">已完成</view>
|
||
<view class="progress-status-jx" v-if="item.status == 6">服务中</view>
|
||
<view class="progress-status-cf" v-if="item.status == 7">技师出发</view>
|
||
<view class="progress-status-dd" v-if="item.status == 8">技师到达</view>
|
||
<view class="progress-status-qr" v-if="item.status ==9&&!item.refusalContent">待确认</view>
|
||
<view class="progress-status-jd" v-if="item.status == 9&&item.refusalContent" >拒单审核中</view>
|
||
<view class="progress-status-daibu" v-if="item.status ==10">待补单</view>
|
||
<view v-if="item.overTimeOrders == 1" class="progress-status-chaoshi">[超时]</view>
|
||
<!-- <view class="text-green" v-if="item.state ==1 ||item.state ==2">待完成</view>
|
||
<view class="text-green" v-if="item.state ==3||item.state ==4">已完成</view> -->
|
||
</view>
|
||
<!-- mescroll-downwarp -->
|
||
<view class=" u-flex u-p-t-30 padding-sm">
|
||
<view class="u-m-r-10">
|
||
<u-avatar :src="item.massageImg ? item.massageImg : '../../static/logo.png'" mode="square"
|
||
size="160">
|
||
</u-avatar>
|
||
</view>
|
||
<view class="u-flex-1 margin-left-xs">
|
||
<view class="u-font-18 text-bold u-line-1">
|
||
<view class="value-font">
|
||
{{item.title}}
|
||
</view>
|
||
</view>
|
||
<view class="title-font" style="margin-top: 8px;">{{ item.address }}</view>
|
||
</view>
|
||
</view>
|
||
<view class="flex justify-between align-center padding-sm">
|
||
<view class="flex title-font2">
|
||
{{ item.ordersNo }}
|
||
</view>
|
||
<view class="flex-sub">
|
||
<text class="title-font">实收:</text>
|
||
<text class="value-font text-bold" style="color: #F95900;">¥{{ item.artificerMoneyTotal }}</text>
|
||
</view>
|
||
</view>
|
||
<view class="flex u-p-t-20 u-p-b-20 justify-between align-center padding-sm">
|
||
|
||
<view class="flex text-right" style="width: 100%;flex-direction: column;">
|
||
<!-- <u-button v-if="item.status == 1" :custom-style="customStyle" shape="circle" :plain="true"
|
||
@click="cancelOrder(item)">取消订单</u-button> -->
|
||
<!-- <u-button v-if="item.status == 1" :custom-style="customStyle1" shape="circle" :plain="true"
|
||
@click="goNav('/my/order/pay?id=' + item.ordersId + '&isTrue=1')">查看详情</u-button> -->
|
||
<view class="showBtn">
|
||
<!-- <view class="gengduo" @click.stop="gengBtn(index)">更多</view> -->
|
||
<view class="order-status showBtn-view">
|
||
|
||
<!-- <u-button :custom-style="customStyle" v-if="item.status == 1||item.status == 7||item.status == 8||item.status == 9" shape="circle" :plain="true"
|
||
@click="bindphone(item.phone)">联系客户</u-button> -->
|
||
<u-button :custom-style="customStyle1" shape="circle" :plain="true"
|
||
@click="cxOrder(item)" v-show="item.status == 2">现在出发</u-button>
|
||
<u-button v-if="item.status == 9 && !item.refusalContent&&judanBtnShow=='是'" :custom-style="customStyle1" shape="circle" :plain="true"
|
||
@click="toggle('bottom',item.ordersId)">拒单申请</u-button>
|
||
<u-button :custom-style="customStyle1" shape="circle" :plain="true"
|
||
@click="cxOrder(item)" v-if="item.status == 7">我已到达</u-button>
|
||
<u-button :custom-style="customStyle1" shape="circle" :plain="true"
|
||
@click="fuwuOrder(item)" v-if="item.status == 8">开始服务</u-button>
|
||
<u-button :custom-style="customStyle1" shape="circle" :plain="true"
|
||
@click="goZhuan(item)" v-if="item.status == 8&&item.isCanSupplement=='1'">转待补单</u-button>
|
||
|
||
<u-button v-if="item.status == 6&&(item.earlyFinishReason!=null||item.endOfServiceTimer<0)" :custom-style="customStyle1" shape="circle" :plain="true"
|
||
@click="cancel(item)">服务完成</u-button>
|
||
<u-button v-if="item.status == 9&& !item.refusalContent" :custom-style="customStyle1" shape="circle" :plain="true"
|
||
@click="nineState(item.ordersId)">确认接单</u-button>
|
||
<u-button :custom-style="customStyle" shape="circle" :plain="true"
|
||
@click="goChat">联系客服</u-button>
|
||
</view>
|
||
</view>
|
||
<view class="hideBtn" v-if="gengBtnShow==true" :style="gengNum==index?{display:'inline-block'}:{display:'none'}">
|
||
<!-- refusalContent不等于空并且status == 9 就是拒单审核中 -->
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<empty v-if="goods.length == 0"></empty>
|
||
<!-- 开始时间 -->
|
||
<u-picker v-model="startshow" mode="time" :params="paramsStart" @confirm="startData"></u-picker>
|
||
<!-- 结束时间 -->
|
||
<u-picker v-model="endshow" mode="time" :params="paramsEnd" @confirm="endData"></u-picker>
|
||
</mescroll-body>
|
||
<view>
|
||
<!-- 普通弹窗 -->
|
||
<uni-popup ref="popup" type="bottom" background-color="#fff">
|
||
<view class="popup-content">
|
||
<!--<view class="popup-head">
|
||
<span></span>
|
||
<span @click="closePopup(type)">x</span>
|
||
</view>-->
|
||
<view class="popup-head">
|
||
<image src="../../static/closeimg.png" class="popup-img" @click="closePopup(type)"></image>
|
||
</view>
|
||
<view class="popup-mian">
|
||
<view class="popup-view">
|
||
<view class="beizhu">
|
||
<view class="popup-title">拒绝申请原因</view>
|
||
<textarea class="beizhu-textarea" @input="refusa" placeholder="拒绝申请原因,请在此输入" name="" id="" cols="30" rows="10"></textarea>
|
||
</view>
|
||
</view>
|
||
<view class="popup-mian-btn">
|
||
<span @click="closePopup(type)">
|
||
取消
|
||
</span>
|
||
<span @click="juJueState()">
|
||
确定
|
||
</span>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</uni-popup>
|
||
</view>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import MescrollMixin from "@/components/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
|
||
import mescrollBody from "@/components/mescroll-uni/components/mescroll-body/mescroll-body.vue";
|
||
import meTabs from "@/components/mescroll-uni/me-tabs/me-tabs.vue";
|
||
import empty from '@/components/empty.vue'
|
||
import * as websocketUtils from 'utils/websocketUtils.js';
|
||
|
||
export default {
|
||
mixins: [MescrollMixin], // 使用mixin
|
||
components: {
|
||
mescrollBody,
|
||
meTabs,
|
||
empty
|
||
},
|
||
data() {
|
||
return {
|
||
technicianType:'',
|
||
judanBtnShow:'否',
|
||
btnShow:'',
|
||
refusalContent:'',
|
||
type:'center',
|
||
jordersId:'',
|
||
endOfServiceTimer: null,
|
||
goods: [], // 数据列表
|
||
num: 1,
|
||
game: [],
|
||
tabs: [{
|
||
//这四个都支持支持class,style,src,onClick,等html内容
|
||
//选中图片
|
||
activityImageProps: {
|
||
src: '../../static/images/order_01.png',
|
||
style: 'width: 26px;height: 26px;',
|
||
},
|
||
//未选中时的样式
|
||
noactivityImageProps: {
|
||
src: '../../static/images/order_011.png',
|
||
style: 'width: 26px;height: 26px;',
|
||
},
|
||
//选中时的文字
|
||
activityTitleTextProps: {
|
||
class: 'activityTitleTextProps',
|
||
},
|
||
//未选中时的文字
|
||
noactivityTitleTextProps: {
|
||
class: 'noactivityTitleTextProps',
|
||
},
|
||
name: '今日订单',
|
||
status: '1'
|
||
}, {
|
||
activityImageProps: {
|
||
src: '../../static/images/order_02.png',
|
||
style: 'width: 30px;height: 30px;',
|
||
},
|
||
noactivityImageProps: {
|
||
src: '../../static/images/order_022.png',
|
||
style: 'width: 30px;height: 30px;',
|
||
},
|
||
activityTitleTextProps: {
|
||
class: 'activityTitleTextProps',
|
||
},
|
||
noactivityTitleTextProps: {
|
||
class: 'noactivityTitleTextProps',
|
||
},
|
||
name: '待服务',
|
||
status: '2'
|
||
}, {
|
||
activityImageProps: {
|
||
src: '../../static/images/order_03.png',
|
||
style: 'width: 30px;height: 30px;',
|
||
},
|
||
noactivityImageProps: {
|
||
src: '../../static/images/order_033.png',
|
||
style: 'width: 30px;height: 30px;',
|
||
},
|
||
activityTitleTextProps: {
|
||
class: 'activityTitleTextProps',
|
||
},
|
||
noactivityTitleTextProps: {
|
||
class: 'noactivityTitleTextProps',
|
||
},
|
||
name: '已完成',
|
||
status: '3'
|
||
}, {
|
||
activityImageProps: {
|
||
src: '../../static/images/order_04.png',
|
||
style: 'width: 30px;height: 30px;',
|
||
},
|
||
noactivityImageProps: {
|
||
src: '../../static/images/order_044.png',
|
||
style: 'width: 28px;height: 30px;',
|
||
},
|
||
activityTitleTextProps: {
|
||
class: 'activityTitleTextProps',
|
||
},
|
||
noactivityTitleTextProps: {
|
||
class: 'noactivityTitleTextProps',
|
||
},
|
||
name: '历史订单',
|
||
status: '4'
|
||
}],
|
||
tabIndex: 0, // tab下标
|
||
isTrue: true,
|
||
page: 1,
|
||
limit: 10,
|
||
userId: 0,
|
||
status: 1,
|
||
nickName: '',
|
||
customStyle: {
|
||
color: '#999999',
|
||
border: '2rpx solid #999999',
|
||
// backgroundColor: '#1E1F31',
|
||
border: "8rpx",
|
||
width: '180rpx',
|
||
height: '54rpx',
|
||
margin: "0 16rpx 0 0rpx"
|
||
},
|
||
customStyle1: {
|
||
color: '#019c88',
|
||
border: '2rpx solid #019c88',
|
||
border: "8rpx",
|
||
width: '180rpx',
|
||
height: '54rpx',
|
||
margin: " 0 16rpx 0 0rpx"
|
||
},
|
||
latitude: '',
|
||
longitude: '',
|
||
avatar: '../../static/logo.png',
|
||
isLogin: true,
|
||
userName: '',
|
||
renzheng: 0,
|
||
startshow: false,
|
||
endshow: false,
|
||
paramsStart: {
|
||
year: true,
|
||
month: true,
|
||
day: true,
|
||
hour: false,
|
||
minute: false,
|
||
second: false
|
||
},
|
||
paramsEnd: {
|
||
year: true,
|
||
month: true,
|
||
day: true,
|
||
hour: false,
|
||
minute: false,
|
||
second: false
|
||
},
|
||
startTime: '',
|
||
endTime: '',
|
||
gengBtnShow:false,
|
||
gengBtnHeid:false,
|
||
gengNum:0,
|
||
}
|
||
},
|
||
onLoad() {
|
||
this.$queue.showLoading("加载中...");
|
||
this.userId = uni.getStorageSync('userId')
|
||
this.nickName = uni.getStorageSync('nickName')
|
||
this.judan()
|
||
let that = this;
|
||
uni.getLocation({
|
||
type: 'wgs84',
|
||
success: function(res) {
|
||
console.log('当前位置的经度:' + res.longitude);
|
||
console.log('当前位置的纬度:' + res.latitude);
|
||
that.$queue.setData('longitude', res.longitude);
|
||
that.$queue.setData('latitude', res.latitude);
|
||
that.latitude = res.latitude
|
||
that.longitude = res.longitude
|
||
}
|
||
});
|
||
|
||
},
|
||
onShow() {
|
||
let that = this;
|
||
this.userId = uni.getStorageSync('userId')
|
||
if (this.userId) {
|
||
this.getArtificer()
|
||
this.isLogin = true
|
||
this.getUserInfo()
|
||
|
||
} else {
|
||
this.isLogin = false
|
||
this.userName = ''
|
||
this.browse = 0
|
||
this.fans = 0
|
||
this.follow = 0
|
||
this.visitor = 0
|
||
this.avatar = '../../static/logo.png'
|
||
}
|
||
setTimeout(d => {
|
||
this.mescroll.resetUpScroll()
|
||
}, 1000)
|
||
this.upCallback({
|
||
num: this.num
|
||
});
|
||
},
|
||
watch: {
|
||
isTrue(newValue) {
|
||
if (newValue) {
|
||
this.$queue.showToast('您已上线');
|
||
} else {
|
||
this.$queue.showToast('您已离线');
|
||
}
|
||
},
|
||
isLogin(newValue) {
|
||
if (!newValue) {
|
||
this.goods = [];
|
||
}
|
||
}
|
||
},
|
||
methods: {
|
||
judan(){//是否显示拒单按钮
|
||
var that=this;
|
||
console.log(11111)
|
||
that.$Request.get('/app/common/type/451').then(res => {
|
||
uni.hideLoading();
|
||
if (res.code == 0) {
|
||
that.judanBtnShow=res.data.value
|
||
} else {
|
||
that.$queue.showToast(res.msg);
|
||
}
|
||
})
|
||
},
|
||
goZhuan(item){//转待补单
|
||
var that=this;
|
||
var data={
|
||
ordersId:item.ordersId,
|
||
isAuto:1,
|
||
type:1
|
||
}
|
||
that.$Request.post('/app/artificer/cancelSupplementOrders', data).then(res => {
|
||
uni.hideLoading();
|
||
if (res.code == 0) {
|
||
that.mescroll.resetUpScroll()
|
||
that.$queue.showToast(res.msg);
|
||
} else {
|
||
that.$queue.showToast(res.msg);
|
||
}
|
||
})
|
||
},
|
||
goLogin(e) {//登录
|
||
uni.navigateTo({
|
||
url: e
|
||
})
|
||
},
|
||
fuwuOrder(e) {
|
||
uni.navigateTo({
|
||
url:'/my/order/revenueDetails?ordersId='+e.ordersId
|
||
})
|
||
},
|
||
cxOrder(e) {//开始出发
|
||
let contentName = '确认已经出发了吗?';
|
||
if (e.status == 7) {
|
||
contentName = '确认到达服务地点准备开始服务了吗?';
|
||
}
|
||
let that = this
|
||
uni.showModal({
|
||
title: '提示',
|
||
content: contentName,
|
||
success: function(res) {
|
||
if (res.confirm) {
|
||
let data = {
|
||
ordersId: e.ordersId
|
||
}
|
||
that.$queue.showLoading('提交中...')
|
||
that.$Request.post('/app/artificer/artificerStartOrEndTime', data).then(res => {
|
||
uni.hideLoading();
|
||
if (res.code == 0) {
|
||
that.mescroll.resetUpScroll()
|
||
uni.showToast({
|
||
title:'出发成功!'
|
||
})
|
||
} else {
|
||
that.$queue.showToast(res.msg);
|
||
}
|
||
})
|
||
} else if (res.cancel) {
|
||
console.log('用户点击取消');
|
||
}
|
||
}
|
||
});
|
||
},
|
||
gengBtn(index){
|
||
console.log(11)
|
||
this.gengNum=index;
|
||
this.gengBtnShow=!this.gengBtnShow
|
||
},
|
||
goChat() {//联系客服
|
||
let kefu = this.$queue.getData('kefu'); // 用户端联系方式 1 手机号 2企业微信
|
||
let kefuPhone = this.$queue.getData('kefuPhone');
|
||
if (uni.getStorageSync('token')) {
|
||
if (kefu == 1) {
|
||
uni.makePhoneCall({
|
||
phoneNumber: kefuPhone //仅为示例
|
||
});
|
||
} else {
|
||
// #ifdef MP-WEIXIN
|
||
let that = this
|
||
try {
|
||
wx.openCustomerServiceChat({
|
||
extInfo: {
|
||
url: that.$queue.getData('kefuUrl')
|
||
},
|
||
corpId: that.$queue.getData('kefuAppId'),
|
||
success(res) {},
|
||
fail(res) {
|
||
console.error(res)
|
||
}
|
||
})
|
||
} catch (error) {
|
||
console.error("catchcatch" + error)
|
||
uni.showToast({
|
||
title: '请更新至微信最新版本'
|
||
});
|
||
}
|
||
// #endif
|
||
// #ifndef MP-WEIXIN
|
||
let url = this.$queue.getData('kefuUrl');
|
||
if (url.indexOf('/pages/') !== -1 || url.indexOf('/my/') !== -1) {
|
||
uni.navigateTo({
|
||
url
|
||
});
|
||
} else {
|
||
//#ifndef H5
|
||
uni.navigateTo({
|
||
url: '/pages/index/webView?url=' + url
|
||
});
|
||
//#endif
|
||
//#ifdef H5
|
||
window.location.href = url;
|
||
//#endif
|
||
}
|
||
// #endif
|
||
}
|
||
} else {
|
||
uni.showModal({
|
||
title: '提示',
|
||
content: '您还未登录,请先登录',
|
||
success: function(res) {
|
||
if (res.confirm) {
|
||
console.log('用户点击确定');
|
||
uni.navigateTo({
|
||
url: '/pages/public/login'
|
||
})
|
||
} else if (res.cancel) {
|
||
console.log('用户点击取消');
|
||
}
|
||
}
|
||
})
|
||
}
|
||
},
|
||
refusa(e){//拒绝接单 原因
|
||
this.refusalContent=e.detail.value
|
||
},
|
||
closePopup(type){// 关闭弹出框
|
||
this.type = type
|
||
this.$refs.popup.close(type);
|
||
},
|
||
toggle(type,ordersId) {// 弹出框
|
||
this.jordersId = ordersId;
|
||
this.type=type;
|
||
// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
|
||
this.$refs.popup.open(type)
|
||
},
|
||
juJueState(){
|
||
var that=this
|
||
if(that.refusalContent){
|
||
that.$Request.getT("/app/artificer/jishiJdsq",{
|
||
ordersId:that.jordersId,
|
||
refusalContent:that.refusalContent
|
||
}).then(res => {
|
||
if (res.code == 0) {
|
||
that.$queue.showToast(res.msg);
|
||
this.$refs.popup.close(this.type);
|
||
that.mescroll.resetUpScroll()
|
||
} else {
|
||
that.$queue.showToast(res.msg);
|
||
}
|
||
});
|
||
}else{
|
||
uni.showToast({
|
||
icon:"error",
|
||
title:'请填写拒单原因'
|
||
})
|
||
}
|
||
},
|
||
nineState(ordersId){//确认接单
|
||
var that=this;
|
||
that.$Request.getT("/app/artificer/jishiQueren",{
|
||
ordersId:ordersId
|
||
}).then(res => {
|
||
if (res.code == 200) {
|
||
console.log("asdsad")
|
||
uni.showToast({
|
||
title:'已确认接单'
|
||
})
|
||
that.mescroll.resetUpScroll()
|
||
} else {
|
||
that.$queue.showToast(res.msg);
|
||
}
|
||
});
|
||
},
|
||
//获取理疗师的信息
|
||
getArtificer() {
|
||
this.$Request.getT("/app/artificer/selectArtificer").then(res => {
|
||
if (res.code == 0) {
|
||
this.technicianType=res.data.technicianType
|
||
if (res.data) {
|
||
if (res.data.status == 1) {
|
||
this.isTrue = true
|
||
} else if (res.data.status == 2) {
|
||
this.isTrue = false
|
||
}
|
||
} else {
|
||
this.isTrue = false
|
||
}
|
||
websocketUtils.changeGoLiveFn(this.isTrue);
|
||
uni.setStorageSync('artificerId', res.data?.artificerId)
|
||
}
|
||
});
|
||
},
|
||
stateSave() {
|
||
this.$Request.postT('/app/artificer/updateArtificer').then(res => {
|
||
if (res.code == 0) {
|
||
this.getArtificer();
|
||
} else {
|
||
this.$queue.showToast(res.msg);
|
||
}
|
||
});
|
||
},
|
||
// 拨打电话
|
||
bindphone(phone) {
|
||
let that = this
|
||
uni.showModal({
|
||
title: '提示',
|
||
content: '是否拨打电话',
|
||
success: function(res) {
|
||
if (res.confirm) {
|
||
console.log('用户点击确定', phone);
|
||
uni.makePhoneCall({
|
||
phoneNumber: phone //仅为示例
|
||
});
|
||
} else if (res.cancel) {
|
||
console.log('用户点击取消');
|
||
}
|
||
}
|
||
});
|
||
},
|
||
/*下拉刷新的回调 */
|
||
downCallback() {
|
||
// 这里加载你想下拉刷新的数据, 比如刷新轮播数据
|
||
// loadSwiper();
|
||
// 下拉刷新的回调,默认重置上拉加载列表为第一页 (自动执行 page.num=1, 再触发upCallback方法 )
|
||
this.mescroll.resetUpScroll()
|
||
},
|
||
timeFormat(param) {
|
||
return param < 10 ? '0' + param : param;
|
||
},
|
||
/*上拉加载的回调: 其中page.num:当前页 从1开始, page.size:每页数据条数,默认10 */
|
||
upCallback(page) {
|
||
console.log('upCallback-->',page);
|
||
// debugger;
|
||
if (!this.isLogin) {
|
||
uni.hideLoading();
|
||
if (this.mescroll) this.mescroll.endSuccess(); // 隐藏加载状态栏
|
||
return;
|
||
}
|
||
// debugger;
|
||
|
||
let curTab = this.tabs[this.tabIndex].status
|
||
this.num = page.num;
|
||
let data = {
|
||
type: curTab,
|
||
page: page.num,
|
||
limit: page.size,
|
||
startTime: this.startTime,
|
||
endTime: this.endTime
|
||
}
|
||
this.$Request.get('/app/artificer/selectTodayOrder', data).then(res => {
|
||
uni.hideLoading();
|
||
this.mescroll.endBySize(res.data.list.length, res.data.totalCount)
|
||
if (page.num == 1) this.goods = []; //如果是第一页需手动制空列表
|
||
this.goods = [...this.goods, ...res.data.list]; //追加新数据
|
||
|
||
this.goods.forEach(ret => {
|
||
switch (ret.state) {
|
||
case '1':
|
||
ret.statusName = '今日订单'
|
||
break;
|
||
case '2':
|
||
ret.statusName = '待完成'
|
||
break;
|
||
case '3':
|
||
ret.statusName = '已完成'
|
||
break;
|
||
case '4':
|
||
ret.statusName = '历史订单'
|
||
break;
|
||
}
|
||
if (ret.status == 6 && ret.endTime) {
|
||
let afterTimeStamp = new Date(ret.endTime).getTime() / 1000;
|
||
let currentTimeStamp = new Date().getTime() / 1000;
|
||
let formatTimeStamp = Math.floor(afterTimeStamp - currentTimeStamp);
|
||
ret.endOfServiceTimer = formatTimeStamp;
|
||
console.log("dddd",ret.ordersNo);
|
||
console.log("eeee",ret.endOfServiceTimer);
|
||
console.log("ffff",ret.earlyFinishReason);
|
||
}
|
||
if (this.$refs.countDownEl) this.$refs.countDownEl.update();
|
||
})
|
||
this.mescroll.endSuccess(res.data.list.length); // 隐藏加载状态栏
|
||
|
||
}).catch(() => {
|
||
//联网失败, 结束加载
|
||
this.mescroll.endErr();
|
||
});
|
||
},
|
||
// 切换菜单
|
||
tabChange(index) {
|
||
this.tabIndex = index
|
||
this.goods = []; // 置空列表,显示加载进度条
|
||
this.mescroll.resetUpScroll()
|
||
},
|
||
// 取消订单
|
||
cancelOrder(e) {
|
||
let that = this
|
||
uni.showModal({
|
||
title: '提示',
|
||
content: '确认取消订单吗?取消订单将会被扣除信用分!',
|
||
success: function(res) {
|
||
if (res.confirm) {
|
||
let data = {
|
||
ordersId: e.ordersId,
|
||
}
|
||
that.$queue.showLoading('提交中...')
|
||
that.$Request.post('/app/artificer/deleteOrders', data).then(res => {
|
||
uni.hideLoading();
|
||
if (res.code == 0) {
|
||
that.mescroll.resetUpScroll()
|
||
} else {
|
||
that.$queue.showToast(res.msg);
|
||
}
|
||
})
|
||
} else if (res.cancel) {
|
||
console.log('用户点击取消');
|
||
}
|
||
}
|
||
});
|
||
},
|
||
// 完成订单
|
||
cancel(e) {
|
||
console.log(11)
|
||
let that = this
|
||
uni.navigateTo({
|
||
url:'/my/order/revenueDetails?ordersId='+e.ordersId
|
||
})
|
||
// uni.showModal({
|
||
// title: '提示',
|
||
// content: '如果服务未完成点击完成订单会遭到平台违规处理,请确认服务是否完毕?',
|
||
// success: function(res) {
|
||
// if (res.confirm) {
|
||
// let data = {
|
||
// ordersId: e.ordersId,
|
||
// accomplishLongitude: that.longitude,
|
||
// accomplishLatitude: that.latitude
|
||
// }
|
||
// that.$queue.showLoading('提交中...')
|
||
// that.$Request.post('/app/artificer/accomplishOrders', data).then(res => {
|
||
// uni.hideLoading();
|
||
// if (res.code == 0) {
|
||
// that.mescroll.resetUpScroll()
|
||
// websocketUtils.uploadAudioEnd(); //关闭音频上传
|
||
// } else {
|
||
// that.$queue.showToast(res.msg);
|
||
// }
|
||
// })
|
||
// } else if (res.cancel) {
|
||
// console.log('用户点击取消');
|
||
// }
|
||
// }
|
||
// });
|
||
},
|
||
//时间弹框开关
|
||
bindData(index) {
|
||
console.log(index, 1111)
|
||
if (index == 1) {
|
||
this.startshow = true
|
||
} else if (index == 2) {
|
||
this.endshow = true
|
||
|
||
}
|
||
},
|
||
//开始时间
|
||
startData(e) {
|
||
// console.log(e)
|
||
this.startTime = e.year + ' ' + e.month + '-' + e.day
|
||
},
|
||
// 结束时间
|
||
endData(e) {
|
||
this.endTime = e.year + ' ' + e.month + '-' + e.day
|
||
// console.log(this.endTime)
|
||
this.mescroll.resetUpScroll()
|
||
},
|
||
goNav(e,name) {
|
||
if (this.userId) {
|
||
uni.navigateTo({
|
||
url: e
|
||
})
|
||
} else {
|
||
uni.showModal({
|
||
title: '提示',
|
||
content: '您还未登录,请先登录',
|
||
success: function(res) {
|
||
if (res.confirm) {
|
||
console.log('用户点击确定');
|
||
uni.navigateTo({
|
||
url: '/pages/public/login'
|
||
})
|
||
} else if (res.cancel) {
|
||
console.log('用户点击取消');
|
||
}
|
||
}
|
||
})
|
||
}
|
||
},
|
||
getUserInfo() {
|
||
this.$Request.get("/app/user/selectUserById").then(res => {
|
||
if (res.code == 0) {
|
||
this.userName = res.data.userName
|
||
this.invitationCode = res.data.invitationCode
|
||
this.avatar = res.data.avatar ? res.data.avatar : '../../static/logo.png'
|
||
this.isAuthentication = res.data.isAuthentication
|
||
|
||
// uni.setStorageSync('isAuthentication', res.data.isAuthentication)
|
||
|
||
uni.setStorageSync('avatar', res.data.avatar)
|
||
uni.setStorageSync('invitationCode', res.data.invitationCode)
|
||
uni.setStorageSync('zhiFuBao', res.data.zhiFuBao)
|
||
uni.setStorageSync('zhiFuBaoName', res.data.zhiFuBaoName)
|
||
|
||
if (res.data.isAuthentication == 0 || res.data.isAuthentication == null) {
|
||
this.renzheng = 0
|
||
uni.setStorageSync("renzheng", this.renzheng)
|
||
} else if (res.data.isAuthentication == 1) {
|
||
this.renzheng = 1
|
||
uni.setStorageSync("renzheng", this.renzheng)
|
||
} else if (res.data.isAuthentication == 2) {
|
||
this.renzheng = 2
|
||
uni.setStorageSync("renzheng", this.renzheng)
|
||
} else if (res.data.isAuthentication == 3) {
|
||
this.renzheng = 3
|
||
uni.setStorageSync("renzheng", this.renzheng)
|
||
} else if (res.data.isAuthentication == 4) {
|
||
this.renzheng = 4
|
||
uni.setStorageSync("renzheng", this.renzheng)
|
||
} else if (res.data.isAuthentication == 5) {
|
||
this.renzheng = 5
|
||
uni.setStorageSync("renzheng", this.renzheng)
|
||
} else if (res.data.isAuthentication == 6) {
|
||
this.renzheng = 6
|
||
uni.setStorageSync("renzheng", this.renzheng)
|
||
}
|
||
|
||
}
|
||
});
|
||
},
|
||
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
.logon{
|
||
background:#fff;
|
||
border-radius: 30rpx;
|
||
color:#019c88;
|
||
font-size: 26rpx;
|
||
padding: 8rpx 20rpx;
|
||
}
|
||
|
||
/deep/.u-scroll-box{
|
||
margin-top: 26rpx;
|
||
}
|
||
/deep/.u-size-default{
|
||
margin-top: 5px !important;
|
||
}
|
||
.gengduo{
|
||
font-weight: 400;
|
||
font-size: 25rpx;
|
||
color: #7D7D7D;
|
||
}
|
||
.showBtn-view{
|
||
display: flex;
|
||
flex-direction: row;
|
||
justify-content: flex-start;
|
||
}
|
||
.order-status{
|
||
display: flex;
|
||
flex-direction: row;
|
||
}
|
||
.showBtn{
|
||
justify-content: space-between;
|
||
}
|
||
.hideBtn{
|
||
padding: 5px;
|
||
display: flex;
|
||
flex-direction: row;
|
||
align-items: center;
|
||
flex-wrap: wrap;
|
||
justify-content: space-between;
|
||
position: absolute;
|
||
bottom: 0;
|
||
background-color: #fff;
|
||
margin-bottom: 54px;
|
||
margin-left: 20px;
|
||
}
|
||
.showBtn{
|
||
width: 100%;
|
||
display: flex;
|
||
flex-direction: row;
|
||
align-items: center;
|
||
flex-wrap: wrap;
|
||
justify-content: space-between;
|
||
|
||
}
|
||
/deep/.text-xl{
|
||
font-size: 34rpx;
|
||
color: #fe9130;
|
||
}
|
||
.flex-sub{
|
||
text-align: right;
|
||
font-size: 28rpx;
|
||
}
|
||
.top-title{
|
||
width: 95%;
|
||
display: flex;
|
||
flex-direction: row;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
}
|
||
.judan{
|
||
color:#096f4b;
|
||
}
|
||
.beizhu-textarea{
|
||
width: 100%;
|
||
height: 199rpx;
|
||
background-color: rgba(226, 226, 226, 0.3);
|
||
border-radius: 14rpx;
|
||
padding: 10px;
|
||
}
|
||
.popup-title{
|
||
font-weight: bold;
|
||
font-size: 29rpx;
|
||
color: #333333;
|
||
margin-bottom: 10px;
|
||
}
|
||
.beizhu{
|
||
width: 100%;
|
||
display: flex;
|
||
margin-top: 20px;
|
||
flex-direction: column;
|
||
}
|
||
.popup-view{
|
||
width: 100%;
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
.popup-mian-btn span:nth-child(1){
|
||
background: linear-gradient(90deg, #FE912E, #FF9970);
|
||
}
|
||
.popup-mian-btn span:nth-child(2){
|
||
background: linear-gradient(90deg, #019C88, #28BA92, #35C495);
|
||
}
|
||
.popup-mian-btn span{
|
||
width: 247rpx;
|
||
height: 77rpx;
|
||
line-height: 77rpx;
|
||
text-align: center;
|
||
font-weight: 400;
|
||
font-size: 32rpx;
|
||
color: #FFFEFE;
|
||
border-radius: 39rpx;
|
||
}
|
||
.popup-mian-btn{
|
||
width: 100%;
|
||
display: flex;
|
||
flex-direction: row;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
margin-top: 10px;
|
||
}
|
||
|
||
.popup-mian{
|
||
width: 88%;
|
||
display: flex;
|
||
flex-direction: column;
|
||
margin: 5px auto 0px auto;
|
||
}
|
||
.popup-head span:nth-child(2){
|
||
width: 50rpx;
|
||
height: 50rpx;
|
||
}
|
||
.popup-img{
|
||
width: 55rpx;
|
||
height: 55rpx;
|
||
right:22rpx;
|
||
}
|
||
.popup-head{
|
||
width: 100%;
|
||
height: 99.38rpx;
|
||
background-color: rgba(21, 171, 141, 0.09);
|
||
display: flex;
|
||
flex-direction: row;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
padding: 0 15px;
|
||
position:relative;
|
||
}
|
||
.popup-content{
|
||
width: 100%;
|
||
height: 255px;
|
||
background: #FFFFFF;
|
||
border-top-left-radius: 46rpx;
|
||
border-top-right-radius: 46rpx;
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
/*
|
||
sticky生效条件:
|
||
1、父元素不能overflow:hidden或者overflow:auto属性。(mescroll-body设置:sticky="true"即可, mescroll-uni本身没有设置overflow)
|
||
2、必须指定top、bottom、left、right4个值之一,否则只会处于相对定位
|
||
3、父元素的高度不能低于sticky元素的高度
|
||
4、sticky元素仅在其父元素内生效,所以父元素必须是 mescroll
|
||
*/
|
||
|
||
.ding-view{
|
||
width: 94%;
|
||
height: 290rpx;
|
||
display: flex;
|
||
flex-direction: row;
|
||
justify-content: space-between;
|
||
}
|
||
.u-tabs {
|
||
padding: 16px;
|
||
width: 90%;
|
||
height: 220rpx;
|
||
// background: #F7F7F7 !important;
|
||
border-radius: 21rpx 21rpx 0 0;
|
||
margin: -180px auto 8px auto;
|
||
position: relative;
|
||
}
|
||
|
||
/deep/.u-scroll-view {
|
||
padding: 10px 0px !important;
|
||
}
|
||
|
||
/deep/.u-tab-item {
|
||
height: auto !important;
|
||
line-height: normal !important;
|
||
width: 25% !important;
|
||
padding: 0 !important;
|
||
}
|
||
|
||
/deep/.u-tab-bar {
|
||
display: none !important;
|
||
}
|
||
.sticky-tabs {
|
||
width: 100%;
|
||
z-index: 990;
|
||
position: f;
|
||
top: var(--window-top);
|
||
// background-color: #fff;
|
||
}
|
||
|
||
/deep/.activityTitleTextProps {
|
||
color: #019c88;
|
||
font-size: 14px;
|
||
}
|
||
|
||
/deep/.noactivityTitleTextProps {
|
||
color: #666666;
|
||
font-size: 14px;
|
||
}
|
||
|
||
// 使用mescroll-uni,则top为0
|
||
.mescroll-uni,
|
||
/deep/.mescroll-uni {
|
||
.sticky-tabs {
|
||
top: 300upx;
|
||
}
|
||
}
|
||
|
||
.demo-tip {
|
||
padding: 18upx;
|
||
font-size: 24upx;
|
||
text-align: center;
|
||
}
|
||
|
||
/deep/.page-box {
|
||
background: top !important;
|
||
}
|
||
|
||
.bg {
|
||
background-image: linear-gradient(to right, #019c88, #00a85b);
|
||
padding: 16px 16px 36px 16px;
|
||
}
|
||
|
||
.bgwhite {
|
||
background-color: #FFFFFF;
|
||
}
|
||
|
||
.xian {
|
||
width: 100%;
|
||
height: 1rpx;
|
||
border: 1rpx solid #f8f8f8;
|
||
}
|
||
|
||
.pintuan_syrs {
|
||
color: #fff;
|
||
font-size: 20upx;
|
||
display: flex;
|
||
padding-right: 18upx;
|
||
background-image: linear-gradient(to right,#30c1ad, #1bb9a5);
|
||
padding: 10rpx;
|
||
border-radius: 10rpx;
|
||
}
|
||
.pintuan-title{
|
||
font-size: 30rpx;
|
||
font-family: Helvetica Neue, Helvetica, sans-serif;
|
||
color: #fff;
|
||
display: flex;
|
||
flex-direction: row;
|
||
align-items: center;
|
||
justify-content: center;
|
||
}
|
||
.pintuan-img{
|
||
width: 40rpx;
|
||
height: 40rpx;
|
||
}
|
||
.labe {
|
||
width: 42px;
|
||
background: #FFE45A;
|
||
border-radius: 15rpx 0rpx 15rpx 0rpx;
|
||
display: inline-flex;
|
||
align-items: center;
|
||
color: #7A3A00;
|
||
font-size: 22rpx;
|
||
font-weight: 400;
|
||
height: 36rpx;
|
||
margin-left: 20rpx;
|
||
justify-content: center;
|
||
text {
|
||
width: 12rpx;
|
||
height: 12rpx;
|
||
background: #20C675;
|
||
border-radius: 50%;
|
||
margin-right: 8rpx;
|
||
}
|
||
}
|
||
.head-port{
|
||
width:64px;
|
||
height:64px;
|
||
border-radius: 50%;
|
||
}
|
||
/deep/.radius {
|
||
border-radius: 20rpx;
|
||
}
|
||
.progress-text{
|
||
font-size: 30rpx;
|
||
color: #666;
|
||
padding-top: 8rpx;
|
||
}
|
||
.progress-status{
|
||
color: #fff;
|
||
border-radius:30rpx 30rpx 30rpx 8rpx ;
|
||
padding: 0 14rpx;
|
||
background-image: linear-gradient(to bottom, #fe9130, #ff9868);
|
||
font-size: 26rpx;
|
||
line-height: 46rpx;
|
||
}
|
||
.progress-status-wa{
|
||
color: #fff;
|
||
border-radius:30rpx 30rpx 30rpx 8rpx ;
|
||
padding: 0 14rpx;
|
||
background-image: linear-gradient(-45deg, #7997ec, #597ad8);
|
||
font-size: 26rpx;
|
||
line-height: 46rpx;
|
||
}
|
||
.progress-status-fw{
|
||
color: #fff;
|
||
border-radius:30rpx 30rpx 30rpx 8rpx ;
|
||
padding: 0 14rpx;
|
||
background-image: linear-gradient(-45deg, #16bf5b, #099d46);
|
||
font-size: 26rpx;
|
||
line-height: 46rpx;
|
||
}
|
||
.progress-status-fk{
|
||
color: #fff;
|
||
border-radius:30rpx 30rpx 30rpx 8rpx ;
|
||
padding: 0 14rpx;
|
||
background-image: linear-gradient(-45deg, #019cdc, #40bbf3);
|
||
font-size: 26rpx;
|
||
line-height: 46rpx;
|
||
}
|
||
.progress-status-qx{
|
||
color: #fff;
|
||
border-radius:30rpx 30rpx 30rpx 8rpx ;
|
||
padding: 0 14rpx;
|
||
background-image: linear-gradient(-45deg, #adadad, #959595);
|
||
font-size: 26rpx;
|
||
line-height: 46rpx;
|
||
}
|
||
.progress-status-jx{
|
||
color: #fff;
|
||
border-radius:30rpx 30rpx 30rpx 8rpx ;
|
||
padding: 0 14rpx;
|
||
background-image: linear-gradient(-45deg, #17bd6e, #019c88);
|
||
font-size: 26rpx;
|
||
line-height: 46rpx;
|
||
}
|
||
.progress-status-cf{
|
||
color: #fff;
|
||
border-radius:30rpx 30rpx 30rpx 8rpx ;
|
||
padding: 0 14rpx;
|
||
background-image: linear-gradient(-45deg, #78d289, #62c878);
|
||
font-size: 26rpx;
|
||
line-height: 46rpx;
|
||
}
|
||
.progress-status-dd{
|
||
color: #fff;
|
||
border-radius:30rpx 30rpx 30rpx 8rpx ;
|
||
padding: 0 14rpx;
|
||
background-image: linear-gradient(-45deg, #28b1da, #3bdaa5);
|
||
font-size: 26rpx;
|
||
line-height: 46rpx;
|
||
}
|
||
.progress-status-qr{
|
||
color: #fff;
|
||
border-radius:30rpx 30rpx 30rpx 8rpx ;
|
||
padding: 0 14rpx;
|
||
background-image: linear-gradient(-45deg, #ff7673, #f15c63);
|
||
font-size: 26rpx;
|
||
line-height: 46rpx;
|
||
}
|
||
.progress-status-jd{
|
||
color: #fff;
|
||
border-radius:30rpx 30rpx 30rpx 8rpx ;
|
||
padding: 0 14rpx;
|
||
background-image: linear-gradient(-45deg, #ff8c01, #ff5600);
|
||
font-size: 26rpx;
|
||
line-height: 46rpx;
|
||
}
|
||
.progress-status-daibu{
|
||
color: #fff;
|
||
border-radius:30rpx 30rpx 30rpx 8rpx ;
|
||
padding: 0 14rpx;
|
||
background-image: linear-gradient(-45deg, #2e87dc, #40a1ff);
|
||
font-size: 26rpx;
|
||
line-height: 46rpx;
|
||
}
|
||
.progress-status-chaoshi{
|
||
color: #fff;
|
||
border-radius:30rpx 30rpx 30rpx 8rpx ;
|
||
padding: 0 14rpx;
|
||
background-image: linear-gradient(-45deg, #ffb342, #ec8700);
|
||
font-size: 26rpx;
|
||
line-height: 46rpx;
|
||
}
|
||
.order-details{
|
||
font-size: 32rpx;
|
||
font-weight: bold;
|
||
|
||
}
|
||
.jishi-index-title{
|
||
width: 100%;
|
||
text-align: center;
|
||
font-weight: bold;
|
||
font-size: 33rpx;
|
||
color: #FFFFFF;
|
||
padding-top: 20px;
|
||
}
|
||
.jishi-index{
|
||
width: 100%;
|
||
height: 286px;
|
||
padding: 0 20px;
|
||
background-image: url('../../static/index/technician15.png');
|
||
background-repeat: no-repeat;
|
||
background-size: 100%;
|
||
}
|
||
.padding-order{
|
||
padding: 10rpx 20rpx;
|
||
position: relative;
|
||
}
|
||
.text-cut{
|
||
width: 75%;
|
||
}
|
||
.padding-sm2{
|
||
padding: 0px 11px;
|
||
}
|
||
.text-df{
|
||
font-size: 20px;
|
||
font-weight: bold;
|
||
}
|
||
.text-right {
|
||
text-align: right;
|
||
}
|
||
.flex-sub {
|
||
flex: 1;
|
||
}
|
||
.align-center {
|
||
align-items: center;
|
||
width: 100%;
|
||
}
|
||
.u-font-16{
|
||
font-weight: bold;
|
||
}
|
||
.title-font{
|
||
font-size: 28rpx;
|
||
color: #666666;
|
||
}
|
||
.title-font2{
|
||
font-size: 28rpx;
|
||
color: #999;
|
||
}
|
||
.value-font{
|
||
font-size: 32rpx;
|
||
color: #333333;
|
||
}
|
||
|
||
.padding-sm{
|
||
padding: 11px 11px 0px 11px;
|
||
}
|
||
.avatar-section{
|
||
padding:30rpx 0 50rpx 0;
|
||
position: relative;
|
||
}
|
||
.back-img{
|
||
padding: 15rpx;
|
||
border-radius: 50%;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
position: relative;
|
||
}
|
||
.popop-kuang{
|
||
width: 150rpx;
|
||
height: 150rpx;
|
||
position: absolute;
|
||
}
|
||
.avatar-section-text{
|
||
font-size: 32rpx;
|
||
color: #019c88;
|
||
font-weight: bold;
|
||
}
|
||
.money_text1{
|
||
font-size:46rpx;
|
||
font-weight: bold;
|
||
}
|
||
.money_text2{
|
||
font-size:26rpx;
|
||
}
|
||
.online-tag {
|
||
color: #019c88;
|
||
font-size: 26rpx;
|
||
}
|
||
</style> |