This commit is contained in:
Mr.jiang 2024-06-26 16:58:53 +08:00
parent 75476f5d2e
commit 0b00cafcf7
162 changed files with 19134 additions and 377 deletions

16
.hbuilderx/launch.json Normal file
View File

@ -0,0 +1,16 @@
{ // launch.json configurations app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
// launchtypelocalremote, localremote
"version": "0.0",
"configurations": [{
"app-plus" :
{
"launchtype" : "local"
},
"default" :
{
"launchtype" : "local"
},
"type" : "uniCloud"
}
]
}

View File

@ -17,7 +17,8 @@
//,
"certalias": "__uni__1f7550c",
//,
"certfile": "D:/project/arf/anmo-user/4f454e71517567791715ecbcfa934036.keystore",
"certfile": "F:/phpStudy/PHPTutorial/WWW/sadjv3_jishi",
// "certfile": "D:/project/arf/anmo-user/4f454e71517567791715ecbcfa934036.keystore",
//,
"certpassword": "y2HMR1IW",
// "google","yyb","360","huawei","xiaomi","oppo","vivo"

View File

@ -3,7 +3,9 @@
// const ROOTHOST = "admin.sjajk.com";//生产需替换
//测试环境
const PROT = "http://"
const ROOTHOST = "192.168.2.222:8187";
// const ROOTHOST = "47.75.182.93:8090";
// const ROOTHOST = "192.168.2.222:8187";
const ROOTHOST = "120.46.52.165";
// const ROOTHOST = "192.168.0.115:8187";
// const ROOTHOST = "192.168.1.169:8187";
// 后端本地张聪

View File

@ -0,0 +1,202 @@
<template>
<view style="width: 100%;" class="refresh-body" @touchmove.stop.prevent>
<scroll-view scroll-y @scroll="scroll" @touchstart="touchstart" @scrolltolower="loadMore" @touchmove="touchmove" @touchend="touchend" class="refresh-scroll">
<view class="content">
<!-- 内容 -->
<slot name="content"></slot>
<!-- 上拉加载 -->
<view class="t-loading-box" v-if="loadingType!=3&&openLoadMore" @click="loadMore">
<view class="t-line"></view>
<view class="t-loading-text">
<view class="loading" v-if="loadingType==2"></view>
<text>{{loadingText[loadingType]}}</text>
</view>
<view class="t-line"></view>
</view>
</view>
</scroll-view>
</view>
</template>
<script>
export default {
name:'t-refresh',
props:{
//
height: {
type: String,
default: '100vh'
},
//padding tabs
tPadding: {
type: Number,
},
//
openLoadMore:{
type: Boolean,
default: true
},
// 0 1 2 3
loadingType: {
type : Number,
default: 0
},
//
loadingText : {
type : Array,
default :()=>{
return ["上拉或点击加载更多","已加载全部数据",'加载中','']
}
},
},
data() {
return {
icon_class:'',
top:-90,
touchstart_num:0, //
touchmove_num:0, //
move_number:0, //
rotate_number:0,
timer:null,
is_refresh:false, //
move_timer:null,
};
},
methods: {
scroll(e){
e.detail.scrollTop>20?this.is_refresh=true:this.is_refresh=false
},
//
loadMore(e) {
if(this.openLoadMore){
this.$emit("loadMore")
}
},
//
touchstart(e){
this.touchstart_num=e.touches[0].clientY
},
//
touchmove(e){
if(!this.is_refresh&&e.touches.length<=1&&this.openRefresh){
this.move_number=e.touches[0].clientY-this.touchstart_num
this.rotate_number=this.move_number*2
if(this.move_number<120){
this.top=(this.move_number)/1-90
}else if(120<=this.move_number&&this.move_number<=170){
this.top=(this.move_number)/4
}else{
this.top=(this.move_number)/60+40
}
clearTimeout(this.timer)
this.timer = setTimeout(()=>{
this.touchmove_num=e.touches[0].clientY
},500)
}
},
//
touchend(e){
if(this.is_refresh||e.touches.length>=1||!this.openRefresh){return}
if(this.move_number>170){
this.icon_class='refresh-icon-active'
this.top+=Number(this.tPadding)/2
this.is_refresh=true
this.$emit('refresh')
this.move_timer=setInterval(()=>{
this.rotate_number+=8
},10)
}else{
this.move_timer=setInterval(()=>{
this.top-=8
if(this.top<=-90){
clearInterval(this.move_timer)
}
},10)
}
},
//
endRefresh(){
this.top=-90
this.icon_class=''
this.move_number=this.rotate_number=0
this.is_refresh=false
clearInterval(this.move_timer)
},
}
};
</script>
<style lang="scss" >
.refresh-body{
box-sizing: border-box;
height: auto !important;
padding-top: 0px !important;
.refresh-scroll{
position: relative;
height: 100%;
}
.refresh-icon{
width: 80upx;
height: 80upx;
text-align: center;
line-height: 80upx;
border-radius: 50%;
background: #FFFFFF;
box-shadow: 0px 0px 10rpx 0px rgba(0, 0, 0, 0.2);
position: absolute;
left: 50%;
color: #00aa7f;
z-index: 9999999999;
display: flex;
align-items: center;
justify-content: center;
.iconfont{
font-size: 36upx;
}
image{
width: 36upx;
}
}
.refresh-icon-active{
position: fixed;
}
.content{
height: 100%;
}
.t-loading-box{
display: flex;
align-items: center;
justify-content: center;
flex-direction: row;
line-height:80upx;
font-size: 26upx;
width: 100%;
padding-bottom:20upx;
color: #888888;
.t-loading-text{
padding: 0 10upx;
display: flex;
align-items: center;
flex-direction: row;
}
.loading {
width:25upx;
height:25upx;
border:2.5upx solid #888888;
border-bottom:#ffffff 2.5upx solid;
border-radius:50%;
margin-right: 15upx;
animation:grace-rotate360 1200ms infinite linear;
}
.t-line{
margin: 0px;
border-bottom: 1px solid rgb(212, 212, 212);
width: 20px;
transform: scaleY(0.5);
border-top-color: rgb(212, 212, 212);
border-right-color: rgb(212, 212, 212);
border-left-color: rgb(212, 212, 212);
}
}
@keyframes grace-rotate360{0%{transform:rotate(0deg);} 50%{transform:rotate(180deg);} 100%{transform:rotate(360deg);}}
}
</style>

View File

@ -18,4 +18,17 @@ sha25652:87:02:4F:E7:F3:FB:1A:3D:9A:26:42:47:6A:95:75:1F:A7:F3:44:7E:1E:C7:A6
MD5: 40:07:C8:A8:2A:3B:A7:42:69:3D:47:FE:4F:F4:14:83
SHA1: 50:F0:61:AD:AE:69:0A:23:DA:8A:97:AD:FC:48:21:DA:DE:91:C7:90
SHA256: 71:C1:05:FD:D8:0F:CC:1C:9F:85:C6:0C:59:99:74:21:B4:E3:6F:0F:2C:FB:FA:3A:7E:DC:51:DF:81:2F:F9:C9
SHA256: 71:C1:05:FD:D8:0F:CC:1C:9F:85:C6:0C:59:99:74:21:B4:E3:6F:0F:2C:FB:FA:3A:7E:DC:51:DF:81:2F:F9:C9
-- 现在使用此证书
打包使用sadjv3.keystore
包名: com.sadjv3.anmo
别名_uni__b37c795
证书别名: sadjv3.keystore
证书密码: hBHbYr1C
序列号: 3391729e
MD5: D5:3B:F3:63:8E:76:F2:2C:C0:E3:44:A8:B7:24:0A:FB
SHA1: 59:65:FC:61:38:10:44:4E:D2:86:17:31:E5:00:70:86:A0:11:15:15
SHA256: 45:EE:25:19:71:78:7E:30:1C:E7:7D:9D:5B:95:9C:12:45:73:9E:45:FD:DF:CA:DF:37:DD:36:F6:0F:E4:7D:D5

BIN
file/sadjv3.keystore Normal file

Binary file not shown.

View File

@ -1,6 +1,6 @@
{
"name" : "盛安到家",
"appid" : "__UNI__1F7550C",
"appid" : "__UNI__B37C795",
"description" : "",
"versionName" : "2.0.5",
"versionCode" : "100",
@ -94,18 +94,7 @@
"name" : "amapnk4ecquC"
}
},
"push" : {
"unipush" : {
"version" : "2",
"offline" : true,
"vivo" : {},
"icons" : {
"small" : {
"hdpi" : "static/logo.png"
}
}
}
},
"push" : {},
"geolocation" : {
"amap" : {
"name" : "amapnk4ecquC",
@ -120,33 +109,33 @@
},
"icons" : {
"android" : {
"hdpi" : "unpackage/res/icons/72x72.png",
"xhdpi" : "unpackage/res/icons/96x96.png",
"xxhdpi" : "unpackage/res/icons/144x144.png",
"xxxhdpi" : "unpackage/res/icons/192x192.png"
"hdpi" : "static/logo.png",
"xhdpi" : "static/logo.png",
"xxhdpi" : "static/logo.png",
"xxxhdpi" : "static/logo.png"
},
"ios" : {
"appstore" : "unpackage/res/icons/1024x1024.png",
"appstore" : "static/logo.png",
"ipad" : {
"app" : "unpackage/res/icons/76x76.png",
"app@2x" : "unpackage/res/icons/152x152.png",
"notification" : "unpackage/res/icons/20x20.png",
"notification@2x" : "unpackage/res/icons/40x40.png",
"proapp@2x" : "unpackage/res/icons/167x167.png",
"settings" : "unpackage/res/icons/29x29.png",
"settings@2x" : "unpackage/res/icons/58x58.png",
"spotlight" : "unpackage/res/icons/40x40.png",
"spotlight@2x" : "unpackage/res/icons/80x80.png"
"app" : "static/logo.png",
"app@2x" : "static/logo.png",
"notification" : "static/logo.png",
"notification@2x" : "static/logo.png",
"proapp@2x" : "static/logo.png",
"settings" : "static/logo.png",
"settings@2x" : "static/logo.png",
"spotlight" : "static/logo.png",
"spotlight@2x" : "static/logo.png"
},
"iphone" : {
"app@2x" : "unpackage/res/icons/120x120.png",
"app@3x" : "unpackage/res/icons/180x180.png",
"notification@2x" : "unpackage/res/icons/40x40.png",
"notification@3x" : "unpackage/res/icons/60x60.png",
"settings@2x" : "unpackage/res/icons/58x58.png",
"settings@3x" : "unpackage/res/icons/87x87.png",
"spotlight@2x" : "unpackage/res/icons/80x80.png",
"spotlight@3x" : "unpackage/res/icons/120x120.png"
"app@2x" : "static/logo.png",
"app@3x" : "static/logo.png",
"notification@2x" : "static/logo.png",
"notification@3x" : "static/logo.png",
"settings@2x" : "static/logo.png",
"settings@3x" : "static/logo.png",
"spotlight@2x" : "static/logo.png",
"spotlight@3x" : "static/logo.png"
}
}
},
@ -161,7 +150,7 @@
"description" : "自定义推送铃声同时支持 Android、iOS 平台",
"platforms" : "Android,iOS",
"url" : "https://ext.dcloud.net.cn/plugin?id=7482",
"android_package_name" : "uni.UNI1F7550C",
"android_package_name" : "com.shengan.anmo",
"ios_bundle_id" : "",
"isCloud" : true,
"bought" : 1,

View File

@ -184,14 +184,14 @@ page {
.feedback-submit {
background: linear-gradient(to right, #223845, #00a85b);
background: linear-gradient(90deg, #019C88, #0FA78B, #35C495);
color: #FFFFFF;
margin: 16rpx 0;
margin: 7px 0;
width: 100%;
border-radius: 50rpx;
height: 78rpx;
line-height: 78rpx;
font-size: 30rpx;
border-radius: 24px;
height: 37px;
line-height: 37px;
font-size: 14px;
text-align: center;
}
</style>

View File

@ -2,7 +2,7 @@
.ciycle {
width: 100%;
height: 200px;
background-image: url("@/static/images/top.png");
background-image: url('@/static/index/fun_banner4.png');
background-size: 100%;
background-repeat: no-repeat;
}
@ -238,12 +238,12 @@
border-radius: 20px;
font-size: 20px;
color: #FFFFFF;
background-color: #50b58d;
background: linear-gradient(90deg, #019C88, #28BA92, #35C495);
display: flex;
justify-content: center;
align-items: center;
margin-top: 12px;
background-image: linear-gradient(to bottom, #126c4f, #01a55b);
/* background-image: linear-gradient(to bottom, #126c4f, #01a55b); */
}
.optionsInfo {

View File

@ -357,7 +357,7 @@
@import "./index.css";
</style>
<style>
<style scoped>
page {
background-color: #f1f1f1;
height: 100%;

View File

@ -4,11 +4,11 @@
<view class="bgbox" style="">
<view v-if="order.status ==1">待付款...</view>
<view v-if="order.status ==2">待服务</view>
<view v-if="order.status ==5">已完成</view>
<view v-if="order.status ==3">已完成</view>
<view v-if="order.status ==6">服务中</view>
<view v-if="order.status ==7">已出发</view>
<view v-if="order.status ==8">已到达</view>
<view v-if="order.status ==3">待评价</view>
<view v-if="order.status ==5">待评价</view>
<view v-if="order.status ==4">已取消</view>
</view>
<view class="padding-bottom" style="padding: 30rpx;margin-top: -80rpx;">

File diff suppressed because it is too large Load Diff

1962
my/order/revenueDetails.vue Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,46 +1,18 @@
<template>
<view class="padding-lr" style="background-color: #ffffff;">
<!-- #ifndef MP-WEIXIN -->
<view class="flex padding-tb align-center" @click="goNav('/pages/public/pwd')">
<view class="flex-sub text-df" style="line-height: 50upx;font-size: 30rpx;">修改密码</view>
<image src="../../static/images/my/right.png" style="line-height: 50upx;width: 12rpx;height: 22rpx;">
</image>
<view class="content">
<view class="shezhi-title">
<image @click="backImg" src="../../static/fanhui.png" mode="widthFix"></image>
<span>设置中心</span>
</view>
<view class="xian"></view>
<!-- #endif -->
<view class="flex padding-tb align-center" @click="goNav('/my/help/feedbackIndex')">
<view class="flex-sub text-df" style="line-height: 50upx;font-size: 30rpx;">帮助中心</view>
<image src="../../static/images/my/right.png" style="line-height: 50upx;width: 12rpx;height: 22rpx;">
</image>
<view class="shezhi-list" v-for="(item,index) in list" :key="index" @click="goNav(item)">
<view class="shezhi-list-left">
<image class="shezhi-list-img-icon" :src="item.imgUrl" mode=""></image>
<view class="shezhi-list-img-text">{{item.text}}</view>
</view>
<image class="shezhi-list-img-jiantou" src="../../static/images/my/right.png" mode=""></image>
</view>
<view class="xian"></view>
<view class="flex padding-tb align-center" @click="goNav('/my/feedback/index')">
<view class="flex-sub text-df" style="line-height: 50upx;font-size: 30rpx;">意见反馈</view>
<image src="../../static/images/my/right.png" style="line-height: 50upx;width: 12rpx;height: 22rpx;">
</image>
</view>
<view class="xian"></view>
<view class="flex padding-tb align-center" @click="goNav('/my/setting/xieyi')">
<view class="flex-sub text-df" style="line-height: 50upx;font-size: 30rpx;">用户协议</view>
<image src="../../static/images/my/right.png" style="line-height: 50upx;width: 12rpx;height: 22rpx;">
</image>
</view>
<view class="xian"></view>
<view class="flex padding-tb align-center" @click="goNav('/my/setting/mimi')">
<view class="flex-sub text-df" style="line-height: 50upx;font-size: 30rpx;">隐私政策</view>
<image src="../../static/images/my/right.png" style="line-height: 50upx;width: 12rpx;height: 22rpx;">
</image>
</view>
<view class="xian"></view>
<view class="flex padding-tb align-center" @click="goNav('/my/setting/about')">
<view class="flex-sub text-df" style="line-height: 50upx;font-size: 30rpx;">关于我们</view>
<image src="../../static/images/my/right.png" style="line-height: 50upx;width: 12rpx;height: 22rpx;">
</image>
</view>
<view
style="position: fixed;bottom: 0rpx;left: 0;background: #FFFFFF;height: 110rpx;line-height: 110rpx;z-index: 999;width: 100%;padding: 0 30rpx;">
<view class="btn" @click="goOut">退出登录</view>
<view style="position: fixed;bottom: 0rpx;left: 0;right: 0;height: 110rpx;line-height: 110rpx;z-index: 999;">
<view v-if="isShow" class="btn" @click="TuiLogin">退出登录</view>
</view>
</view>
</template>
@ -49,16 +21,91 @@
export default {
data() {
return {
version: '',
isShow: false,
list:[
{url:'/pages/public/pwd',text:'修改密码',imgUrl:'../../static/shezhi1.png'},
{url:'/my/help/feedbackIndex',text:'帮助中心',imgUrl:'../../static/shezhi3.png'},
{url:'/my/feedback/index',text:'意见反馈',imgUrl:'../../static/shezhi4.png'},
{url:'/my/setting/xieyi',text:'用户协议',imgUrl:'../../static/shezhi5.png'},
{url:'/my/setting/mimi',text:'隐私政策',imgUrl:'../../static/shezhi6.png'},
{url:'/my/setting/about',text:'关于我们',imgUrl:'../../static/shezhi8.png'},
]
}
},
onShow() {
let token = this.$queue.getData('token');
if (token) {
this.isShow = true;
}
},
onLoad() {
// #ifdef APP-PLUS
plus.runtime.getProperty(plus.runtime.appid, widgetInfo => {
this.version = widgetInfo.version;
});
// #endif
},
methods: {
goNav(e) {
backImg(){//
uni.reLaunch({
url:'/pages/my/index'
})
},
//退
TuiLogin() {
let that = this
let userId = this.$queue.getData('userId');
if (userId) {
uni.showModal({
title: '提示',
content: '确定退出登录吗?',
success: function(res) {
if (res.confirm) {
console.log('用户点击确定');
uni.removeStorageSync('userName')
uni.removeStorageSync('avatar')
uni.removeStorageSync('userId')
uni.removeStorageSync('token')
uni.removeStorageSync('phone')
uni.removeStorageSync('zhiFuBaoName')
uni.removeStorageSync('zhiFuBao')
uni.removeStorageSync('invitationCode')
uni.removeStorageSync('unionId')
uni.removeStorageSync('openId')
uni.removeStorageSync('isVIP')
uni.showToast({
title: '退出成功!',
icon: 'none'
})
uni.reLaunch({
url:'/pages/my/index?money=0&couponnum=0'
})
} else if (res.cancel) {
console.log('用户点击取消');
}
}
})
} 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('用户点击取消');
}
}
})
}
},
goNav(item) {
uni.navigateTo({
url: e
url: item.url
})
},
goOut() {
@ -100,26 +147,86 @@
}
</script>
<style>
page {
background: #f7f7f7;
}
.btn {
background: linear-gradient(to right, #223845, #00a85b);
color: #FFFFFF;
margin: 16rpx auto;
<style scoped>
.content {
width: 100%;
height: 100vh;
background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0), #f7f7f7), url('../../static/background-img.png');
background-position: center center;
background-repeat: no-repeat;
background-size: 100% 100%;
overflow: auto;
}
.shezhi-list-img-text{
font-weight: 400;
font-size: 32rpx;
color: #202020;
}
.shezhi-list-left{
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.shezhi-list{
width: 95%;
padding: 0px 15px;
height: 108rpx;
background: #FFFFFF;
border-radius: 14rpx;
margin: 10px auto;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.shezhi-list-img-icon{
width: 39.58rpx;
height: 40.28rpx;
margin-right: 5px;
}
.shezhi-list-img-jiantou{
width: 10.76rpx;
height: 18.19rpx;
}
.shezhi-title{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
position: relative;
margin: 10px 0px;
}
.shezhi-title span{
font-weight: bold;
font-size: 38rpx;
color: #17181C;
}
.shezhi-title image{
width: 25px;
height: 30rpx;
margin-right: 10px;
position: absolute;
left: 0;
}
.btn {
background: linear-gradient(90deg, #019C88, #0FA78B, #35C495);
color: #FFFFFF;
margin: 16rpx 30upx;
position: fixed;
bottom: 0upx;
width: 90%;
border-radius: 50rpx;
height: 78rpx;
line-height: 78rpx;
font-size: 32rpx;
text-align: center;
}
.xian {
.xian{
width: 100%;
height: 1px;
background-color: #f7f7f7;
}
</style>
</style>

141
my/setting/zhuxiao.vue Normal file
View File

@ -0,0 +1,141 @@
<template>
<view>
<view style="width: 100%;text-align: center;margin: 40upx 0upx;">
<image src="../../static/jinggao.png" style="width: 90upx;height: 90upx;margin-bottom: 14rpx;" mode=""></image>
<view style="font-size: 28upx;color: #333333;">很抱歉我们在这里见面</view>
<view style="margin-top: 20upx;font-size: 24upx;color: #B2B2B2;">如果您是误操作请取消申请</view>
</view>
<view style="margin: 0upx 20rpx;background: #FFFFFF;padding: 30rpx;border-radius: 20rpx;">
<view style="color: #333333;">注销提示</view>
<view style="color: #333333;margin-top: 15upx;font-size: 24upx;">若你是二次申请注销则注销申请会直接通过</view>
<view style="color: #333333;margin-top: 20upx;font-size: 24upx;">一旦账号注销成功</view>
<view class="title_item">
<view class="item_yuan"></view>
<view class="item_title">您的账号将无法登陆与使用</view>
</view>
<view class="title_item">
<view class="item_yuan"></view>
<view class="item_title">您的账号信息与会员权益将会永久清除且无法恢复</view>
</view>
<view class="title_item">
<view class="item_yuan"></view>
<view class="item_title">您的收益将被永久清空且无法恢复</view>
</view>
<view class="title_item">
<view class="item_yuan"></view>
<view class="item_title">您的账号所关联的订单将无法查询与找回</view>
</view>
<view class="title_item">
<view class="item_yuan"></view>
<view class="item_title">您在盛安到家购买的物品将无法进行售后</view>
</view>
<view class="title_item">
<view class="item_yuan"></view>
<view class="item_title">您在盛安到家的账号信息及会员权益将会永久清除且无法恢复</view>
</view>
<view class="title_item">
<view class="item_yuan"></view>
<view class="item_title" style="color: #f00;">您所绑定的手机号码3个月内将无法再次注册盛安到家</view>
</view>
</view>
<view style="position: fixed;bottom: 0rpx;left: 0;right: 0;background: #FFFFFF;height: 110rpx;line-height: 110rpx;z-index: 999;display: flex;padding: 15upx 20upx;">
<view @tap="send"
style="flex: 1;background: #B2B2B2;color: #FFFFFF;height: 78rpx;line-height: 78rpx;font-size: 32rpx;border-radius: 50upx;text-align: center;">
继续注销</view>
<view @tap="back"
style="margin-left: 10upx;flex: 1;background: linear-gradient(90deg, #019C88, #0FA78B, #35C495);color: #FFFFFF;height: 78rpx;line-height: 78rpx;font-size: 32rpx;border-radius: 50upx;text-align: center;">
暂不注销</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
onLoad() {
},
methods: {
back() {
uni.navigateBack();
},
send() {
let that = this;
let userId = this.$queue.getData('userId');
let phone = this.$queue.getData('phone') ? this.$queue.getData('phone') : '';
uni.showModal({
title: '温馨提示',
content: '注销后您的账号信息与会员权益将会永久清除且无法恢复,继续注销将在三日内清除完毕,确认继续注销吗?',
showCancel: true,
cancelText: '暂不注销',
confirmText: '继续注销',
success: res => {
if (res.confirm) {
that.$queue.showLoading('注销中...');
that.$Request
.postJson('/app/message/insertMessage', {
state: 3,
title: phone ? phone : '注销账号',
content: '我要注销账号!',
phone: phone,
userId: userId
})
.then(res => {
if (res.code === 0) {
uni.showToast({
title: '申请成功!'
});
that.$queue.logout();
setTimeout(function() {
uni.switchTab({
url: '/pages/index/index'
})
}, 1000);
} else {
uni.hideLoading();
uni.showModal({
showCancel: false,
title: '注销失败',
content: res.msg
});
}
});
}
}
});
}
}
}
</script>
<style>
page {
background: #f1f1f1;
}
.title_item {
display: flex;
align-items: center;
margin-top: 15upx;
}
.item_yuan {
width: 10upx;
height: 10upx;
border-radius: 50upx;
background: #999999;
}
.item_title {
margin-left: 10upx;
font-size: 24upx;
color: #B2B2B2;
}
</style>

View File

@ -351,7 +351,7 @@
padding: 30rpx;
}
.select-time-style {
background: linear-gradient(to right, #223845, #00a85b);
background: linear-gradient(90deg, #019C88, #28BA92, #35C495);
color: #ffffff;
width: 74px;
height: 24px;

View File

@ -698,8 +698,14 @@
}
.dhjsbg {
background: linear-gradient(to right, #223845, #00a85b);
padding-bottom: 140rpx;
width: 100%;
height: 144px;
padding: 15px;
background-image: url('../../static/index/fun_banner4.png');
background-repeat: no-repeat;
background-size: 100% 100%;
display: flex;
flex-direction: column;
}
.active {
@ -714,7 +720,7 @@
}
.btn {
background: linear-gradient(to right, #223845, #00a85b);
background: linear-gradient(90deg, #019C88, #28BA92, #35C495);
color: #FFFFFF;
margin: 16rpx 0;
width: 100%;

View File

@ -8,7 +8,9 @@
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "首页",
"navigationBarTextStyle": "white"
"app-plus": {
"titleNView": false
}
}
},
// #endif
@ -18,11 +20,8 @@
"style": {
"navigationBarTitleText": "首页",
"navigationBarBackgroundColor": "#223845",
"navigationBarTextStyle": "white",
"app-plus": {
"titleNView": {
"backgroundImage": ""
}
"titleNView": false
}
}
},
@ -45,6 +44,88 @@
"navigationBarTitleText": "资质证书"
}
},
{
"path": "pages/index/currentIncome",
"style": {
"navigationBarTitleText": "当前收益"
}
},
{
"path": "pages/index/addClock",
"style": {
"navigationBarTitleText": "加钟率"
}
},
{
"path": "pages/index/previousAdditions",
"style": {
"navigationBarTitleText": "往期加钟率"
}
},
{
"path": "pages/index/currentPoints",
"style": {
"navigationBarTitleText": "当前积分",
"navigationBarBackgroundColor": "#FFFFFF",
"enablePullDownRefresh": true,
"onReachBottomDistance": 50,
"app-plus": {
"bounce": "none",
"scrollIndicator": "none",
"titleNView": {
"backgroundImage": "linear-gradient(to bottom, #294856, #1a615b)"
}
}
}
},
{
"path": "pages/index/previousPoints",
"style": {
"navigationBarTitleText": "往期积分",
"navigationBarBackgroundColor": "#FFFFFF",
"enablePullDownRefresh": true,
"onReachBottomDistance": 50,
"app-plus": {
"bounce": "none",
"scrollIndicator": "none",
"titleNView": {
"backgroundImage": "linear-gradient(to bottom, #294856, #1a615b)"
}
}
}
},
{
"path": "pages/index/currentPointsDetail",
"style": {
"navigationBarTitleText": "积分列表",
"navigationBarBackgroundColor": "#FFFFFF",
"enablePullDownRefresh": true,
"onReachBottomDistance": 50,
"app-plus": {
"bounce": "none",
"scrollIndicator": "none",
"titleNView": {
"backgroundImage": "linear-gradient(to bottom, #294856, #1a615b)"
}
}
}
},
{
"path": "pages/index/technicianLevel",
"style": {
"navigationBarTitleText": "技师等级",
"app-plus": {
"titleNView": false
}
}
},
{
"path": "pages/index/previousEarnings",
"style": {
"navigationBarTitleText": "往期收益"
}
},
{
"path": "pages/index/jinji",
"style": {
@ -82,34 +163,16 @@
"navigationBarTitleText": "网页"
}
},
// #ifdef H5
{
"path": "pages/order/index",
"style": {
"navigationBarTitleText": "我的订单",
"app-plus": {
"titleNView": {
"backgroundImage": "linear-gradient(to right, #223845, #00a85b)"
}
},
"navigationBarTextStyle": "white"
"titleNView": false
}
}
},
// #endif
// #ifndef H5
{
"path": "pages/order/index",
"style": {
"navigationBarTitleText": "我的订单",
"app-plus": {
"titleNView": {
"backgroundImage": "linear-gradient(to right, #223845, #00a85b)"
}
},
"navigationBarTextStyle": "white"
}
},
// #endif
{
"path": "pages/msg/index",
"style": {
@ -129,6 +192,19 @@
"enablePullDownRefresh": true
}
},
// #ifdef APP-PLUS
{
"path": "pages/my/index",
"style": {
"navigationBarTitleText": "我的",
"navigationBarBackgroundColor": "#213b46",
"navigationBarTextStyle": "white",
"app-plus": {
"titleNView": true
}
}
},
// #endif
// #ifdef H5
{
"path": "pages/my/index",
@ -148,7 +224,10 @@
"style": {
"navigationBarTitleText": "我的",
"navigationBarBackgroundColor": "#213b46",
"navigationBarTextStyle": "white"
"navigationBarTextStyle": "white",
"app-plus": {
"titleNView": false
}
}
},
// #endif
@ -164,6 +243,7 @@
}
}
},
{
"path": "pages/my/IntegralStatistics",
"style": {
@ -175,7 +255,6 @@
"bounce": "none",
"scrollIndicator": "none",
"titleNView": {
"titleColor": "#FFFFFF",
"backgroundImage": "linear-gradient(to bottom, #294856, #1a615b)"
}
}
@ -278,7 +357,22 @@
"navigationBarTitleText": "帮助详情",
"enablePullDownRefresh": false
}
},{
"path": "order/revenueDetails",
"style": {
"navigationBarTitleText": "详情",
"app-plus": {
"titleNView": true
}
}
}, {
"path": "setting/zhuxiao",
"style": {
"navigationBarTitleText": "注销",
"enablePullDownRefresh": false
}
},{
"path": "qiandao/index",
"style": {
"navigationBarTitleText": "签到"
@ -299,7 +393,6 @@
"bounce": "none",
"scrollIndicator": "none",
"titleNView": {
"titleColor": "#FFFFFF",
"backgroundImage": "linear-gradient(to bottom, #294856, #1a615b)"
}
}
@ -516,7 +609,10 @@
{
"path": "setting/index",
"style": {
"navigationBarTitleText": "设置中心"
"navigationBarTitleText": "设置中心",
"app-plus": {
"titleNView": false
}
}
},
{
@ -790,20 +886,20 @@
"borderStyle": "black",
"list": [{
"pagePath": "pages/index/index",
"iconPath": "static/tabbar/index.png",
"selectedIconPath": "static/tabbar/index_.png",
"iconPath": "static/tabbar/order10-1.png",
"selectedIconPath": "static/tabbar/order10-2.png",
"text": "首页"
},
{
"pagePath": "pages/order/index",
"iconPath": "static/tabbar/order.png",
"selectedIconPath": "static/tabbar/order_.png",
"iconPath": "static/tabbar/order10-3.png",
"selectedIconPath": "static/tabbar/order10-4.png",
"text": "订单"
},
{
"pagePath": "pages/my/index",
"iconPath": "static/tabbar/my.png",
"selectedIconPath": "static/tabbar/my_.png",
"iconPath": "static/tabbar/order10-5.png",
"selectedIconPath": "static/tabbar/order10-6.png",
"text": "我的"
}
]

548
pages/index/addClock.vue Normal file
View File

@ -0,0 +1,548 @@
<template>
<view class="content">
<view class="header">
<view class="header-top">
<view class="header-top-left">
<image src="../../static/index/dangqian1.png" mode=""></image>
<span class="header-text" style="margin-right: 5px;">
当前周期
</span>
<span class="header-text">{{startTime}}~{{endTime}}</span>
</view>
<view class="header-top-btn" @click="wangqi">往期{{orderType=='2'?'加钟率':'充值率'}}</view>
</view>
<view class="header-bottom">
<view class="header-bottom-money">
{{orderType=='2'?homePageCountData[0]:homePageCountData[1]}}
</view>
<view class="header-text">{{titleData}}</view>
</view>
</view>
<view class="tapNav-list">
<view class="tapNav-view" v-for="(item,index) in tapNav" :key="index" @click="tabClick(item.isSfwc,index)">
<view class="tapNav-name">{{item.name}}</view>
<view class="tapNav-bor" v-if="tapNum==index"></view>
</view>
</view>
<t-refresh class="mian" ref="refresh" v-if="listData.length>0" @refresh="refresh" @loadMore="loadMore" :loadingType="loadingType" :tPadding="0">
<template slot="content">
<!--本期加钟 充值 订单-->
<view class="mina-view" v-if="isSfwc=='1'" v-for="item in listData" :key="item.id" @click="goOder(item)">
<view class="view-title">
<view class="view-title-left">
<span class="view-title-left-shuxian"></span>
<span class="view-title-left-text">本期{{orderType=='2'?'已加钟':'已充值'}}订单</span>
</view>
<view class="view-title-right">加钟订单数量: {{listData.length}}</view>
</view>
<view class="mian-list">
<view class="mian-list-top">
<view class="mian-list-top-biao">{{item.status=='3'?'已完成':'待评价'}}</view>
<view class="mian-list-top-time">
<span>预约时间: </span>
<span>{{item.serveTime}}</span>
</view>
</view>
<view class="mian-foot">
<view class="mian-foot-img">
<image src="../../my/static/bg6.png" mode=""></image>
</view>
<view class="mian-foot-list">
<view class="mian-foot-view">
<view class="mian-title">{{item.entryName}}</view>
<view class="mian-dingwei">
<image src="../../static/index/dangqian2.png" mode=""></image>
<span class="shouyi-text">0.8km</span>
</view>
</view>
<view class="mian-foot-dan shouyi-text">
订单编号 : {{item.ordersNo}}
</view>
<view class="mian-foot-adder shouyi-text">
服务地址 : {{item.address}}
</view>
<view class="mian-bottom">
<view class="mian-bottom-xiang shouyi-text">项目金额 : {{item.price}}</view>
<view class="mian-bottom-shou">
<span class="shouyi-text">本单收益: </span>
<span class="shouyi-text" style="color: #FF6000;font-weight: bold;">{{item.artificerMoney}}</span>
</view>
</view>
</view>
</view>
</view>
</view>
<!--本期未加钟 未充值 订单-->
<view class="mina-view" v-else v-for="item in listData" :key="item.id" @click="goOder(item)">
<view class="view-title">
<view class="view-title-left">
<span class="view-title-left-shuxian"></span>
<span class="view-title-left-text">本期{{orderType=='2'?'已加钟':'已充值'}}订单</span>
</view>
<view class="view-title-right">加钟订单数量: {{listData.length}}</view>
</view>
<view class="mian-list">
<view class="mian-list-top">
<view class="mian-list-top-biao">{{item.status=='3'?'已完成':'待评价'}}</view>
<view class="mian-list-top-time">
<span>预约时间: </span>
<span>{{item.serveTime}}</span>
</view>
</view>
<view class="mian-foot">
<view class="mian-foot-img">
<image src="../../my/static/bg6.png" mode=""></image>
</view>
<view class="mian-foot-list">
<view class="mian-foot-view">
<view class="mian-title">{{item.entryName}}</view>
<view class="mian-dingwei">
<image src="../../static/index/dangqian2.png" mode=""></image>
<span class="shouyi-text">0.8km</span>
</view>
</view>
<view class="mian-foot-dan shouyi-text">
订单编号 : {{item.ordersNo}}
</view>
<view class="mian-foot-adder shouyi-text">
服务地址 : {{item.address}}
</view>
<view class="mian-bottom">
<view class="mian-bottom-xiang shouyi-text">项目金额 : {{item.price}}</view>
<view class="mian-bottom-shou">
<span class="shouyi-text">本单收益: </span>
<span class="shouyi-text" style="color: #FF6000;font-weight: bold;">{{item.artificerMoney}}</span>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
</t-refresh>
<empty v-if="listData.length==0"></empty>
</view>
</template>
<script>
import empty from '@/components/empty.vue'
import tRefresh from "@/components/t-refresh/t-refresh.vue"
export default {
components:{tRefresh,empty},
data(){
return{
orderType:'',
userId:'',
startTime:'',
endTime:'',
listData:[],
titleData:'',
loadingType:0,
page:1,
limit:10,
tapNum:0,
tapNav:[
{name:'本期已加钟订单',isSfwc:'1'},
{name:'本期未加钟订单',isSfwc:'0'}
],
isSfwc:'1',
homePageCountData:'',
}
},
onLoad(e) {
this.orderType=e.type;
this.homePageCountData=this.$queue.getData("homePageCountNumOne");
this.titleData=this.orderType=='2'?'当期加钟率':'当期充值率';
if(this.orderType=='2'){
this.tapNav=[
{name:'本期已加钟订单',isSfwc:'1'},
{name:'本期未加钟订单',isSfwc:'0'}
]
}else{
this.tapNav=[
{name:'本期已充值订单',isSfwc:'1'},
{name:'本期未充值订单',isSfwc:'0'}
]
}
this.userId = uni.getStorageSync("artificerId");
this.getTime()
this.getData();
uni.setNavigationBarTitle({
title: this.titleData
});
},
onPullDownRefresh: function() {
this.page = 1;
this.getData();
},
methods:{
goOder(item){
uni.navigateTo({
url:'/my/order/revenueDetails?ordersId='+item.ordersId
})
},
tabClick(isSfwc,index){
this.tapNum=index;
this.isSfwc=isSfwc;
this.page=0;
this.listData = [];
uni.showLoading({
title: '加载中'
});
this.getData();
},
//
loadMore: async function() {
//loadingType: 0. 1. 2.
if(this.loadingType==0){
this.loadingType=2
//
setTimeout(()=>{
this.page++;
this.loadingType=0;
this.getData()
},1000)
}
},
getTime(){
let now = new Date();
let year = now.getFullYear();
let month = now.getMonth() + 1; // JavaScript01
let monthJia=month<10?'0'+month:month;
let day = now.getDate();
let currentDate = year + '-' + monthJia + '-' + day;
let dayEnd = new Date(now.getFullYear(), monthJia, 0).getDate();
if(day>=1&&day<=10){
this.startTime=year + '-' + monthJia + '-01';
this.endTime=year + '-' + monthJia + '-' + 10;
}else if(day>=11&&day<=20){
this.startTime=year + '-' + monthJia + '-' + 11;
this.endTime=year + '-' + monthJia + '-' + 20;
}else if(day>=21&&day<=dayEnd){
this.startTime=year + '-' + monthJia + '-' + 21
this.endTime=year + '-' + monthJia + '-' + dayEnd;
}
},
getData(){
var that=this;
let data = {
userId:that.userId,
orderType:that.orderType,
startTime:that.startTime,
endTime:that.endTime,
page: that.page,
limit: that.limit,
isSfwc:that.isSfwc
}
that.$Request.getT('/app/artificer/getOrderTypeList', data).then(res => {
uni.hideLoading()
if (res.code == 0) {
if (that.page == 1) that.listData = []; //
that.listData = [...that.listData, ...res.data.list]; //
} else {
that.$queue.showToast(res.msg);
}
});
},
details(){
uni.navigateTo({
url:'/pages/index/revenueDetails'
})
},
wangqi(){//
uni.navigateTo({
url:'/pages/index/previousAdditions'
})
},
}
}
</script>
<style scoped>
.view-title{
width: 100%;
padding: 0 5px;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
/deep/.page-box{
width: 100%;
}
/deep/.t-loading-box{
text-align: center;
}
/deep/.refresh-body .content{
/* background-color: #f7f7f7; */
}
/deep/.refresh-body{
height: 100% !important;
border-top: 2px solid #f7f7f7;
}
.tapNav-name{
font-weight: bold;
font-size: 31rpx;
color: #333333;
}
.tapNav-bor{
width: 100px;
height: 14rpx;
background: linear-gradient(-48deg, rgba(1, 156, 136, 0.35), rgba(45, 196, 142, 0.35));
border-radius: 7rpx;
position: absolute;
bottom: 0;
margin-bottom: 10px;
}
.tapNav-list{
width: 100%;
margin: 0 auto;
display: flex;
flex-direction:row;
align-items: center;
justify-content: space-between;
background-color: #fff;
}
.tapNav-view{
height: 40px;
width: 50%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
position: relative;
}
.table-view span{
font-weight: 400;
font-size: 19rpx;
color: #666666;
}
.table-view span:nth-child(1){
font-weight: bold;
}
.table-view span{
margin-bottom: 15px;
}
.table-view{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.mian-table{
width: 100%;
padding: 10px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
background: #FFFFFF;
border-radius: 24rpx;
margin-bottom: 10px;
}
.view-num{
color: #029D88 !important;
}
.mian-bottom{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.mian-foot-adder{
margin: 2px 0px;
}
.mian-dingwei image{
width: 18.75rpx;
height:21.53rpx;
margin-right: 5px;
}
.mian-dingwei,.mian-bottom-shou{
display: flex;
flex-direction: row;
align-items: center;
}
.mian-title{
font-weight: bold;
font-size: 31rpx;
color: #333333;
}
.mian-foot-view{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
margin-bottom: 5px;
}
.mian-foot-list{
width: 75%;
display: flex;
flex-direction: column;
}
.mian-foot-img image{
width: 100%;
height: 100%;
}
.mian-foot-img{
width: 158rpx;
height: 188rpx;
background: #E6E6E6;
border-radius: 14rpx;
}
.mian-foot{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.mian-list-top-time span{
font-size:25rpx;
}
.mian-list-top-time span:nth-child(1){
color: #7D7D7D;
}
.mian-list-top-time span:nth-child(2){
color: #11957C;
}
.mian-list-top-time{
display: flex;
flex-direction: row;
align-items: center;
}
.mian-list-top-biao{
width: 130rpx;
height: 47rpx;
line-height: 47rpx;
color: #fff;
font-size: 25rpx;
text-align: center;
background: linear-gradient(90deg, #019C88, #28BA92, #35C495);
border-top-left-radius: 21rpx;
border-bottom-right-radius: 21rpx;
}
.mian-list-top{
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
padding-bottom: 10px;
border-bottom: 1px solid #E5E5E5;
margin-bottom: 10px;
}
.mian-list{
width: 100%;
padding: 10px;
display: flex;
flex-direction: column;
background: #FFFFFF;
border-radius: 24rpx;
margin-bottom: 10px;
}
.view-title-right{
font-weight: 400;
font-size: 21rpx;
color: #666666;
}
.view-title-left-text{
font-weight: 400;
font-size: 25rpx;
color: #333333;
margin-left: 5px;
}
.view-title-left-shuxian{
width: 10rpx;
height: 29rpx;
background: #029D88;
border-radius: 5rpx;
}
.view-title-left{
display: flex;
flex-direction: row;
align-items: center;
margin: 15px 0px;
}
.view-title{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.mina-view{
width: 100%;
display: flex;
flex-direction: column;
}
.mina{
width: 95%;
display: flex;
flex-direction: column;
}
.header-bottom-money{
font-weight: bold;
font-size: 49rpx;
color: #FFFFFF;
}
.header-top-btn{
width: 174rpx;
height: 49rpx;
line-height: 49rpx;
text-align: center;
font-size: 21rpx;
color: #333333;
background: #FFFFFF;
border-radius: 24rpx;
}
.header-text{
font-weight: 400;
font-size: 22rpx;
color: #FFFFFF;
margin-top: 2px;
}
.header-top-left image{
width: 24.31rpx;
height:22.92rpx;
margin-right: 2px;
margin-top: 3px;
}
.header-top-left{
display: flex;
flex-direction: row;
align-items: center;
}
.header-top{
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
margin-bottom: 10px;
}
.header{
width: 100%;
height: 300rpx;
padding: 15px;
background-image: url('../../static/index/fun_banner4.png');
background-repeat: no-repeat;
background-size: 100% 100%;
display: flex;
flex-direction: column;
justify-content: space-around;
}
.content{
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
height: 100vh;
background-color: #f7f7f7;
overflow: scroll;
}
</style>

View File

@ -0,0 +1,330 @@
<template>
<view class="content">
<view class="header">
<view class="header-top">
<view class="header-top-left">
<image src="../../static/index/dangqian1.png" mode=""></image>
<span class="header-text" style="margin-right: 5px;">当前周期</span>
<span class="header-text">{{startTime}}~{{endTime}}</span>
</view>
<view class="header-top-btn" @click="wangqi">往期收益</view>
</view>
<view class="header-bottom">
<view class="header-bottom-money">{{shouyiMoeny}}</view>
<view class="header-text">当前收益</view>
</view>
</view>
<t-refresh class="mian" ref="refresh" v-if="listData.length>0" @refresh="refresh" @loadMore="loadMore" :loadingType="loadingType" :tPadding="0">
<template slot="content">
<view class="mian-view" v-for="(item,index) in listData" :key="index" @click="goOder(item)">
<view class="mian-head">
<view class="mian-head-biao">{{item.status=='3'?'已完成':'待评价'}}</view>
<view class="mian-head-time">
<span class="shouyi-text">预约时间: </span>
<span>{{item.serveTime}}</span>
</view>
</view>
<view class="mian-foot">
<view class="mian-foot-img">
<image src="../../my/static/bg6.png" mode=""></image>
</view>
<view class="mian-foot-list">
<view class="mian-foot-view">
<view class="mian-title">{{item.entryName}}</view>
<view class="mian-dingwei">
<image src="../../static/index/dangqian2.png" mode=""></image>
<span class="shouyi-text">0.8km</span>
</view>
</view>
<view class="mian-foot-dan shouyi-text">
订单编号 : {{item.ordersNo}}
</view>
<view class="mian-foot-adder shouyi-text">
服务地址 : {{item.address}}
</view>
<view class="mian-bottom">
<view class="mian-bottom-xiang shouyi-text">项目金额 : {{item.price}}</view>
<view class="mian-bottom-shou">
<span class="shouyi-text">本单收益: </span>
<span class="shouyi-text" style="color: #FF6000;font-weight: bold;">{{item.artificerMoney}}</span>
</view>
</view>
</view>
</view>
</view>
</template>
</t-refresh>
<empty v-if="listData.length==0"></empty>
</view>
</template>
<script>
import empty from '@/components/empty.vue'
import tRefresh from "@/components/t-refresh/t-refresh.vue"
export default {
components:{tRefresh,empty},
data(){
return{
loadingType:0,
orderType:'',
userId:'',
startTime:'',
endTime:'',
listData:[],
titleData:'',
page:1,
limit:10,
shouyiMoeny:'',
}
},
onLoad(e) {
this.orderType=e.type;
this.shouyiMoeny=e.shouyiMoeny;
this.userId = uni.getStorageSync("artificerId");
this.getTime()
this.getData();
},
onPullDownRefresh: function() {
this.page = 1;
this.getData();
},
methods:{
goOder(item){
uni.navigateTo({
url:'/my/order/revenueDetails?ordersId='+item.ordersId
})
},
//
loadMore: async function() {
//loadingType: 0. 1. 2.
if(this.loadingType==0){
this.loadingType=2
//
setTimeout(()=>{
this.page++;
this.loadingType=0;
this.getData()
},1000)
}
},
getTime(){
let now = new Date();
let year = now.getFullYear();
let month = now.getMonth() + 1; // JavaScript01
let monthJia=month<10?'0'+month:month;
let day = now.getDate();
let currentDate = year + '-' + monthJia + '-' + day;
let dayEnd = new Date(now.getFullYear(), monthJia, 0).getDate();
if(day>=1&&day<=10){
this.startTime=year + '-' + monthJia + '-01';
this.endTime=year + '-' + monthJia + '-' + 10;
}else if(day>=11&&day<=20){
this.startTime=year + '-' + monthJia + '-' + 11;
this.endTime=year + '-' + monthJia + '-' + 20;
}else if(day>=21&&day<=dayEnd){
this.startTime=year + '-' + monthJia + '-' + 21
this.endTime=year + '-' + monthJia + '-' + dayEnd;
}
},
getData(){
var that=this;
let data = {
userId:that.userId,
orderType:that.orderType,
startTime:that.startTime,
endTime:that.endTime,
page: that.page,
limit: that.limit,
}
that.$Request.getT('/app/artificer/getOrderTypeList', data).then(res => {
if (res.code == 0) {
if (that.page == 1) that.listData = []; //
that.listData = [...that.listData, ...res.data.list]; //
} else {
that.$queue.showToast(res.msg);
}
});
},
wangqi(){//
uni.navigateTo({
url:'/pages/index/previousEarnings'
})
},
}
}
</script>
<style scoped>
/deep/.refresh-body .content{
/* background-color: #f7f7f7; */
}
/deep/.refresh-body{
height: 100% !important;
border-top: 2px solid #f7f7f7;
}
.mian-bottom{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.mian-foot-adder{
margin: 2px 0px;
}
.mian-dingwei image{
width: 18.75rpx;
height:21.53rpx;
margin-right: 5px;
}
.mian-dingwei,.mian-bottom-shou{
display: flex;
flex-direction: row;
align-items: center;
}
.mian-title{
font-weight: bold;
font-size: 31rpx;
color: #333333;
}
.mian-foot-view{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
margin-bottom: 5px;
}
.mian-foot-list{
width: 75%;
display: flex;
flex-direction: column;
}
.mian-foot-img image{
width: 100%;
height: 100%;
}
.mian-foot-img{
width: 158rpx;
height: 188rpx;
background: #E6E6E6;
border-radius: 14rpx;
}
.mian-foot{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.shouyi-text{
color: #7D7D7D;
font-size: 22rpx;
}
.mian-head-time span:nth-child(2){
color: #11957C;
margin-top: 1px;
}
.mian-head-time{
display: flex;
flex-direction: row;
align-items: center;
font-weight: 400;
font-size: 25rpx;
}
.mian-head-biao{
width: 130rpx;
height: 47rpx;
line-height: 47rpx;
color: #fff;
font-size: 25rpx;
text-align: center;
background: linear-gradient(90deg, #019C88, #28BA92, #35C495);
border-top-left-radius: 21rpx;
border-bottom-right-radius: 21rpx;
}
.mian-head{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid #E5E5E5;
padding-bottom: 5px;
margin-bottom: 10px;
}
.mian-view{
width: 95%;
background-color: #fff;
padding: 10px;
border-radius: 24rpx;
display: flex;
flex-direction: column;
margin-top: 10px;
}
.mian{
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
}
.header-bottom-money{
font-weight: bold;
font-size: 49rpx;
color: #FFFFFF;
margin-bottom: 3px;
}
.header-top-btn{
width: 174rpx;
height: 49rpx;
line-height: 49rpx;
text-align: center;
font-size: 21rpx;
color: #333333;
background: #FFFFFF;
border-radius: 24rpx;
}
.header-text{
font-weight: 400;
font-size: 22rpx;
color: #FFFFFF;
margin-top: 2px;
}
.header-top-left image{
width: 24.31rpx;
height:22.92rpx;
margin-right: 2px;
margin-top: 3px;
}
.header-top-left{
display: flex;
flex-direction: row;
align-items: center;
}
.header-top{
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
}
.header{
width: 100%;
height: 300rpx;
padding: 15px;
background-image: url('../../static/index/fun_banner4.png');
background-repeat: no-repeat;
background-size: 100% 100%;
display: flex;
flex-direction: column;
justify-content: space-around;
}
.content{
width: 100%;
height: 100vh;
background-color: #f7f7f7;
}
</style>

View File

@ -0,0 +1,612 @@
<template>
<view class="content">
<view class="header">
<view class="header-top">
<view class="header-top-left">
<image src="../../static/index/dangqian1.png" mode=""></image>
<span class="header-text" style="margin-right: 5px;">
当前周期
</span>
<span class="header-text">2024.01.01~2024.01.10</span>
</view>
<view class="header-top-btn" @click="wangqi">往期积分</view>
</view>
<view class="header-bottom">
<view class="header-bottom-money">7310<text style="font-size: 23rpx;font-weight: 400;"></text> </view>
<view class="header-text">当前积分</view>
</view>
</view>
<view class="mina">
<!--业绩积分-->
<view class="mina-view">
<view class="view-title">
<view class="view-title-left">
<span class="view-title-left-shuxian"></span>
<span class="view-title-left-text">业绩积分:<text class="view-num">596</text>(项目金额累计积分兑换比例为1:1)</span>
</view>
<view class="view-title-right" @click="jieshi">更多</view>
</view>
<view class="mian-list" @click="wangqi">
<view class="mian-list-top">
<view class="mian-list-top-biao">已完成</view>
<view class="mian-list-top-time">
<span>预约时间: </span>
<span>2024-01-02 14:00</span>
</view>
</view>
<view class="mian-foot">
<view class="mian-foot-img">
<image src="../../my/static/bg6.png" mode=""></image>
</view>
<view class="mian-foot-list">
<view class="mian-foot-view">
<view class="mian-title">中医推拿(测试)</view>
<view class="mian-dingwei">
<image src="../../static/index/dangqian2.png" mode=""></image>
<span class="shouyi-text">0.8km</span>
</view>
</view>
<view class="mian-foot-dan shouyi-text">
订单编号 : 202310311231559420
</view>
<view class="mian-foot-adder shouyi-text">
服务地址 : 吉林省长春市二道区欧亚万豪购物中心16-301
</view>
<view class="mian-bottom">
<view class="mian-bottom-xiang shouyi-text">项目金额 : 298</view>
<view class="mian-bottom-shou">
<span class="shouyi-text">本单收益: </span>
<span class="shouyi-text" style="color: #FF6000;font-weight: bold;">326.70</span>
</view>
</view>
</view>
</view>
</view>
<view class="mian-list">
<view class="mian-list-top">
<view class="mian-list-top-biao">已完成</view>
<view class="mian-list-top-time">
<span>预约时间: </span>
<span>2024-01-02 14:00</span>
</view>
</view>
<view class="mian-foot">
<view class="mian-foot-img">
<image src="../../my/static/bg6.png" mode=""></image>
</view>
<view class="mian-foot-list">
<view class="mian-foot-view">
<view class="mian-title">中医推拿(测试)</view>
<view class="mian-dingwei">
<image src="../../static/index/dangqian2.png" mode=""></image>
<span class="shouyi-text">0.8km</span>
</view>
</view>
<view class="mian-foot-dan shouyi-text">
订单编号 : 202310311231559420
</view>
<view class="mian-foot-adder shouyi-text">
服务地址 : 吉林省长春市二道区欧亚万豪购物中心16-301
</view>
<view class="mian-bottom">
<view class="mian-bottom-xiang shouyi-text">项目金额 : 298</view>
<view class="mian-bottom-shou">
<span class="shouyi-text">本单收益: </span>
<span class="shouyi-text" style="color: #FF6000;font-weight: bold;">326.70</span>
</view>
</view>
</view>
</view>
</view>
</view>
<!--时长积分-->
<view class="mina-view">
<view class="view-title">
<view class="view-title-left">
<span class="view-title-left-shuxian"></span>
<span class="view-title-left-text">时长积分: <text class="view-num">36</text>(在线时长10分钟可获取1积分)</span>
</view>
<view class="view-title-right" @click.stop="toggle('时长积分')">更多</view>
</view>
<view class="mian-table">
<view class="table-view">
<span style="font-size: 22rpx;">序号</span>
<span>01</span>
<span>02</span>
<span>03</span>
</view>
<view class="table-view">
<span style="font-size: 22rpx;">上线时间</span>
<span>2024.01.01 10:00</span>
<span>2024.01.01 10:00</span>
<span>2024.01.01 10:00</span>
</view>
<view class="table-view">
<span style="font-size: 22rpx;">下线时间</span>
<span>2024.01.01 10:00</span>
<span>2024.01.01 10:00</span>
<span>2024.01.01 10:00</span>
</view>
<view class="table-view">
<span style="font-size: 22rpx;">获取积分</span>
<span style="color: #029D88;">12</span>
<span style="color: #029D88;">12</span>
<span style="color: #029D88;">12</span>
</view>
</view>
</view>
<!--充值积分-->
<view class="mina-view">
<view class="view-title">
<view class="view-title-left">
<span class="view-title-left-shuxian"></span>
<span class="view-title-left-text">充值积分: <text class="view-num">2000</text>(充值积分比例为1:1)</span>
</view>
<view class="view-title-right" @click.stop="toggle('充值积分')">更多</view>
</view>
<view class="mian-list">
<view class="mian-list-top">
<view class="mian-list-top-biao">已完成</view>
<view class="mian-list-top-time">
<span>预约时间: </span>
<span>2024-01-02 14:00</span>
</view>
</view>
<view class="mian-foot">
<view class="mian-foot-img">
<image src="../../my/static/bg6.png" mode=""></image>
</view>
<view class="mian-foot-list">
<view class="mian-foot-view">
<view class="mian-title">中医推拿(测试)</view>
<view class="mian-dingwei">
<image src="../../static/index/dangqian2.png" mode=""></image>
<span class="shouyi-text">0.8km</span>
</view>
</view>
<view class="mian-foot-dan shouyi-text">
订单编号 : 202310311231559420
</view>
<view class="mian-foot-adder shouyi-text">
服务地址 : 吉林省长春市二道区欧亚万豪购物中心16-301
</view>
<view class="mian-bottom">
<view class="mian-bottom-xiang shouyi-text">项目金额 : 298</view>
<view class="mian-bottom-shou">
<span class="shouyi-text">本单收益: </span>
<span class="shouyi-text" style="color: #FF6000;font-weight: bold;">326.70</span>
</view>
</view>
</view>
</view>
</view>
<view class="mian-list">
<view class="mian-list-top">
<view class="mian-list-top-biao">已完成</view>
<view class="mian-list-top-time">
<span>预约时间: </span>
<span>2024-01-02 14:00</span>
</view>
</view>
<view class="mian-foot">
<view class="mian-foot-img">
<image src="../../my/static/bg6.png" mode=""></image>
</view>
<view class="mian-foot-list">
<view class="mian-foot-view">
<view class="mian-title">中医推拿(测试)</view>
<view class="mian-dingwei">
<image src="../../static/index/dangqian2.png" mode=""></image>
<span class="shouyi-text">0.8km</span>
</view>
</view>
<view class="mian-foot-dan shouyi-text">
订单编号 : 202310311231559420
</view>
<view class="mian-foot-adder shouyi-text">
服务地址 : 吉林省长春市二道区欧亚万豪购物中心16-301
</view>
<view class="mian-bottom">
<view class="mian-bottom-xiang shouyi-text">项目金额 : 298</view>
<view class="mian-bottom-shou">
<span class="shouyi-text">本单收益: </span>
<span class="shouyi-text" style="color: #FF6000;font-weight: bold;">326.70</span>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
<view>
<!-- 普通弹窗 -->
<uni-popup ref="popup" background-color="#fff" @change="change">
<view class="popup-content">
<view class="popup-head">
<span>{{titleList}}</span>
<span @click="closePopup(type)">x</span>
</view>
<view class="popup-mian">
<view class="popup-mian-textarea">
<view class="popup-mian-view">
<span>原服务项目价格:</span>
<span>198</span>
</view>
<view class="popup-mian-view">
<span>现服务项目价格:</span>
<span>298</span>
</view>
<view class="popup-mian-view">
<span>改价需支付差价:</span>
<span>100</span>
</view>
</view>
<view class="popup-mian-btn">
<span @click="closePopup(type)">
取消
</span>
<span>
确定
</span>
</view>
</view>
</view>
</uni-popup>
</view>
</view>
</template>
<script>
export default{
data(){
return{
type:'center',
titleList:''
}
},
methods:{
jieshi(){
uni.navigateTo({
url:'/pages/index/currentPointsDetail'
})
},
change(e) {
console.log('当前模式:' + e.type + ',状态:' + e.show);
},
closePopup(type){//
this.type = type
this.$refs.popup.close(type);
},
toggle(type) {//
this.titleList=type
// open uni-popup type
this.$refs.popup.open(this.type)
},
wangqi(){//
uni.navigateTo({
url:'/pages/index/previousPoints'
})
},
}
}
</script>
<style scoped>
.popup-mian-view span:nth-child(1){
color: #666666;
}
.popup-mian-view span:nth-child(2){
color: #333;
font-weight: bold;
}
.popup-mian-view span{
font-size: 29rpx;
}
.popup-mian-view{
width: 100%;
height: 35px;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid #DCDCDC;
}
.popup-mian-textarea{
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;
line-height: 19px;
text-align: center;
font-size: 24px;
color: #15AB8D;
border-radius: 50%;
border: 3px solid #15AB8D;
}
.popup-head span:nth-child(1){
font-weight: bold;
font-size: 32rpx;
color: #333333;
}
.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;
}
.popup-content{
width: 613rpx;
height: 479rpx;
background: #FFFFFF;
border-radius: 56rpx;
display: flex;
flex-direction: column;
}
.table-view span{
font-weight: 400;
font-size: 19rpx;
color: #666666;
}
.table-view span:nth-child(1){
font-weight: bold;
}
.table-view span{
margin-bottom: 15px;
}
.table-view{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.mian-table{
width: 100%;
padding: 10px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
background: #FFFFFF;
border-radius: 24rpx;
margin-bottom: 10px;
}
.view-num{
color: #029D88 !important;
}
.mian-bottom{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.mian-foot-adder{
margin: 2px 0px;
}
.mian-dingwei image{
width: 18.75rpx;
height:21.53rpx;
margin-right: 5px;
}
.mian-dingwei,.mian-bottom-shou{
display: flex;
flex-direction: row;
align-items: center;
}
.mian-title{
font-weight: bold;
font-size: 31rpx;
color: #333333;
}
.mian-foot-view{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
margin-bottom: 5px;
}
.mian-foot-list{
width: 75%;
display: flex;
flex-direction: column;
}
.mian-foot-img image{
width: 100%;
height: 100%;
}
.mian-foot-img{
width: 158rpx;
height: 188rpx;
background: #E6E6E6;
border-radius: 14rpx;
}
.mian-foot{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.mian-list-top-time span{
font-size:25rpx;
}
.mian-list-top-time span:nth-child(1){
color: #7D7D7D;
}
.mian-list-top-time span:nth-child(2){
color: #11957C;
}
.mian-list-top-time{
display: flex;
flex-direction: row;
align-items: center;
}
.mian-list-top-biao{
width: 130rpx;
height: 47rpx;
line-height: 47rpx;
color: #fff;
font-size: 25rpx;
text-align: center;
background: linear-gradient(90deg, #019C88, #28BA92, #35C495);
border-top-left-radius: 21rpx;
border-bottom-right-radius: 21rpx;
}
.mian-list-top{
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
padding-bottom: 10px;
border-bottom: 1px solid #E5E5E5;
margin-bottom: 10px;
}
.mian-list{
width: 100%;
padding: 10px;
display: flex;
flex-direction: column;
background: #FFFFFF;
border-radius: 24rpx;
margin-bottom: 10px;
}
.view-title-right{
font-weight: 400;
font-size: 21rpx;
color: #666666;
}
.view-title-left-text{
font-weight: 400;
font-size: 25rpx;
color: #333333;
margin-left: 5px;
}
.view-title-left-shuxian{
width: 10rpx;
height: 29rpx;
background: #029D88;
border-radius: 5rpx;
}
.view-title-left{
display: flex;
flex-direction: row;
align-items: center;
margin: 15px 0px;
}
.view-title{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.mina-view{
width: 100%;
display: flex;
flex-direction: column;
}
.mina{
width: 95%;
display: flex;
flex-direction: column;
}
.header-bottom-money{
font-weight: bold;
font-size: 49rpx;
color: #FFFFFF;
}
.header-top-btn{
width: 174rpx;
height: 49rpx;
line-height: 49rpx;
text-align: center;
font-size: 21rpx;
color: #333333;
background: #FFFFFF;
border-radius: 24rpx;
}
.header-text{
font-weight: 400;
font-size: 22rpx;
color: #FFFFFF;
}
.header-top-left image{
width: 24.31rpx;
height:22.92rpx;
margin-right: 2px;
margin-top: 3px;
}
.header-top-left{
display: flex;
flex-direction: row;
align-items: center;
}
.header-top{
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
margin-bottom: 10px;
}
.header{
width: 100%;
height: 300rpx;
padding: 15px;
background-image: url('../../static/index/fun_banner4.png');
background-repeat: no-repeat;
background-size: 100% 100%;
display: flex;
flex-direction: column;
justify-content: space-around;
}
.content{
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
height: 100vh;
background-color: #f7f7f7;
overflow: scroll;
}
</style>

View File

@ -0,0 +1,434 @@
<template>
<view class="content">
<view class="mina">
<!--业绩积分-->
<view class="mina-view">
<view class="mian-list" @click="wangqi">
<view class="mian-list-top">
<view class="mian-list-top-biao">已完成</view>
<view class="mian-list-top-time">
<span>预约时间: </span>
<span>2024-01-02 14:00</span>
</view>
</view>
<view class="mian-foot">
<view class="mian-foot-img">
<image src="../../my/static/bg6.png" mode=""></image>
</view>
<view class="mian-foot-list">
<view class="mian-foot-view">
<view class="mian-title">中医推拿(测试)</view>
<view class="mian-dingwei">
<image src="../../static/index/dangqian2.png" mode=""></image>
<span class="shouyi-text">0.8km</span>
</view>
</view>
<view class="mian-foot-dan shouyi-text">
订单编号 : 202310311231559420
</view>
<view class="mian-foot-adder shouyi-text">
服务地址 : 吉林省长春市二道区欧亚万豪购物中心16-301
</view>
<view class="mian-bottom">
<view class="mian-bottom-xiang shouyi-text">项目金额 : 298</view>
<view class="mian-bottom-shou">
<span class="shouyi-text">本单收益: </span>
<span class="shouyi-text" style="color: #FF6000;font-weight: bold;">326.70</span>
</view>
</view>
</view>
</view>
</view>
<view class="mian-list">
<view class="mian-list-top">
<view class="mian-list-top-biao">已完成</view>
<view class="mian-list-top-time">
<span>预约时间: </span>
<span>2024-01-02 14:00</span>
</view>
</view>
<view class="mian-foot">
<view class="mian-foot-img">
<image src="../../my/static/bg6.png" mode=""></image>
</view>
<view class="mian-foot-list">
<view class="mian-foot-view">
<view class="mian-title">中医推拿(测试)</view>
<view class="mian-dingwei">
<image src="../../static/index/dangqian2.png" mode=""></image>
<span class="shouyi-text">0.8km</span>
</view>
</view>
<view class="mian-foot-dan shouyi-text">
订单编号 : 202310311231559420
</view>
<view class="mian-foot-adder shouyi-text">
服务地址 : 吉林省长春市二道区欧亚万豪购物中心16-301
</view>
<view class="mian-bottom">
<view class="mian-bottom-xiang shouyi-text">项目金额 : 298</view>
<view class="mian-bottom-shou">
<span class="shouyi-text">本单收益: </span>
<span class="shouyi-text" style="color: #FF6000;font-weight: bold;">326.70</span>
</view>
</view>
</view>
</view>
</view>
</view>
<!--时长积分-->
<view class="mina-view">
<view class="mian-table">
<view class="table-view">
<span style="font-size: 22rpx;">序号</span>
<span>01</span>
<span>02</span>
<span>03</span>
</view>
<view class="table-view">
<span style="font-size: 22rpx;">上线时间</span>
<span>2024.01.01 10:00</span>
<span>2024.01.01 10:00</span>
<span>2024.01.01 10:00</span>
</view>
<view class="table-view">
<span style="font-size: 22rpx;">下线时间</span>
<span>2024.01.01 10:00</span>
<span>2024.01.01 10:00</span>
<span>2024.01.01 10:00</span>
</view>
<view class="table-view">
<span style="font-size: 22rpx;">获取积分</span>
<span style="color: #029D88;">12</span>
<span style="color: #029D88;">12</span>
<span style="color: #029D88;">12</span>
</view>
</view>
</view>
<!--充值积分-->
<view class="mina-view">
<view class="mian-list">
<view class="mian-list-top">
<view class="mian-list-top-biao">已完成</view>
<view class="mian-list-top-time">
<span>预约时间: </span>
<span>2024-01-02 14:00</span>
</view>
</view>
<view class="mian-foot">
<view class="mian-foot-img">
<image src="../../my/static/bg6.png" mode=""></image>
</view>
<view class="mian-foot-list">
<view class="mian-foot-view">
<view class="mian-title">中医推拿(测试)</view>
<view class="mian-dingwei">
<image src="../../static/index/dangqian2.png" mode=""></image>
<span class="shouyi-text">0.8km</span>
</view>
</view>
<view class="mian-foot-dan shouyi-text">
订单编号 : 202310311231559420
</view>
<view class="mian-foot-adder shouyi-text">
服务地址 : 吉林省长春市二道区欧亚万豪购物中心16-301
</view>
<view class="mian-bottom">
<view class="mian-bottom-xiang shouyi-text">项目金额 : 298</view>
<view class="mian-bottom-shou">
<span class="shouyi-text">本单收益: </span>
<span class="shouyi-text" style="color: #FF6000;font-weight: bold;">326.70</span>
</view>
</view>
</view>
</view>
</view>
<view class="mian-list">
<view class="mian-list-top">
<view class="mian-list-top-biao">已完成</view>
<view class="mian-list-top-time">
<span>预约时间: </span>
<span>2024-01-02 14:00</span>
</view>
</view>
<view class="mian-foot">
<view class="mian-foot-img">
<image src="../../my/static/bg6.png" mode=""></image>
</view>
<view class="mian-foot-list">
<view class="mian-foot-view">
<view class="mian-title">中医推拿(测试)</view>
<view class="mian-dingwei">
<image src="../../static/index/dangqian2.png" mode=""></image>
<span class="shouyi-text">0.8km</span>
</view>
</view>
<view class="mian-foot-dan shouyi-text">
订单编号 : 202310311231559420
</view>
<view class="mian-foot-adder shouyi-text">
服务地址 : 吉林省长春市二道区欧亚万豪购物中心16-301
</view>
<view class="mian-bottom">
<view class="mian-bottom-xiang shouyi-text">项目金额 : 298</view>
<view class="mian-bottom-shou">
<span class="shouyi-text">本单收益: </span>
<span class="shouyi-text" style="color: #FF6000;font-weight: bold;">326.70</span>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default{
data(){
return{
titleList:''
}
},
methods:{
}
}
</script>
<style scoped>
.table-view span{
font-weight: 400;
font-size: 19rpx;
color: #666666;
}
.table-view span:nth-child(1){
font-weight: bold;
}
.table-view span{
margin-bottom: 15px;
}
.table-view{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.mian-table{
width: 100%;
padding: 10px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
background: #FFFFFF;
border-radius: 24rpx;
margin-bottom: 10px;
}
.view-num{
color: #029D88 !important;
}
.mian-bottom{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.mian-foot-adder{
margin: 2px 0px;
}
.mian-dingwei image{
width: 18.75rpx;
height:21.53rpx;
margin-right: 5px;
}
.mian-dingwei,.mian-bottom-shou{
display: flex;
flex-direction: row;
align-items: center;
}
.mian-title{
font-weight: bold;
font-size: 31rpx;
color: #333333;
}
.mian-foot-view{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
margin-bottom: 5px;
}
.mian-foot-list{
width: 75%;
display: flex;
flex-direction: column;
}
.mian-foot-img image{
width: 100%;
height: 100%;
}
.mian-foot-img{
width: 158rpx;
height: 188rpx;
background: #E6E6E6;
border-radius: 14rpx;
}
.mian-foot{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.mian-list-top-time span{
font-size:25rpx;
}
.mian-list-top-time span:nth-child(1){
color: #7D7D7D;
}
.mian-list-top-time span:nth-child(2){
color: #11957C;
}
.mian-list-top-time{
display: flex;
flex-direction: row;
align-items: center;
}
.mian-list-top-biao{
width: 130rpx;
height: 47rpx;
line-height: 47rpx;
color: #fff;
font-size: 25rpx;
text-align: center;
background: linear-gradient(90deg, #019C88, #28BA92, #35C495);
border-top-left-radius: 21rpx;
border-bottom-right-radius: 21rpx;
}
.mian-list-top{
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
padding-bottom: 10px;
border-bottom: 1px solid #E5E5E5;
margin-bottom: 10px;
}
.mian-list{
width: 100%;
padding: 10px;
display: flex;
flex-direction: column;
background: #FFFFFF;
border-radius: 24rpx;
margin-bottom: 10px;
}
.view-title-right{
font-weight: 400;
font-size: 21rpx;
color: #666666;
}
.view-title-left-text{
font-weight: 400;
font-size: 25rpx;
color: #333333;
margin-left: 5px;
}
.view-title-left-shuxian{
width: 10rpx;
height: 29rpx;
background: #029D88;
border-radius: 5rpx;
}
.view-title-left{
display: flex;
flex-direction: row;
align-items: center;
margin: 15px 0px;
}
.view-title{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.mina-view{
width: 100%;
display: flex;
flex-direction: column;
}
.mina{
width: 95%;
display: flex;
flex-direction: column;
}
.header-bottom-money{
font-weight: bold;
font-size: 49rpx;
color: #FFFFFF;
}
.header-top-btn{
width: 174rpx;
height: 49rpx;
line-height: 49rpx;
text-align: center;
font-size: 21rpx;
color: #333333;
background: #FFFFFF;
border-radius: 24rpx;
}
.header-text{
font-weight: 400;
font-size: 22rpx;
color: #FFFFFF;
}
.header-top-left image{
width: 24.31rpx;
height:22.92rpx;
margin-right: 2px;
margin-top: 3px;
}
.header-top-left{
display: flex;
flex-direction: row;
align-items: center;
}
.header-top{
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
margin-bottom: 10px;
}
.header{
width: 100%;
height: 300rpx;
padding: 15px;
background-image: url('../../static/index/fun_banner4.png');
background-repeat: no-repeat;
background-size: 100% 100%;
display: flex;
flex-direction: column;
justify-content: space-around;
}
.content{
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
height: 100vh;
background-color: #f7f7f7;
overflow: scroll;
}
</style>

View File

@ -1,10 +1,11 @@
<template>
<view style="padding-bottom: 80upx;">
<view class="bg">
<view class=" u-flex padding-lr" style="padding: 20px 30rpx 120px;align-items: center;">
<!-- <view class="u-m-r-10" >
<image :src="avatar" class="img-avatar"></image>
</view> -->
<view class="jishi-index">
<view class=" u-flex padding-lr" style="padding: 30px 30rpx 120px;align-items: center;">
<view class="u-m-r-10">
<image :src="avatar" style="width: 70px;height: 70px;border-radius: 100rpx;"
@click="goNav('/pages/my/userinfo')"></image>
</view>
<view class="u-flex-1 u-m-l-10 text-white" v-if="isLogin && userName">
<view class="flex align-center justify-between">
<view class="">
@ -20,15 +21,15 @@
</view>
<view class="gxbox" @click="goNavs('/my/qiandao/index')">
<template v-if="loglataddress">
<view class="flex align-center">
<view class="flex align-center gengxin">
更新位置<text class="wztext">{{ loglataddress }}</text>
</view>
<view class="flex align-center" style="margin-top: 5px;">
更新时间<text class="wztime">{{ loglattime }}</text>
<view class="flex align-center gengxin" style="margin-top: 5px;">
更新时间<text class="wztext">{{ loglattime }}</text>
</view>
</template>
<template v-else>
<view class="flex align-center" style="justify-content: center;">
<view class="flex align-center gengxin" style="justify-content: center;">
点击更新位置
</view>
</template>
@ -74,10 +75,10 @@
</view>
</view> -->
</view>
<view style="margin-top: -100px;padding: 30rpx;">
<view style="margin-top: -105px;padding: 30rpx;">
<view class="dengjibox">
<view class="djtit">当前等级</view>
<view class="djimg">{{ currentGrade ? currentGrade : "A0" }}</view>
<view class="djimg" @click="level">{{ currentGrade ? currentGrade : "A0" }}</view>
<view class="" style="margin-top: 20px;">
<text style="font-size: 30px;font-weight: bold;">{{ currentWholeIncome ? currentWholeIncome : 0 }}</text>
<text style="font-size: 16px;">/{{ totalIncomeRange ? totalIncomeRange : 4000 }}</text>
@ -85,14 +86,12 @@
<u-line-progress active-color="#46a396" :show-percent="false" :height="38" inactive-color="#000000"
:percent="lineProgressData" :striped-active="true"></u-line-progress>
<view v-if="!maxStatus && longUpgradeDescriptionSet.differenceOutstandingAchievement" class=""
style="font-size: 15px;margin-top: 8px;text-align: center;height: 40px;line-height: 40px;">
<view v-if="!maxStatus && longUpgradeDescriptionSet.differenceOutstandingAchievement" class="dengji-text">
还差{{ longUpgradeDescriptionSet.differenceOutstandingAchievement }}业绩;{{ longUpgradeDescriptionSet.differenceIntegral }}积分;可以升级{{ longUpgradeDescriptionSet.differenceGrade }}<u-icon
style="padding-left: 2px;" size="30" color="#ffffff" name="question-circle-fill"
@click="clickIcon" index="0"></u-icon>
</view>
<view v-if="maxStatus" class=""
style="font-size: 15px;margin-top: 8px;text-align: center;height: 40px;line-height: 40px;">
<view v-if="maxStatus" class=" dengji-text">
您已达到最高等级
</view>
<view>
@ -116,22 +115,22 @@
</u-popup>
</view>
<view class="flex align-center"
style="justify-content: space-evenly;text-align: center;margin-top: 12px;">
<view class="">
style="justify-content: space-evenly;text-align: center;">
<view class="" @click="dangqian">
<view class="" style="font-size: 22px;font-weight: bold;">
{{ currentRealIncome ? currentRealIncome : 0 }}
</view>
<view class="" style="font-size: 12px;">当期收益()</view>
</view>
<view class="xianb"></view>
<view class="shuxian"></view>
<view class="">
<view class="" style="font-size: 22px;font-weight: bold;">{{ currentIntegral ? currentIntegral : 0 }}
</view>
<view class="" style="font-size: 12px;" @tap="goNav('/pages/my/IntegralStatistics')">当期积分</view>
<view class="" style="font-size: 12px;" @tap="goNav('/pages/index/currentPoints')">当期积分</view>
</view>
</view>
</view>
<view class="csda" @click="getJqqd()">
<view class="csda">
<view class="flex align-center" style="font-size: 16px;font-weight: bold;color: #fff;margin-top: 8px;">
物料记录
<image src="../../static/images/index/yiwen.png" style="width: 16px;height: 17px;margin-left: 10px;"
@ -180,7 +179,7 @@
查看更多</view>
</view>
<view v-if="formatHomeMaterialPackageList.length > 0" class="flex align-center justify-between zbhsga">
<view class="importMaterialPackage" v-for="(item, index) in formatHomeMaterialPackageList"
<view class="importMaterialPackage wuliao" v-for="(item, index) in formatHomeMaterialPackageList"
:key="item.id">
<view class="importMaterialPackage">
<view class="importMaterialPackageInnerBox">
@ -202,9 +201,10 @@
</view>
<view class="flex align-center justify-between" style="margin-top: 20px;">
<view :class="activeTab == item.id ? 'tapDsalk' : 'dsalk'" @click="getJqqd(item.id)"
v-for="item in homePageCountNum" :key="item.id">
<view class="sda flex align-center">
<image :src="item.icon" style="width: 20px;height: 20px;"></image>
v-for="(item,homeIindex) in homePageCountNum" :key="homeIindex">
<view class="sda flex align-center" v-if="homeIindex==indexImg" v-for="(imgItem,indexImg) in jiazhongIimg" :key="indexImg">
<image :src="imgItem.url" mode="" style="width: 20px;height: 20px;"></image>
<!-- <image :src="item.icon" style="width: 20px;height: 20px;"></image> -->
</view>
<view class="dqda">{{ item.title }}</view>
<view class="" :style="{ fontSize: '20px', color: item.color, marginTop: '6px', fontWeight: 'bold' }">
@ -309,24 +309,24 @@
</view> -->
<view class="flex align-center justify-between" style="margin-top: 20px;" v-if="XCXIsSelect != '否'">
<view class="text-center" @click="goNavs('/pages/my/mangshi')">
<image src="../../static/images/index/order1.png" style="width: 70rpx;height: 80rpx;"></image>
<view>忙时设置</view>
<image src="../../static/index/order_5.png" style="width: 60rpx;height: 61rpx;"></image>
<view class="tongji-text">忙时设置</view>
</view>
<view class="text-center" @click="goNav('/my/shuju/index')">
<image src="../../static/images/index/order2.png" style="width: 80rpx;height: 76rpx;"></image>
<view>数据统计</view>
<image src="../../static/index/order_4.png" style="width: 50rpx;height: 58rpx;"></image>
<view class="tongji-text">数据统计</view>
</view>
<view class="text-center" @click="goNav('/my/commission/index')">
<image src="../../static/images/index/order3.png" style="width: 48rpx;height: 77rpx;"></image>
<view>分成明细</view>
<image src="../../static/index/order_3.png" style="width: 55rpx;height: 61rpx;"></image>
<view class="tongji-text">分成明细</view>
</view>
<view class="text-center" @click="goNav('/my/fund/index')">
<image src="../../static/images/index/order4.png" style="width: 56rpx;height: 78rpx; "></image>
<view>资金明细</view>
<image src="../../static/index/order_2.png" style="width: 60rpx;height: 60rpx; "></image>
<view class="tongji-text">资金明细</view>
</view>
<view class="text-center" @click="goNavs('/pages/index/jinji')">
<image src="../../static/images/index/order5.png" style="width: 76rpx;height: 78rpx;"></image>
<view>紧急报警</view>
<image src="../../static/index/order_1.png" style="width: 69rpx;height: 64rpx;"></image>
<view class="tongji-text">紧急报警</view>
</view>
</view>
<!-- <view class="flex justify-between margin-top" style="border: 1rpx solid #cccccc;background-color: #e1f5ea; border-radius: 20rpx;">
@ -415,7 +415,7 @@
</view>
<view class="bgwhite radius margin-top-sm padding-bottom-sm"
:style="{ backgroundColor: item.status == 2 ? '#f6fcfa' : '', border: item.status == 2 ? '2px solid rgb(207, 237, 225)' : '' }"
v-for="(item, index) in goods" :key='index' @click="goNav('/my/order/pay?ordersId=' + item.ordersId)">
v-for="(item, index) in goods" :key='index' @click="goNav('/my/order/revenueDetails?ordersId=' + item.ordersId)">
<view class="flex justify-between padding-sm">
<view class="text-green">预约时间{{ item.serveTime }}</view>
<view class="text-green" v-if="item.status == 1">待付款...</view>
@ -500,6 +500,11 @@ export default {
},
data() {
return {
jiazhongIimg:[
{url:'../../static/index/order_8.png',id:0},
{url:'../../static/index/order_7.png',id:1},
{url:'../../static/index/order_6.png',id:3}
],
Guanggao: '',
ssDW: false,
stateName: '休息中',
@ -570,21 +575,21 @@ export default {
currentGrade: null, //App
lineProgressData: 0,
homePageCountNum: [{
id: 0,
id: 1,
title: "当期订单",
icon: "../../static/images/index/dd01.png",
color: "#2FB57A",
num: 0,
},
{
id: 1,
id: 2,
title: "当期加钟率",
icon: "../../static/images/index/dd02.png",
color: "#333333",
num: 0,
},
{
id: 2,
id: 3,
title: "当期充值率",
icon: "../../static/images/index/dd03.png",
color: "#ff6c25",
@ -603,6 +608,9 @@ export default {
pageSize: null,
showViewHelp: false,
showMaterialPackageListStatus: false,
shouyiMoeny:'',
homePageCountNumTwo:'',
homePageCountNumOme:''
}
},
onShareAppMessage(res) { //
@ -627,7 +635,8 @@ export default {
onLoad(e) {
//App
this.getHomeListData();
this.userId = uni.getStorageSync('userId')
this.userId = uni.getStorageSync('userId');
console.log("ueser========",this.userId)
//
if (e.invitation) {
this.$queue.setData('inviterCode', e.invitation);
@ -699,10 +708,12 @@ export default {
this.XCXIsSelect = this.$queue.getData("XCXIsSelect");
}
});
this.userId = uni.getStorageSync('userId')
// this.userId = uni.getStorageSync('userId')
this.userId = this.$queue.getData("userId")
this.isCashDeposit = uni.getStorageSync('isCashDeposit')
if (this.userId) {
console.log(this.userId, "dwdwadwdawd");
console.log(this.userId, "dwdwadwdawd============>");
this.isLogin = true
this.getJinRiOrder();
this.getUserInfo()
@ -728,6 +739,7 @@ export default {
}, 10000)
}
} else {
console.log(this.userId,"false============>");
this.isLogin = false
this.userName = ''
this.browse = 0
@ -773,6 +785,16 @@ export default {
}
},
methods: {
level(){//
uni.navigateTo({
url:'/pages/index/technicianLevel'
})
},
dangqian(){//
uni.navigateTo({
url:'/pages/index/currentIncome'
})
},
showMoreMaterialPackageList() {
this.showMaterialPackageListStatus = true;
},
@ -796,6 +818,22 @@ export default {
console.log(index);
if (index) this.showIconPopup = true;
},
getJqqd(id) {
if(id!='1'){
this.$queue.setData("homePageCountNumOne",[this.homePageCountNumOne,this.homePageCountNumTwo])
uni.navigateTo({
url:'/pages/index/addClock?type='+id
})
}else{
uni.navigateTo({
url:'/pages/index/currentIncome?type='+id+'&shouyiMoeny='+this.shouyiMoeny
})
}
// this.$queue.showToast('')
// //
// if (id !== undefined) this.activeTab = id;
},
//App
getHomeListData() {
let artificerId = uni.getStorageSync("artificerId");
@ -803,11 +841,18 @@ export default {
this.$Request.getXZX("/app/artificer/integral/home/?artificerId=" + artificerId,).then((res) => {
if (res && res.data) {
console.log(res, "dwdw00of");
this.shouyiMoeny=res?.data?.currentMonthsIncome
this.homePageCountNum[0].num = res?.data?.currentPeriodOrdersSum;
let formathomePageCountNum = (res?.data?.currentPeriodAddBellsSum * 1) * 100;
this.homePageCountNum[1].num = Math.floor(formathomePageCountNum) + "%";
this.homePageCountNumOne=this.homePageCountNum[1].num;
let currentPeriodRechargeSum = ((res?.data?.currentPeriodRechargeSum * 1) * 100);
this.homePageCountNum[2].num = Math.floor(currentPeriodRechargeSum) + "%";
this.homePageCountNumTwo=this.homePageCountNum[2].num;
this.currentWholeIncome = Math.floor(res?.data?.currentPerformance);
this.currentRealIncome = res?.data?.earnings;
this.currentIntegral = res?.data?.integral;
@ -847,11 +892,7 @@ export default {
url: ""
})
},
getJqqd(id) {
// this.$queue.showToast('')
// //
// if (id !== undefined) this.activeTab = id;
},
getNewOrder() {
let data = {
page: 1,
@ -1403,7 +1444,44 @@ export default {
}
</script>
<style lang="scss">
<style lang="scss" scoped>
.tongji-text{
margin-top: 5px;
font-weight: bold;
font-size: 24rpx;
color: #3A414B;
}
.wuliao:last-child .xianc{
display: none;
}
.shuxian{
width: 2rpx;
height: 50rpx;
background-color: rgba(255, 255, 255, 0.5);
}
.dengji-text{
text-align: center;
font-size: 30rpx;
color: #FFFFFF;
}
.gengxin{
color: #333333;
}
.jishi-index-title{
width: 100%;
text-align: center;
font-weight: bold;
font-size: 33rpx;
color: #FFFFFF;
padding-top: 20px;
}
.jishi-index{
width: 100%;
height: 215px;
background-image: url('../../static/index/technician15.png');
background-repeat: no-repeat;
background-size: 100%;
}
page {
background-color: #ffffff;
}
@ -1435,10 +1513,15 @@ page {
.dengjibox {
position: relative;
width: 100%;
background-image: linear-gradient(to right, #223845, #00a85b);
height: 400rpx;
background: linear-gradient(-90deg, #019C88, #1BB9A5, #029D88);
box-shadow: 0rpx 0rpx 16rpx 0rpx rgba(26,25,26,0.3);
border-radius: 20rpx;
padding: 30rpx;
color: #ffffff;
border-radius: 10px;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.djtit {
@ -1449,7 +1532,7 @@ page {
height: 26px;
line-height: 26px;
text-align: center;
color: #e19722;
color: #FFE257;
font-size: 26rpx;
background-color: #171717;
border-radius: 10px 0 10px 0;
@ -1482,23 +1565,23 @@ page {
}
.csda {
background: url(../../static/images/index/bhgc.png);
height: 202rpx;
border-radius: 30rpx;
background: url(../../static/index/fun_banner2.png);
background-size: cover;
height: 108px;
border-radius: 10px;
padding: 30rpx 14rpx 14rpx 14rpx;
margin-top: 20px;
position: relative;
}
.zbhsga {
background-color: rgba(17, 114, 80, 0.8);
height: 70rpx;
background: #029D88;
border-radius: 20rpx;
color: #ffffff;
width: 100%;
height: 38px;
padding: 0 8rpx;
border-radius: 5px;
margin-top: 16px;
margin-top: 14px;
display: flex;
justify-content: space-around;
align-items: center;
@ -1723,11 +1806,12 @@ uni-switch::before {
}
.importMaterialPackage .importMaterialPackageInnerBox {
font-size: 22rpx;
// font-size: 22rpx;
}
.importMaterialPackage view:last-child {
margin-left: 3px;
// margin-top: 4px;
}
.viewMore {

View File

@ -0,0 +1,173 @@
<template>
<view class="content">
<view class="header"></view>
<table border="0" class="mian-table">
<tr class="mian-table-top">
<td>序号</td>
<td>开始日期</td>
<td>结束日期</td>
<td>金额</td>
<td>操作</td>
</tr>
<tr class="table-list">
<td>01</td>
<td>2024.01.01</td>
<td>2024.01.01</td>
<td>653.40</td>
<td class="mian-foot-btns" @click="detailTd">
详情
</td>
</tr>
</table>
<!-- <view class="mian">
<view class="mian-nav">
<view class="mian-nav-list xuhao">序号</view>
<view class="mian-nav-list riqi">开始日期</view>
<view class="mian-nav-list riqi">结束日期</view>
<view class="mian-nav-list jie">金额</view>
<view class="mian-nav-list caozuo">操作</view>
</view>
<view class="mian-foot">
<view class="mian-foot-view">
<view class="mian-foot-list xuhao">01</view>
<view class="mian-foot-list riqi">2024.01.01</view>
<view class="mian-foot-list riqi">2024.01.01</view>
<view class="mian-foot-list jie">653.40</view>
<view class="mian-foot-btn caozuo">详情</view>
</view>
</view>
</view> -->
</view>
</template>
<script>
export default{
data(){
return{}
},
methods:{
detailTd(){//
uni.navigateTo({
url:'/pages/index/revenueDetails'
})
}
}
}
</script>
<style scoped>
.mian-foot-btns{
font-weight: 400;
font-size: 25rpx;
color: #11957C;
}
td{
text-align: center;
}
.table-list td{
border-bottom: 1px solid #E5E5E5;
}
.table-list{
height: 40px;
}
.mian-table-top{
height: 49rpx;
background: #EFEFEF;
border-radius: 14rpx;
border: 1px solid #EFEFEF;
opacity: 0.62;
}
.mian-table{
width: 95%;
background-color: #fff;
border-radius: 24rpx;
padding: 10px;
border-spacing: inherit;
position: absolute;
top: 0;
margin-top: 30px;
}
.xuhao{
width: 10%;
}
.mian-nav-list{
height: 100%;
text-align: center;
font-weight: 400;
font-size: 26rpx;
color: #333333;
display: flex;
justify-content: center;
align-items: center;
}
.mian-foot-btn{
width: 83rpx;
height: 40rpx;
line-height: 40rpx;
text-align: center;
font-weight: 400;
font-size: 25rpx;
color: #11957C;
border-radius: 14rpx;
border: 1px solid #007B6A;
}
.mian-foot-list{
width: 25%;
height: 100%;
text-align: center;
font-weight: 400;
font-size: 25rpx;
color: #666666;
}
.mian-foot-view{
width: 100%;
border-bottom: 1px solid #E5E5E5;
display: flex;
padding: 10px 0px;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.mian-foot{
width: 100%;
display: flex;
flex-direction: column;
}
.mian-nav{
width: 100%;
height: 49rpx;
background-color: rgba(239, 239, 239, 0.62);
border-radius: 14rpx;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.mian{
width: 95%;
height: 967rpx;
background: #FFFFFF;
border-radius: 24rpx;
overflow-y: scroll;
padding: 10px;
display: flex;
flex-direction: column;
}
.header{
width: 100%;
height: 228rpx;
background: linear-gradient(-36deg, #11957C, #20A98F, #019C88, #029D88);
}
.content{
width: 100%;
height: 100vh;
background-color: #f7f7f7;
display: flex;
flex-direction: column;
align-items: center;
position: relative;
}
</style>

View File

@ -0,0 +1,173 @@
<template>
<view class="content">
<view class="header"></view>
<table border="0" class="mian-table">
<tr class="mian-table-top">
<td>序号</td>
<td>开始日期</td>
<td>结束日期</td>
<td>金额</td>
<td>操作</td>
</tr>
<tr class="table-list">
<td>01</td>
<td>2024.01.01</td>
<td>2024.01.01</td>
<td>653.40</td>
<td class="mian-foot-btns" @click="detailTd">
详情
</td>
</tr>
</table>
<!-- <view class="mian">
<view class="mian-nav">
<view class="mian-nav-list xuhao">序号</view>
<view class="mian-nav-list riqi">开始日期</view>
<view class="mian-nav-list riqi">结束日期</view>
<view class="mian-nav-list jie">金额</view>
<view class="mian-nav-list caozuo">操作</view>
</view>
<view class="mian-foot">
<view class="mian-foot-view">
<view class="mian-foot-list xuhao">01</view>
<view class="mian-foot-list riqi">2024.01.01</view>
<view class="mian-foot-list riqi">2024.01.01</view>
<view class="mian-foot-list jie">653.40</view>
<view class="mian-foot-btn caozuo">详情</view>
</view>
</view>
</view> -->
</view>
</template>
<script>
export default{
data(){
return{}
},
methods:{
detailTd(){//
uni.navigateTo({
url:'/pages/index/revenueDetails'
})
}
}
}
</script>
<style scoped>
.mian-foot-btns{
font-weight: 400;
font-size: 25rpx;
color: #11957C;
}
td{
text-align: center;
}
.table-list td{
border-bottom: 1px solid #E5E5E5;
}
.table-list{
height: 40px;
}
.mian-table-top{
height: 49rpx;
background: #EFEFEF;
border-radius: 14rpx;
border: 1px solid #EFEFEF;
opacity: 0.62;
}
.mian-table{
width: 95%;
background-color: #fff;
border-radius: 24rpx;
padding: 10px;
border-spacing: inherit;
position: absolute;
top: 0;
margin-top: 30px;
}
.xuhao{
width: 10%;
}
.mian-nav-list{
height: 100%;
text-align: center;
font-weight: 400;
font-size: 26rpx;
color: #333333;
display: flex;
justify-content: center;
align-items: center;
}
.mian-foot-btn{
width: 83rpx;
height: 40rpx;
line-height: 40rpx;
text-align: center;
font-weight: 400;
font-size: 25rpx;
color: #11957C;
border-radius: 14rpx;
border: 1px solid #007B6A;
}
.mian-foot-list{
width: 25%;
height: 100%;
text-align: center;
font-weight: 400;
font-size: 25rpx;
color: #666666;
}
.mian-foot-view{
width: 100%;
border-bottom: 1px solid #E5E5E5;
display: flex;
padding: 10px 0px;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.mian-foot{
width: 100%;
display: flex;
flex-direction: column;
}
.mian-nav{
width: 100%;
height: 49rpx;
background-color: rgba(239, 239, 239, 0.62);
border-radius: 14rpx;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.mian{
width: 95%;
height: 967rpx;
background: #FFFFFF;
border-radius: 24rpx;
overflow-y: scroll;
padding: 10px;
display: flex;
flex-direction: column;
}
.header{
width: 100%;
height: 228rpx;
background: linear-gradient(-36deg, #11957C, #20A98F, #019C88, #029D88);
}
.content{
width: 100%;
height: 100vh;
background-color: #f7f7f7;
display: flex;
flex-direction: column;
align-items: center;
position: relative;
}
</style>

View File

@ -0,0 +1,173 @@
<template>
<view class="content">
<view class="header"></view>
<table border="0" class="mian-table">
<tr class="mian-table-top">
<td>序号</td>
<td>开始日期</td>
<td>结束日期</td>
<td>金额</td>
<td>操作</td>
</tr>
<tr class="table-list">
<td>01</td>
<td>2024.01.01</td>
<td>2024.01.01</td>
<td>653.40</td>
<td class="mian-foot-btns" @click="detailTd">
详情
</td>
</tr>
</table>
<!-- <view class="mian">
<view class="mian-nav">
<view class="mian-nav-list xuhao">序号</view>
<view class="mian-nav-list riqi">开始日期</view>
<view class="mian-nav-list riqi">结束日期</view>
<view class="mian-nav-list jie">金额</view>
<view class="mian-nav-list caozuo">操作</view>
</view>
<view class="mian-foot">
<view class="mian-foot-view">
<view class="mian-foot-list xuhao">01</view>
<view class="mian-foot-list riqi">2024.01.01</view>
<view class="mian-foot-list riqi">2024.01.01</view>
<view class="mian-foot-list jie">653.40</view>
<view class="mian-foot-btn caozuo">详情</view>
</view>
</view>
</view> -->
</view>
</template>
<script>
export default{
data(){
return{}
},
methods:{
detailTd(){//
uni.navigateTo({
url:'/pages/index/revenueDetails'
})
}
}
}
</script>
<style scoped>
.mian-foot-btns{
font-weight: 400;
font-size: 25rpx;
color: #11957C;
}
td{
text-align: center;
}
.table-list td{
border-bottom: 1px solid #E5E5E5;
}
.table-list{
height: 40px;
}
.mian-table-top{
height: 49rpx;
background: #EFEFEF;
border-radius: 14rpx;
border: 1px solid #EFEFEF;
opacity: 0.62;
}
.mian-table{
width: 95%;
background-color: #fff;
border-radius: 24rpx;
padding: 10px;
border-spacing: inherit;
position: absolute;
top: 0;
margin-top: 30px;
}
.xuhao{
width: 10%;
}
.mian-nav-list{
height: 100%;
text-align: center;
font-weight: 400;
font-size: 26rpx;
color: #333333;
display: flex;
justify-content: center;
align-items: center;
}
.mian-foot-btn{
width: 83rpx;
height: 40rpx;
line-height: 40rpx;
text-align: center;
font-weight: 400;
font-size: 25rpx;
color: #11957C;
border-radius: 14rpx;
border: 1px solid #007B6A;
}
.mian-foot-list{
width: 25%;
height: 100%;
text-align: center;
font-weight: 400;
font-size: 25rpx;
color: #666666;
}
.mian-foot-view{
width: 100%;
border-bottom: 1px solid #E5E5E5;
display: flex;
padding: 10px 0px;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.mian-foot{
width: 100%;
display: flex;
flex-direction: column;
}
.mian-nav{
width: 100%;
height: 49rpx;
background-color: rgba(239, 239, 239, 0.62);
border-radius: 14rpx;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.mian{
width: 95%;
height: 967rpx;
background: #FFFFFF;
border-radius: 24rpx;
overflow-y: scroll;
padding: 10px;
display: flex;
flex-direction: column;
}
.header{
width: 100%;
height: 228rpx;
background: linear-gradient(-36deg, #11957C, #20A98F, #019C88, #029D88);
}
.content{
width: 100%;
height: 100vh;
background-color: #f7f7f7;
display: flex;
flex-direction: column;
align-items: center;
position: relative;
}
</style>

View File

@ -0,0 +1,381 @@
<template>
<view class="content">
<view class="nav-tab">
<image src="../../static/index/fanhui.png" mode=""></image>
<span class="nav-title">技师等级</span>
<span class="nav-btn"> </span>
</view>
<view class="mian">
<view class="header">
<view class="header-right">
<view class="header-right-top">
<span>当前周期</span>
<span>2024.01.01~2024.01.10</span>
</view>
<view class="header-right-text">
备注: 本期等级是根据根据技师上个同期的业绩最终计算得出
</view>
</view>
<view class="header-right-bottom">
<view class="djimg">A0</view>
<view class="djimg-text">当期等级</view>
</view>
</view>
<view class="mian-view">
<view class="mian-list">
<view class="mian-list-top">
<view class="xinren">新人扶持</view>
<view class="fencheng">
<span>分成比例 </span>
<span>65%</span>
</view>
</view>
<view class="mian-list-bottom">
<view class="mian-list-view">
<span>无需求</span>
<span>最低等级</span>
</view>
<view class="mian-list-view">
<span>50 h</span>
<span>在线时长</span>
</view>
<view class="mian-list-view">
<span>无需求</span>
<span>加钟率</span>
</view>
<view class="mian-list-view">
<span>0</span>
<span>积分</span>
</view>
</view>
</view>
<view class="mian-list">
<view class="mian-list-top">
<view>
<view class="djimg-s">A1</view>
</view>
<view class="fencheng">
<span>分成比例 </span>
<span>65%</span>
</view>
</view>
<view class="mian-list-bottom">
<view class="mian-list-view">
<span>无需求</span>
<span>最低等级</span>
</view>
<view class="mian-list-view">
<span>50 h</span>
<span>在线时长</span>
</view>
<view class="mian-list-view">
<span>无需求</span>
<span>加钟率</span>
</view>
<view class="mian-list-view">
<span>0</span>
<span>积分</span>
</view>
</view>
</view>
<view class="mian-list">
<view class="mian-list-top">
<view>
<view class="djimg-s">A2</view>
</view>
<view class="fencheng">
<span>分成比例 </span>
<span>65%</span>
</view>
</view>
<view class="mian-list-bottom">
<view class="mian-list-view">
<span>无需求</span>
<span>最低等级</span>
</view>
<view class="mian-list-view">
<span>50 h</span>
<span>在线时长</span>
</view>
<view class="mian-list-view">
<span>无需求</span>
<span>加钟率</span>
</view>
<view class="mian-list-view">
<span>0</span>
<span>积分</span>
</view>
</view>
</view>
<view class="mian-list">
<view class="mian-list-top">
<view>
<view class="djimg-s">A3</view>
</view>
<view class="fencheng">
<span>分成比例 </span>
<span>65%</span>
</view>
</view>
<view class="mian-list-bottom">
<view class="mian-list-view">
<span>无需求</span>
<span>最低等级</span>
</view>
<view class="mian-list-view">
<span>50 h</span>
<span>在线时长</span>
</view>
<view class="mian-list-view">
<span>无需求</span>
<span>加钟率</span>
</view>
<view class="mian-list-view">
<span>0</span>
<span>积分</span>
</view>
</view>
</view>
<view class="mian-list">
<view class="mian-list-top">
<view>
<view class="djimg-s">A4</view>
</view>
<view class="fencheng">
<span>分成比例 </span>
<span>65%</span>
</view>
</view>
<view class="mian-list-bottom">
<view class="mian-list-view">
<span>无需求</span>
<span>最低等级</span>
</view>
<view class="mian-list-view">
<span>50 h</span>
<span>在线时长</span>
</view>
<view class="mian-list-view">
<span>无需求</span>
<span>加钟率</span>
</view>
<view class="mian-list-view">
<span>0</span>
<span>积分</span>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
</script>
<style scoped>
.djimg-s{
position: absolute;
top: 0;
background: url(../../static/images/index/vip.png) no-repeat center;
background-size: cover;
width: 76.39rpx;
height:54rpx;
text-align: center;
line-height: 30px;
font-weight: bold;
font-size: 17rpx;
color: #FFFFFF;
}
.mian-list-view span:nth-child(1){
font-size: 23rpx;
color: #019D88;
}
.mian-list-view span:nth-child(2){
font-size: 18rpx;
color: #666666;
margin-top: 5px;
}
.mian-list-view{
width: 25%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.mian-list-bottom{
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.fencheng span{
font-size: 23rpx;
}
.fencheng span:nth-child(1){
color: #333333;
}
.fencheng span:nth-child(2){
color: #FE912A;
margin-top: 2px;
margin-left: 5px;
}
.fencheng{
display: flex;
flex-direction: row;
align-items: center;
}
.xinren{
font-weight: bold;
font-size: 23rpx;
color: #333333;
}
.mian-list-top{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
margin-bottom: 10px;
}
.mian-list{
width: 100%;
background: #F7F7F7;
border-radius: 14rpx;
display: flex;
flex-direction: column;
padding: 10px;
margin-bottom: 10px;
position: relative;
}
.mian-view{
width: 90%;
display: flex;
flex-direction: column;
position: absolute;
top: 0;
margin-top: 100px;
}
.djimg-text{
font-size: 23rpx;
color: #FFFFFF;
}
.djimg {
position: absolute;
right: 20px;
top: 0;
background: url(../../static/images/index/vip.png) no-repeat center;
background-size: cover;
width: 198rpx;
height: 70px;
text-align: center;
line-height: 84px;
font-weight: normal;
font-size: 30rpx;
color: #FEFEFE;
font-style: italic;
}
.header-right-bottom{
width: 30%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-evenly;
margin-top: 42px;
margin-right: 8px;
}
.header-right-text{
margin-top: 10px;
font-size: 18rpx;
color: #FFFFFF;
}
.header-right-top span:nth-child(1){
width: 117rpx;
height: 34rpx;
text-align: center;
line-height: 34rpx;
font-size: 22rpx;
color: #843200;
background: linear-gradient(-36deg, #FFE45A, #FFBB46);
border-radius: 15rpx 0rpx 15rpx 0rpx;
}
.header-right-top span:nth-child(2){
font-size: 22rpx;
color: #FFF5BC;
margin-left: 5px;
}
.header-right-top{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
margin-top: 15px;
}
.header-right{
width: 65%;
display: flex;
flex-direction: column;
align-items: center;
}
.header{
width: 100%;
padding: 10px;
height: 263rpx;
display: flex;
flex-direction: row;
justify-content: space-between;
background: linear-gradient(-90deg, #019C88, #1BB9A5, #029D88);
border-top-left-radius: 56rpx;
border-top-right-radius: 56rpx;
position: relative;
}
.mian{
width: 95%;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
background-color: #fff;
border-radius: 56rpx;
position: relative;
}
.nav-btn{
display: inline-block;
width: 49rpx;
height: 24rpx;
}
.nav-title{
font-weight: bold;
font-size: 38rpx;
color: #17181C;
}
.nav-tab image{
width: 15.42rpx;
height: 27.64rpx;
}
.nav-tab{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
padding:10px;
}
.content{
width: 100%;
height: 100vh;
background-image: url('../../static/index/swim.jpg');
background-repeat: no-repeat;
background-size: 100%;
display: flex;
flex-direction: column;
align-items: center;
padding-bottom: 30px;
}
</style>

View File

@ -2,15 +2,15 @@
<view class="" style="padding-bottom: 30px;">
<view class="headtop">
<view class="headbox">
<view class="u-flex text-white" style="padding-top: 30rpx;">
<view class="u-flex text-white" style="padding-top: 30px;">
<view class="u-m-r-10">
<image :src="avatar" style="width: 100rpx;height: 100rpx;border-radius: 100rpx;"
<image :src="avatar" style="width: 70px;height: 70px;border-radius: 100rpx;"
@click="goNav('/pages/my/userinfo')"></image>
</view>
<view class="u-flex-1 u-m-l-10 " v-if="isLogin && userName">
<view class="u-font-18 text-bold">
<view class="flex align-center">
<view class="margin-left-sm margin-top-xs">{{ userName }}</view>
<view class="flex align-center" style="margin-bottom: 5px;">
<view class="margin-left-sm">{{ userName }}</view>
<view class="flex align-center" style="font-size: 14px;">
<image src="../../static/images/my/start.png"
style="width: 13px;height: 12px;margin: 0 6rpx 0 20rpx;"></image>
@ -70,36 +70,32 @@
</view>
<view class="btnyt" @click="goQian()">立即提现</view>
</view>
<view class="flex align-center justify-between" style="width: 100%;margin-top: 20px;">
<view class="flex align-center justify-between" style="width: 100%;">
<view class="" style="text-align: center;width: 23%;"
@click="goNav('/my/wallet/mymoneydetail')">
<view class="margin-top-xs"
style="color: #fff;background-color: #118052;padding: 10px 0;border-radius: 10px;">
<view class="margin-top-xs wode-view">
<text class="money_text1">{{ dailyEarnings ? dailyEarnings : '0' }}</text>
</view>
<view style="color: #fff;font-size: 26rpx;margin-top: 8px;">当日收益</view>
</view>
<view class="" style="text-align: center;width: 23%;">
<view class="margin-top-xs"
style="color: #fff;background-color: #118052;padding: 10px 10px;border-radius: 10px;">
<view class="margin-top-xs wode-view">
<text class="money_text1">{{ earnings ? earnings : '0' }}</text>
</view>
<view style="color: #fff;font-size: 26rpx;margin-top: 8px;">当期收益</view>
</view>
<view class="" style="text-align: center;width: 23%;"
@click="goNav('/my/wallet/mymoneydetail')">
<view class="margin-top-xs"
style="color: #fff;background-color: #118052;padding: 10px 0;border-radius: 10px;">
<view class="margin-top-xs wode-view">
<text
class="money_text1">{{ currentMonthsIncome ? currentMonthsIncome : '0' }}</text>
</view>
<view style="color: #fff;font-size: 26rpx;margin-top: 8px;">当月收益</view>
</view>
<view class="" style="text-align: center;width: 23%;">
<view class="margin-top-xs"
style="color: #fff;background-color: #118052;padding: 10px 0;border-radius: 10px;">
<text class="money_text1" style="font-size: 24rpx;">{{ currentEndDate ?
currentEndDate : "暂无数据" }}</text>
<view class="margin-top-xs wode-view">
<text class="money_text1" style="font-size: 24rpx;">
{{ currentEndDate ?currentEndDate : "暂无数据" }}</text>
</view>
<view style="color: #fff;font-size: 26rpx;margin-top: 8px;">当期结束日</view>
</view>
@ -118,21 +114,13 @@
</view>
<view class="margin-top"
style="width: 100%;margin-top: -70px;padding: 30rpx;border-radius: 20px;background-color: #ffffff;">
<!-- <view class="" style="font-size: 32rpx;font-weight: bold;color: #333333;margin-bottom: 26rpx;">
<view class="wode-title">
关于我
</view> -->
</view>
<view class="flex justify-between" style="flex-wrap: wrap;">
<view class="sdza" @click="getJqqd()"
style="background: url(../../static/images/my/ltxbg.png);background-size: cover;">
<image src="../../static/images/my/ltx.png"
style="width: 30px;height: 30px;margin-bottom: 4px;margin-top: 15px;"></image>
<view class="">
聊天室
</view>
</view>
<view class="sdza" @click="goNavLifephotos()"
<view class="sdza" @click="goNavLifephotos()"
style="background: url(../../static/images/my/gyw01.png);background-size: cover;">
<image src="../../static/images/my/gyw07.png"
<image src="../../static/images/my/shenghuo.png"
style="width: 30px;height: 30px;margin-bottom: 4px;margin-top: 15px;"></image>
<view class="">
生活照
@ -140,50 +128,68 @@
</view>
<view class="sdza" @click="goNav('/my/publish/index')"
style="background: url(../../static/images/my/gyw02.png);background-size: cover;">
<image src="../../static/images/my/gyw08.png"
style="width: 28px;height: 30px;margin-bottom: 4px;margin-top: 15px;"></image>
<image src="../../static/images/my/xaingmu.png"
style="width: 56rpx;height: 60rpx;margin-bottom: 4px;margin-top: 15px;"></image>
<view class="">
我的项目
</view>
</view>
<view class="sdza" @click="goNavmyEvaluation()"
style="background: url(../../static/images/my/gyw03.png);background-size: cover;">
<image src="../../static/images/my/gyw09.png"
style="width: 30px;height: 30px;margin-bottom: 4px;margin-top: 15px;"></image>
<image src="../../static/images/my/pingjia.png"
style="width: 60rpx;height: 58rpx;margin-bottom: 4px;margin-top: 15px;"></image>
<view class="">
我的评价
</view>
</view>
<!-- <view class="sdza" @click="goNavcertifiCate()"
<!-- <view class="sdza" @click="getJqqd()"
style="background: url(../../static/images/my/ltxbg.png);background-size: cover;">
<image src="../../static/images/my/ltx.png"
style="width: 30px;height: 30px;margin-bottom: 4px;margin-top: 15px;"></image>
<view class="">
聊天室
</view>
</view> -->
<view class="sdza" @click="goNavcertifiCate()"
style="background: url(../../static/images/my/gyw04.png);background-size: cover;">
<image src="../../static/images/my/gyw10.png"
style="width: 32px;height: 30px;margin-bottom: 4px;margin-top: 15px;"></image>
<image src="../../static/images/my/zhengjian.png"
style="width: 64rpx;height: 50rpx;margin-bottom: 4px;margin-top: 15px;"></image>
<view class="">
证件
</view>
</view> -->
</view>
<view class="sdza" @click="goNavcertifiCate()"
style="background: url(../../static/images/my/gyw05.png);background-size: cover;">
<image src="../../static/images/my/gyw11.png"
style="width: 24px;height: 30px;margin-bottom: 4px;margin-top: 15px;"></image>
<image src="../../static/images/my/ziyuan.png"
style="width: 48rpx;height: 64rpx;margin-bottom: 4px;margin-top: 15px;"></image>
<view class="">
证件资质
</view>
</view>
<view class="sdza" @click="goNfeedback()"
style="background: url(../../static/images/my/gyw06.png);background-size: cover;">
<image src="../../static/images/my/hetong.png"
style="width: 54rpx;height: 60rpx;margin-bottom: 4px;margin-top: 15px;"></image>
<view class="">
合同
</view>
</view>
<!-- <view class="sdza" @click="goNfeedback()"
style="background: url(../../static/images/my/gyw06.png);background-size: cover;">
<image src="../../static/images/my/gyw12.png"
style="width: 27px;height: 30px;margin-bottom: 4px;margin-top: 15px;"></image>
<view class="">
意见反馈
</view>
</view>
</view> -->
</view>
<view style="width: 100%;margin: 10px 0;" @click="goNav('/package/pages/zysc/index/index')"
v-if="shopSel != '否'">
<image src="../../static/images/my/shangc.png" style="width: 100%;height: 80px;"></image>
<image src="../../static/index/fun_banner.png" style="width: 100%;height: 80px;"></image>
</view>
<view class="" style="font-size: 32rpx;font-weight: bold;color: #333333;margin-bottom: 26rpx;">
<view class="wode-title" style="margin-bottom: 26rpx;">
常用功能
</view>
<view class="flex justify-between margin-top" style="width: 100%;flex-wrap: wrap;">
@ -196,22 +202,28 @@
<view class="box_text">我的钱包</view>
</view> -->
<view class="box" @click="goChat()">
<image src="../../static/images/my/kefu.png"></image>
<image src="../../static/index/function1.png"></image>
<view class="box_text">联系客服</view>
</view>
<view class="box" @click="goNav('/my/help/feedbackIndex')">
<image src="../../static/images/my/help.png"></image>
<image src="../../static/index/function2.png"></image>
<view class="box_text">帮助中心</view>
</view>
<view class="box" @click="goNav('/pages/poster/index')">
<!-- v-if="renzheng > 0 && XCXIsSelect != '否'" -->
<image src="../../static/index/function3.png"></image>
<view class="box_text">邀请理疗师</view>
</view>
<view class="box" @click="goNav('/my/setting/index')">
<image src="../../static/index/function4.png"></image>
<view class="box_text">设置中心</view>
</view>
<!-- <view class="box" v-if="renzheng == 0 && XCXIsSelect != '否'" @click="goNav('/my/renzheng/rzType')">
<image src="../../static/images/my/renzheng.png"></image>
<view class="box_text">实名认证</view>
</view> -->
<view class="box" @click="goNav('/pages/poster/index')" v-if="renzheng > 0 && XCXIsSelect != '否'">
<image src="../../static/images/my/shops.png"></image>
<view class="box_text">邀请理疗师</view>
</view>
<!-- <view class="box" @click="goNav('/my/publish/money')" v-if="bzjCheck != '否' && XCXIsSelect != '否'">
<image src="../../static/images/my/baozhengjin.png"></image>
<view class="box_text">保证金</view>
@ -222,10 +234,7 @@
<view class="box_text">我的团队</view>
</view> -->
<view class="box" @click="goNav('/my/setting/index')">
<image src="../../static/images/my/me.png"></image>
<view class="box_text">设置中心</view>
</view>
<!-- <view class="box" @click="uploadAudioStart()">
<image src="../../static/images/my/shop.png"></image>
<view class="box_text">报警开始</view>
@ -751,7 +760,29 @@
}
</script>
<style lang="scss">
<style lang="scss" scoped>
.wode-title{
font-size: 36rpx;
font-weight: bold;
color: #333333;
margin-bottom: 26rpx;
}
.wode-view{
width: 150rpx;
height: 96rpx;
background: #007B6A;
border-radius: 20rpx;
color: #fff;
line-height: 96rpx;
}
.jishi-index-title{
width: 100%;
text-align: center;
font-weight: bold;
font-size: 33rpx;
color: #FFFFFF;
padding-top: 20px;
}
page {
background-color: #f7f7f7;
}
@ -761,10 +792,11 @@
}
.headbox {
background-image: url(../../static/images/my/bgbo.png);
background-size: cover;
height: 350px;
width: 100%;
padding: 0 30rpx;
height: 315px;
background-image: url('../../static/index/technician15.png');
background-size: cover;
}
.xyf {
@ -796,14 +828,14 @@
}
.money_text1 {
font-size: 17px;
font-weight: bold;
font-size: 46rpx;
color: #fff;
}
.moneybox {
width: 100%;
margin-top: 36px;
margin-top: 20px;
}
.btnyt {
@ -815,6 +847,7 @@
color: #333333;
font-size: 30rpx;
border-radius: 40rpx;
color: #333333;
}
.xflist {
@ -839,10 +872,10 @@
margin-bottom: 20rpx;
.box_text {
font-size: 24rpx;
font-size: 26rpx;
color: #333333;
font-family: PingFang SC;
font-weight: 500;
color: #090909;
font-weight: bold;
}
image {

View File

@ -36,8 +36,8 @@
<view style="font-weight: 500;color: #999999;font-size: 28rpx;margin-right: 20rpx;" v-if="tripWay != 0">
<!-- {{tripWay == 1 ? '公交' ? tripWay == 2 : '出租'}} -->
<text v-if="tripWay == 1">公交</text>
<text v-if="tripWay == 2">出租</text>
<text v-if="tripWay == 3">免费</text>
<text v-if="tripWay == 2">出租 (免费出行{{tripWayNum}}公里)</text>
</view>
<image src="../../static/images/my/right.png" style="width: 12rpx;height: 21rpx;"></image>
</view>
@ -50,6 +50,7 @@
export default {
data() {
return {
tripWayNum:'',
tripWay: 0,
show: false,
renzheng: 0,
@ -82,12 +83,17 @@
});
},
cxCallback(index) {
console.log(index)
this.setChuXing(index + 1)
if(index=='0'||index=='1'){
this.setChuXing(index + 1)
}else{
var that=this;
that.tripWayNum = uni.getStorageSync('tripWayNum');
that.setChuXing(index+1,that.tripWayNum)
}
},
setChuXing(tripWay) {
setChuXing(tripWay,tripWayNum) {
this.$queue.showLoading('设置中...')
this.$Request.postT("/app/artificer/updateArtificerTripWay?tripWay=" + tripWay).then(res => {
this.$Request.postT("/app/artificer/updateArtificerTripWay?tripWay=" + tripWay+'&tripWayNum='+tripWayNum).then(res => {
uni.hideLoading();
if (res.code == 0) {
this.$queue.showToast('设置成功!');

View File

@ -0,0 +1,737 @@
<!-- 菜单悬浮的原理: 通过给菜单添加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="sticky-tabs">
<view class=" u-flex padding ding-view">
<view class="u-m-r-10">
<image :src="avatar" style="width: 100rpx;height: 100rpx;border-radius: 100rpx;"
@click="goNav('/pages/my/userinfo')"></image>
</view>
<view class="u-flex-1 u-m-l-10 " v-if="isLogin && userName">
<view class="u-font-18 text-bold">
<view class="flex align-center" style="justify-content: space-between;">
<view class="margin-left-sm " style="color: #ffffff;">{{ 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"
style="font-size: 22rpx;font-weight: 500;color: #ffffff;">
<view v-if="renzheng == 0" @click.stop="goNav('/my/renzheng/index?classify=' + 1)">
暂未实名认证
</view>
<view v-if="renzheng == 1" @click.stop="goNav('/my/renzheng/index?classify=' + 1)">
实名审核中
</view>
<view v-if="renzheng == 2">
已实名认证
</view>
<view v-if="renzheng == 3" @click.stop="goNav('/my/renzheng/index?classify=' + 1)">
实名已拒绝
</view>
</view>
</view>
</view>
<view v-else class="text-xl u-p-l-20 text-bold" @click="goLogin('/pages/public/login')"
style="color: #ffffff;">
登录
</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> -->
<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>
</view>
<mescroll-body :sticky="true" ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback"
style="padding: 0 16px;width: 100%;min-height: 100vh;">
<!-- 数据列表 -->
<!-- <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-bottom-sm " v-for="(item, index) in goods" :key='index'
@click="goNav('/my/order/pay?ordersId=' + item.ordersId)">
<view class="flex justify-between padding-sm">
<view class="text-green" v-if="item.status == 1">待付款...</view>
<view class="text-green" v-if="item.status == 2">待服务</view>
<view class="text-green" v-if="item.status == 5">已完成</view>
<view class="text-green" v-if="item.status == 6">服务中</view>
<view class="text-green" v-if="item.status == 7">已出发</view>
<view class="text-green" v-if="item.status == 8">已到达</view>
<view class="text-green" v-if="item.status == 3">待评价</view>
<view class="text-green" v-if="item.status == 4" style="color: #999999;">已取消</view>
<view v-if="item.overTimeOrders == 1" style="color: red;font-size: 26rpx">(订单已超时)</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 class="text-green">预约时间{{ item.serveTime }}</view>
</view>
<view class="xian"></view>
<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="100">
</u-avatar>
</view>
<view class="u-flex-1 margin-left-xs">
<view class="u-font-18 text-bold u-line-1" style="width: 560rpx;">
<view class="margin-right-xs text-df margin-left-xs"
style="margin-top: 0rpx;display: inline-block;width: 400rpx; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">
{{ item.title }}
</view>
</view>
<view class="margin-left-xs text-cut" style="width:550upx">{{ item.address }}</view>
</view>
</view>
<view class="flex u-p-t-20 justify-between align-center padding-sm">
<view class=" flex-sub ">
实收<text class="text-df"></text><text class="text-xl text-bold">{{ item.sumArtificerMoney
}}</text>
</view>
<view class="flex text-right">
<!-- <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="bindphone(item.phone)">联系TA</u-button> -->
<u-button v-if="item.state == 1" :custom-style="customStyle1" shape="circle" :plain="true"
@click="goNav('/my/order/pay?id=' + item.ordersId + '&isTrue=1')">查看详情</u-button>
<u-button v-if="item.status == 6" :custom-style="customStyle" shape="circle" :plain="true"
@click="cancel(item)">服务完成</u-button>
</view>
</view>
<view class="xian" v-if="item.status == 6"></view>
<view class="pintuan_syrs flex justify-between" v-if="item.status == 6">
<view style="font-size: 28rpx;font-family: PingFang SC;font-weight: bold;color: #096f4b;">服务倒计时
</view>
<u-count-down :timestamp="endOfServiceTimer" separator-color="#20C675" color="#20C675"
font-size="30" separator-size="30"></u-count-down>
<!-- <uni-countdown ref="countDownEl" :title="'剩余'" :showDay="false" :fontSize="'14'"
:hour="item.endTime.hour" :minute="item.endTime.minute" :second="item.endTime.second"
color="#20C675" /> -->
<!-- <uni-countdown :day="item.endTime.day" :hour="item.endTime.hour" :minute="item.endTime.minute"
:second="item.endTime.second">
</uni-countdown> -->
</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>
</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 {
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: 26px;height: 26px;',
},
noactivityImageProps: {
src: '../../static/images/order_022.png',
style: 'width: 26px;height: 26px;',
},
activityTitleTextProps: {
class: 'activityTitleTextProps',
},
noactivityTitleTextProps: {
class: 'noactivityTitleTextProps',
},
name: '待服务',
status: '2'
}, {
activityImageProps: {
src: '../../static/images/order_03.png',
style: 'width: 26px;height: 26px;',
},
noactivityImageProps: {
src: '../../static/images/order_033.png',
style: 'width: 26px;height: 26px;',
},
activityTitleTextProps: {
class: 'activityTitleTextProps',
},
noactivityTitleTextProps: {
class: 'noactivityTitleTextProps',
},
name: '已完成',
status: '3'
}, {
activityImageProps: {
src: '../../static/images/order_04.png',
style: 'width: 26px;height: 26px;',
},
noactivityImageProps: {
src: '../../static/images/order_044.png',
style: 'width: 26px;height: 26px;',
},
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 0 0 20rpx"
},
customStyle1: {
color: '#096f4b',
border: '2rpx solid #096f4b',
border: "8rpx",
width: '180rpx',
height: '54rpx',
margin: "0 0 0 20rpx"
},
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: '',
}
},
onLoad() {
this.$queue.showLoading("加载中...");
this.userId = uni.getStorageSync('userId')
this.nickName = uni.getStorageSync('nickName')
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: {
//
getArtificer() {
this.$Request.getT("/app/artificer/selectArtificer").then(res => {
if (res.code == 0) {
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) {
// 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);
this.endOfServiceTimer = formatTimeStamp;
}
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) {
let that = this
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) {
console.log(e)
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">
/*
sticky生效条件
1父元素不能overflow:hidden或者overflow:auto属性(mescroll-body设置:sticky="true"即可, mescroll-uni本身没有设置overflow)
2必须指定topbottomleftright4个值之一否则只会处于相对定位
3父元素的高度不能低于sticky元素的高度
4sticky元素仅在其父元素内生效,所以父元素必须是 mescroll
*/
.ding-view{
width: 95%;
height: 290rpx;
background: linear-gradient(-90deg, #019C88, #1BB9A5, #029D88);
border-radius: 24rpx;
margin: 10px auto 0px auto;
align-items: end;
}
.content{
width: 100%;
height: 100vh;
background-image: url('../../static/index/swim.jpg');
background-repeat: no-repeat;
background-size: 100%;
display: flex;
flex-direction: column;
align-items: center;
padding-bottom: 30px;
}
.u-tabs {
padding: 16px;
width: 90%;
height: 199rpx;
background: #F7F7F7 !important;
border-radius: 21rpx;
margin: -70px auto 0px auto;
}
/deep/.u-scroll-view {
padding: 10px 16px !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: fixed;
top: 0px;
// background-color: #fff;
}
/deep/.activityTitleTextProps {
color: #096f4b;
font-size: 14px;
}
/deep/.noactivityTitleTextProps {
color: #666666;
font-size: 14px;
}
// 使mescroll-uni,top0
.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, #223845, #00a85b);
padding: 16px 16px 36px 16px;
}
.bgwhite {
background-color: #FFFFFF;
}
.xian {
width: 100%;
height: 1rpx;
border: 1rpx solid #f8f8f8;
margin-top: 20rpx;
}
.pintuan_syrs {
color: #999999;
font-size: 20upx;
margin: 20rpx 20rpx 0rpx;
display: flex;
padding-right: 18upx;
}
.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;
}
}
</style>

View File

@ -1,22 +1,21 @@
<!-- 菜单悬浮的原理: 通过给菜单添加position:sticky实现, 用法超简单, 仅APP端的低端机不兼容 https://caniuse.com/#feat=css-sticky -->
<template>
<view>
<view class="content">
<!-- 对于mescroll-body: 需设置:sticky="true", 此应避免在mescroll-body标签前面加其他非定位的元素, 否则下拉区域会被挤出, 无法会隐藏.-->
<!-- 对于mescroll-uni: 则无需设置:sticky="true", 无其他限制和要求 -->
<!-- sticky吸顶悬浮的菜单, 父元素必须是 mescroll -->
<view class="sticky-tabs">
<view class=" u-flex padding bg">
<view class=" u-flex padding ding-view">
<view class="u-m-r-10">
<image :src="avatar" style="width: 100rpx;height: 100rpx;border-radius: 100rpx;"
@click="goNav('/pages/my/userinfo')"></image>
</view>
<view class="u-flex-1 u-m-l-10 " v-if="isLogin && userName">
<view class="u-font-18 text-bold">
<view class="flex align-center">
<view class="flex align-center" style="justify-content: space-between;">
<view class="margin-left-sm " style="color: #ffffff;">{{ userName }}</view>
<view class="labe" @tap="stateSave">
<text :style="{ background: !isTrue ? '#FF0000' : '#20C675' }"></text>
<view class="labe zhuangtai" @tap="stateSave">
<view v-if="isTrue">已上线</view>
<view v-if="!isTrue">已离线</view>
</view>
@ -59,21 +58,21 @@
</view>
<mescroll-body :sticky="true" ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback"
style="padding: 0 16px;background-color: #f7f7f7;">
style="padding: 0 16px;width: 100%;min-height: 100vh;">
<!-- 数据列表 -->
<!-- <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-bottom-sm " v-for="(item, index) in goods" :key='index'
@click="goNav('/my/order/pay?ordersId=' + item.ordersId)">
<view class="bgwhite radius margin-bottom-sm padding-bottom-sm" v-for="(item, index) in goods" :key='index'
@click="goNav('/my/order/revenueDetails?ordersId=' + item.ordersId)">
<view class="flex justify-between padding-sm">
<view class="text-green" v-if="item.status == 1">待付款...</view>
<view class="text-green" v-if="item.status == 2">待服务</view>
<view class="text-green" v-if="item.status == 5">已完成</view>
<view class="text-green" v-if="item.status == 3">已完成</view>
<view class="text-green" v-if="item.status == 6">服务中</view>
<view class="text-green" v-if="item.status == 7">已出发</view>
<view class="text-green" v-if="item.status == 8">已到达</view>
<view class="text-green" v-if="item.status == 3">待评价</view>
<view class="text-green" v-if="item.status == 5">待评价</view>
<view class="text-green" v-if="item.status == 4" style="color: #999999;">已取消</view>
<view v-if="item.overTimeOrders == 1" style="color: red;font-size: 26rpx">(订单已超时)</view>
<!-- <view class="text-green" v-if="item.state ==1 ||item.state ==2">待完成</view>
@ -81,6 +80,9 @@
<view class="text-green" v-if="item.state ==3||item.state ==4">已完成</view> -->
<view class="text-green">预约时间{{ item.serveTime }}</view>
<view v-if="item.status == 9&&item.refusalContent!=''" class="judan">
拒单审核中...
</view>
</view>
<view class="xian"></view>
<view class=" u-flex u-p-t-30 padding-sm">
@ -90,31 +92,54 @@
</u-avatar>
</view>
<view class="u-flex-1 margin-left-xs">
<view class="u-font-18 text-bold u-line-1" style="width: 560rpx;">
<view class="margin-right-xs text-df margin-left-xs"
style="margin-top: 0rpx;display: inline-block;width: 400rpx; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">
<view class="u-font-18 text-bold u-line-1 top-title">
<view class="margin-right-xs text-df margin-left-xs" style="margin-top: 0rpx;display: inline-block;width: 105px; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">
{{ item.title }}
</view>
<view class="flex-sub ">
实收<text class="text-df"></text><text class="text-xl text-bold">{{ item.sumArtificerMoney
}}</text>
</view>
</view>
<view class="margin-left-xs text-cut" style="width:550upx">{{ item.address }}</view>
</view>
</view>
<view class="flex u-p-t-20 justify-between align-center padding-sm">
<view class=" flex-sub ">
实收<text class="text-df"></text><text class="text-xl text-bold">{{ item.sumArtificerMoney
}}</text>
</view>
<view class="flex text-right">
<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="bindphone(item.phone)">联系TA</u-button> -->
<u-button v-if="item.state == 1" :custom-style="customStyle1" shape="circle" :plain="true"
@click="goNav('/my/order/pay?id=' + item.ordersId + '&isTrue=1')">查看详情</u-button>
<u-button v-if="item.status == 6" :custom-style="customStyle" shape="circle" :plain="true"
@click="cancel(item)">服务完成</u-button>
@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="showBtn-view">
<u-button :custom-style="customStyle" shape="circle" :plain="true"
@click="goChat">联系客服</u-button>
<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>
</view>
</view>
<view class="hideBtn" v-show="btnShow==index" style="justify-content: end;">
<u-button :custom-style="customStyle1" shape="circle" :plain="true"
@click="cxOrder(item)" v-show="item.status == 2">现在出发</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="goChat">转待补单</u-button>
<u-button v-if="item.status == 6" :custom-style="customStyle1" shape="circle" :plain="true"
@click="cancel(item)">服务完成</u-button>
<u-button v-if="item.status == 9&&item.refusalContent==''||item.refusalContent==null" :custom-style="customStyle1" shape="circle" :plain="true"
@click="toggle('bottom',item.ordersId)">拒单申请</u-button>
<!-- refusalContent不等于空并且status == 9 就是拒单审核中 -->
<u-button v-if="item.status == 9&&item.refusalContent==''||item.refusalContent==null" :custom-style="customStyle1" shape="circle" :plain="true"
@click="nineState(item.ordersId)">确认接单</u-button>
</view>
</view>
</view>
<view class="xian" v-if="item.status == 6"></view>
@ -137,6 +162,33 @@
<!-- 结束时间 -->
<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-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>
@ -156,6 +208,10 @@
},
data() {
return {
btnShow:'',
refusalContent:'',
type:'center',
jordersId:'',
endOfServiceTimer: null,
goods: [], //
num: 1,
@ -342,6 +398,164 @@
}
},
methods: {
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.btnShow=index
// this.btnShow=!this.btnShow
},
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);
} else {
that.$queue.showToast(res.msg);
}
});
}else{
uni.showToast({
icon:"error",
title:'请填写拒单原因'
})
}
},
nineState(ordersId){//
this.$Request.getT("/app/artificer/jishiQueren",{
ordersId:ordersId
}).then(res => {
if (res.code == 0) {
that.$queue.showToast(res.msg);
} else {
that.$queue.showToast(res.msg);
}
});
},
//
getArtificer() {
this.$Request.getT("/app/artificer/selectArtificer").then(res => {
@ -486,6 +700,7 @@
},
//
cancel(e) {
console.log(11)
let that = this
uni.showModal({
title: '提示',
@ -598,11 +813,143 @@
}
});
},
}
}
</script>
<style lang="scss">
/deep/.u-size-default{
margin-top: 5px !important;
}
.gengduo{
font-weight: 400;
font-size: 25rpx;
color: #7D7D7D;
}
.showBtn-view{
display: flex;
flex-direction: row;
align-items: center;
}
.showBtn{
justify-content: space-between;
}
.showBtn,.hideBtn{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
flex-wrap: wrap;
justify-content: space-between;
}
/deep/.text-xl{
font-size: 15px;
}
.flex-sub{
text-align: right;
font-size: 13px;
}
.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;
line-height: 19px;
text-align: center;
font-size: 24px;
color: #15AB8D;
border-radius: 50%;
border: 3px solid #15AB8D;
}
.popup-head span:nth-child(1){
font-weight: bold;
font-size: 32rpx;
color: #333333;
}
.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;
}
.popup-content{
width: 100%;
height: 255px;
background: #FFFFFF;
border-top-left-radius: 56rpx;
border-top-right-radius: 56rpx;
display: flex;
flex-direction: column;
}
/*
sticky生效条件
1父元素不能overflow:hidden或者overflow:auto属性(mescroll-body设置:sticky="true"即可, mescroll-uni本身没有设置overflow)
@ -611,18 +958,40 @@
4sticky元素仅在其父元素内生效,所以父元素必须是 mescroll
*/
.ding-view{
width: 95%;
height: 290rpx;
background: linear-gradient(-90deg, #019C88, #1BB9A5, #029D88);
border-radius: 24rpx;
margin: 10px auto 0px auto;
align-items: end;
display: flex;
flex-direction: row;
justify-content: space-between;
}
.content{
width: 100%;
min-height: 100vh;
background-image: url('../../static/index/swim.jpg');
background-repeat: no-repeat;
background-size: 100% 100%;
display: flex;
flex-direction: column;
align-items: center;
padding: 30px 0px;
}
.u-tabs {
background: #f7f7f7 !important;
border-radius: 10px 10px 0 0;
margin-top: -20px;
padding: 16px;
width: 90%;
height: 199rpx;
// background: #F7F7F7 !important;
border-radius: 21rpx;
margin: -70px auto 10px auto;
}
/deep/.u-scroll-view {
background-color: #ffffff !important;
padding: 10px 16px !important;
border-radius: 10px !important;
}
/deep/.u-tab-item {
@ -637,8 +1006,9 @@
}
.sticky-tabs {
width: 100%;
z-index: 990;
position: sticky;
position: f;
top: var(--window-top);
// background-color: #fff;
}
@ -668,7 +1038,7 @@
}
/deep/.page-box {
background-color: #F7F7F7 !important;
background: top !important;
}
.bg {
@ -696,18 +1066,17 @@
}
.labe {
background: #DCF4DC;
width: 42px;
background: #FFE45A;
border-radius: 15rpx 0rpx 15rpx 0rpx;
display: inline-flex;
align-items: center;
border-radius: 39rpx;
color: #1A1B1B;
color: #7A3A00;
font-size: 22rpx;
font-weight: 400;
width: 110rpx;
height: 36rpx;
justify-content: center;
margin-left: 20rpx;
justify-content: center;
text {
width: 12rpx;
height: 12rpx;

View File

@ -17,7 +17,7 @@
<button v-if="isShowWxAPPShare=='是'" @click="shareWeiXin()" type="default" style="border: 1px #096f4b solid;color: #096f4b;font-size: 15px; width: 50%;border-radius: 30px;">文案推广</button>
<button v-if="isShowWxAPPShare=='否'" @click="sharAPPUrl()" type="default" style="border: 1px #096f4b solid;color: #096f4b;font-size: 15px; width: 50%;border-radius: 30px;">文案推广</button>
<button @tap="test()" type="default" style="background: linear-gradient(to right, #223845, #00a85b);font-size: 15px;color: #FFFFFF; width: 50%; margin-left: 40upx;border-radius: 30px;">生成海报</button>
<button @tap="test()" type="default" style="background: linear-gradient(to right, #096f4b, #00a85b);font-size: 15px;color: #FFFFFF; width: 50%; margin-left: 40upx;border-radius: 30px;">生成海报</button>
</view>
<qrcode-poster ref="poster" :title="nickName" :subTitle="nickName" :backgroundImage="backgroundImage" :abImg="userImageUrl" :content="invitationCode" />
</view>

View File

@ -12,11 +12,11 @@
<view>申请获取以下权限</view>
<text>获得你的公开信息(昵称头像地区等)</text>
</view>
<button v-show="weixinPhone" style="background: #096f4b;color: #FFFFFF;" class="bottom"
<button v-show="weixinPhone" style="background: linear-gradient(90deg, #019C88, #28BA92, #35C495);color: #FFFFFF;" class="bottom"
open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
授权手机号
</button>
<button v-show="!weixinPhone" style="background: #096f4b;color: #FFFFFF;" class='bottom'
<button v-show="!weixinPhone" style="background: linear-gradient(90deg, #019C88, #28BA92, #35C495);color: #FFFFFF;" class='bottom'
bindtap="getUserProfile" @tap="wxGetUserInfo">
授权登录
</button>
@ -45,7 +45,7 @@
src="../../static/logo.png"></image>
<button v-if="weixinLogin" class="confirm-btn" @click="weixinLo">微信登录</button>
<button v-if="weixinLogin" class='confirm-btn-weixin' @click="register">手机号登录</button>
<button v-if="!weixinLogin" class='confirm-btn' style="background-image: linear-gradient(to right, #223845, #00a85b);" @click="register">手机号登录</button>
<button v-if="!weixinLogin" class='confirm-btn' style="background: linear-gradient(90deg, #019C88, #28BA92, #35C495);" @click="register">手机号登录</button>
<view style="text-align: center;margin: 30rpx 0rpx;align-items: center;">
<view class="footer">
@ -414,7 +414,7 @@
// background: -o-linear-gradient(left, #f15b6c 0, #e10a07 100%);
// background: -ms-linear-gradient(left, #f15b6c 0, #e10a07 100%);
// background: linear-gradient(to left, #f15b6c 0, #e10a07 100%);
background: #096f4b;
background: linear-gradient(90deg, #019C88, #28BA92, #35C495);
color: #fff;
font-size: 32upx;
@ -435,7 +435,7 @@
// background: -o-linear-gradient(left, #f15b6c 0, #e10a07 100%);
// background: -ms-linear-gradient(left, #f15b6c 0, #e10a07 100%);
// background: linear-gradient(to left, #f15b6c 0, #e10a07 100%);
background: #096f4b;
background: linear-gradient(90deg, #019C88, #28BA92, #35C495);
color: #fff;
font-size: 32upx;
@ -537,7 +537,7 @@
border-radius: 30px;
margin-top: 40px;
// background: linear-gradient(to left, #005DFF 0, #005DeF 100%);
background: #096f4b;
background: linear-gradient(90deg, #019C88, #28BA92, #35C495);
color: #fff;
// font-size: $font-lg;

View File

@ -186,7 +186,7 @@
line-height: 80upx;
border-radius: 60upx;
margin-top: 32upx;
background: linear-gradient(to right, #223845, #00a85b);
background: linear-gradient(90deg, #019C88, #28BA92, #35C495);
color: #fff;
font-size: 30upx;

View File

@ -156,14 +156,15 @@
.confirm-btn {
background: linear-gradient(to right, #223845, #00a85b);
background: linear-gradient(90deg, #019C88, #0FA78B, #35C495);
color: #FFFFFF;
margin: 16rpx 0;
margin: 7px 0;
width: 100%;
border-radius: 50rpx;
height: 78rpx;
line-height: 78rpx;
font-size: 32rpx;
border-radius: 24px;
height: 37px;
line-height: 37px;
font-size: 14px;
text-align: center;
&:after {
border-radius: 60px;

View File

@ -317,7 +317,7 @@
height: 30px;
font-size: 10px;
line-height: 30px;
background: #096f4b;
background: linear-gradient(90deg, #019C88, #28BA92, #35C495);
}
@ -359,7 +359,7 @@
line-height: 80upx;
border-radius: 60upx;
margin-top: 32upx;
background: linear-gradient(to right, #223845, #00a85b);
background: linear-gradient(90deg, #019C88, #28BA92, #35C495);
color: #fff;
font-size: 30upx;

BIN
static/background-img.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

BIN
static/fanhui.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 B

BIN
static/images/my/hetong.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 830 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 855 B

BIN
static/images/my/ziyuan.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
static/index/daifuwu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
static/index/dangqian1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 876 B

BIN
static/index/dangqian2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 952 B

BIN
static/index/dianhua.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
static/index/fanhui.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1012 B

BIN
static/index/fun_banner.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
static/index/function1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

BIN
static/index/function10.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

BIN
static/index/function11.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

BIN
static/index/function12.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

BIN
static/index/function2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

BIN
static/index/function3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
static/index/function4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
static/index/function5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

BIN
static/index/function6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

BIN
static/index/function7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

BIN
static/index/function8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

BIN
static/index/function9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

BIN
static/index/img-shang.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
static/index/jiangzhang.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
static/index/jinri.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
static/index/lishi.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
static/index/order_1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
static/index/order_2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
static/index/order_3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
static/index/order_4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
static/index/order_5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
static/index/order_6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
static/index/order_7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
static/index/order_8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
static/index/swim.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
static/index/yiwancheng.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
static/jinggao.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

BIN
static/shezhi1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
static/shezhi2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
static/shezhi3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
static/shezhi4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
static/shezhi5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
static/shezhi6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
static/shezhi7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
static/shezhi8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
static/tabbar/order10-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
static/tabbar/order10-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
static/tabbar/order10-3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
static/tabbar/order10-4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
static/tabbar/order10-5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
static/tabbar/order10-6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -1,3 +1,7 @@
## 1.0.52024-03-20
- 修复 单选模式下选中样式不生效的bug
## 1.0.42024-01-27
- 修复 修复错别字chagne为change
## 1.0.32022-09-16
- 可以使用 uni-scss 控制主题色
## 1.0.22022-06-30

View File

@ -2,16 +2,21 @@
<view class="uni-data-checklist" :style="{'margin-top':isTop+'px'}">
<template v-if="!isLocal">
<view class="uni-data-loading">
<uni-load-more v-if="!mixinDatacomErrorMessage" status="loading" iconType="snow" :iconSize="18" :content-text="contentText"></uni-load-more>
<uni-load-more v-if="!mixinDatacomErrorMessage" status="loading" iconType="snow" :iconSize="18"
:content-text="contentText"></uni-load-more>
<text v-else>{{mixinDatacomErrorMessage}}</text>
</view>
</template>
<template v-else>
<checkbox-group v-if="multiple" class="checklist-group" :class="{'is-list':mode==='list' || wrap}" @change="chagne">
<label class="checklist-box" :class="['is--'+mode,item.selected?'is-checked':'',(disabled || !!item.disabled)?'is-disable':'',index!==0&&mode==='list'?'is-list-border':'']"
:style="item.styleBackgroud" v-for="(item,index) in dataList" :key="index">
<checkbox class="hidden" hidden :disabled="disabled || !!item.disabled" :value="item[map.value]+''" :checked="item.selected" />
<view v-if="(mode !=='tag' && mode !== 'list') || ( mode === 'list' && icon === 'left')" class="checkbox__inner" :style="item.styleIcon">
<checkbox-group v-if="multiple" class="checklist-group" :class="{'is-list':mode==='list' || wrap}"
@change="change">
<label class="checklist-box"
:class="['is--'+mode,item.selected?'is-checked':'',(disabled || !!item.disabled)?'is-disable':'',index!==0&&mode==='list'?'is-list-border':'']"
:style="item.styleBackgroud" v-for="(item,index) in dataList" :key="index">
<checkbox class="hidden" hidden :disabled="disabled || !!item.disabled" :value="item[map.value]+''"
:checked="item.selected" />
<view v-if="(mode !=='tag' && mode !== 'list') || ( mode === 'list' && icon === 'left')"
class="checkbox__inner" :style="item.styleIcon">
<view class="checkbox__inner-icon"></view>
</view>
<view class="checklist-content" :class="{'list-content':mode === 'list' && icon ==='left'}">
@ -20,13 +25,14 @@
</view>
</label>
</checkbox-group>
<radio-group v-else class="checklist-group" :class="{'is-list':mode==='list','is-wrap':wrap}" @change="chagne">
<!-- -->
<label class="checklist-box" :class="['is--'+mode,item.selected?'is-checked':'',(disabled || !!item.disabled)?'is-disable':'',index!==0&&mode==='list'?'is-list-border':'']"
:style="item.styleBackgroud" v-for="(item,index) in dataList" :key="index">
<radio class="hidden" hidden :disabled="disabled || item.disabled" :value="item[map.value]+''" :checked="item.selected" />
<radio-group v-else class="checklist-group" :class="{'is-list':mode==='list','is-wrap':wrap}" @change="change">
<label class="checklist-box"
:class="['is--'+mode,item.selected?'is-checked':'',(disabled || !!item.disabled)?'is-disable':'',index!==0&&mode==='list'?'is-list-border':'']"
:style="item.styleBackgroud" v-for="(item,index) in dataList" :key="index">
<radio class="hidden" hidden :disabled="disabled || item.disabled" :value="item[map.value]+''"
:checked="item.selected" />
<view v-if="(mode !=='tag' && mode !== 'list') || ( mode === 'list' && icon === 'left')" class="radio__inner"
:style="item.styleBackgroud">
:style="item.styleBackgroud">
<view class="radio__inner-icon" :style="item.styleIcon"></view>
</view>
<view class="checklist-content" :class="{'list-content':mode === 'list' && icon ==='left'}">
@ -68,7 +74,7 @@
export default {
name: 'uniDataChecklist',
mixins: [uniCloud.mixinDatacom || {}],
emits:['input','update:modelValue','change'],
emits: ['input', 'update:modelValue', 'change'],
props: {
mode: {
type: String,
@ -88,7 +94,7 @@
// TODO vue3
modelValue: {
type: [Array, String, Number],
default() {
default () {
return '';
}
},
@ -122,20 +128,20 @@
type: String,
default: ''
},
emptyText:{
emptyText: {
type: String,
default: '暂无数据'
},
disabled:{
disabled: {
type: Boolean,
default: false
},
map:{
map: {
type: Object,
default(){
default () {
return {
text:'text',
value:'value'
text: 'text',
value: 'value'
}
}
}
@ -177,18 +183,18 @@
contentrefresh: '加载中',
contentnomore: '没有更多'
},
isLocal:true,
isLocal: true,
styles: {
selectedColor: '#2979ff',
selectedTextColor: '#666',
},
isTop:0
isTop: 0
};
},
computed:{
dataValue(){
if(this.value === '')return this.modelValue
if(this.modelValue === '') return this.value
computed: {
dataValue() {
if (this.value === '') return this.modelValue
if (this.modelValue === '') return this.value
return this.value
}
},
@ -223,15 +229,15 @@
},
methods: {
loadData() {
this.mixinDatacomGet().then(res=>{
this.mixinDatacomGet().then(res => {
this.mixinDatacomResData = res.result.data
if(this.mixinDatacomResData.length === 0){
if (this.mixinDatacomResData.length === 0) {
this.isLocal = false
this.mixinDatacomErrorMessage = this.emptyText
}else{
} else {
this.isLocal = true
}
}).catch(err=>{
}).catch(err => {
this.mixinDatacomErrorMessage = err.message
})
},
@ -248,7 +254,7 @@
}
return parent;
},
chagne(e) {
change(e) {
const values = e.detail.value
let detail = {
@ -383,13 +389,13 @@
*/
setStyleBackgroud(item) {
let styles = {}
let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
let selectedColor = this.selectedColor ? this.selectedColor : '#2979ff'
if (this.selectedColor) {
if (this.mode !== 'list') {
styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
styles['border-color'] = item.selected ? selectedColor : '#DCDFE6'
}
if (this.mode === 'tag') {
styles['background-color'] = item.selected? selectedColor:'#f5f5f5'
styles['background-color'] = item.selected ? selectedColor : '#f5f5f5'
}
}
let classles = ''
@ -402,13 +408,13 @@
let styles = {}
let classles = ''
if (this.selectedColor) {
let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
styles['background-color'] = item.selected?selectedColor:'#fff'
styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
if(!item.selected && item.disabled){
let selectedColor = this.selectedColor ? this.selectedColor : '#2979ff'
styles['background-color'] = item.selected ? selectedColor : '#fff'
styles['border-color'] = item.selected ? selectedColor : '#DCDFE6'
if (!item.selected && item.disabled) {
styles['background-color'] = '#F2F6FC'
styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
styles['border-color'] = item.selected ? selectedColor : '#DCDFE6'
}
}
for (let i in styles) {
@ -420,13 +426,13 @@
let styles = {}
let classles = ''
if (this.selectedColor) {
let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
let selectedColor = this.selectedColor ? this.selectedColor : '#2979ff'
if (this.mode === 'tag') {
styles.color = item.selected?(this.selectedTextColor?this.selectedTextColor:'#fff'):'#666'
styles.color = item.selected ? (this.selectedTextColor ? this.selectedTextColor : '#fff') : '#666'
} else {
styles.color = item.selected?(this.selectedTextColor?this.selectedTextColor:selectedColor):'#666'
styles.color = item.selected ? (this.selectedTextColor ? this.selectedTextColor : selectedColor) : '#666'
}
if(!item.selected && item.disabled){
if (!item.selected && item.disabled) {
styles.color = '#999'
}
}
@ -439,7 +445,7 @@
let styles = {}
let classles = ''
if (this.mode === 'list') {
styles['border-color'] = item.selected?this.styles.selectedColor:'#DCDFE6'
styles['border-color'] = item.selected ? this.styles.selectedColor : '#DCDFE6'
}
for (let i in styles) {
classles += `${i}:${styles[i]};`
@ -454,7 +460,7 @@
<style lang="scss">
$uni-primary: #2979ff !default;
$border-color: #DCDFE6;
$disable:0.4;
$disable: 0.4;
@mixin flex {
/* #ifndef APP-NVUE */
@ -476,6 +482,7 @@
position: relative;
z-index: 0;
flex: 1;
//
.checklist-group {
@include flex;
@ -506,6 +513,7 @@
flex-direction: row;
align-items: center;
justify-content: space-between;
.checklist-text {
font-size: 14px;
color: #666;
@ -517,7 +525,7 @@
border-right-width: 1px;
border-right-color: #007aff;
border-right-style: solid;
border-bottom-width:1px;
border-bottom-width: 1px;
border-bottom-color: #007aff;
border-bottom-style: solid;
height: 12px;
@ -542,6 +550,7 @@
border-radius: 4px;
background-color: #fff;
z-index: 1;
.checkbox__inner-icon {
position: absolute;
/* #ifdef APP-NVUE */
@ -556,7 +565,7 @@
border-right-width: 1px;
border-right-color: #fff;
border-right-style: solid;
border-bottom-width:1px ;
border-bottom-width: 1px;
border-bottom-color: #fff;
border-bottom-style: solid;
opacity: 0;
@ -597,6 +606,7 @@
&.is-disable {
/* #ifdef H5 */
cursor: not-allowed;
/* #endif */
.checkbox__inner {
background-color: #F2F6FC;
@ -610,6 +620,7 @@
background-color: #F2F6FC;
border-color: $border-color;
}
.checklist-text {
color: #999;
}
@ -626,16 +637,20 @@
transform: rotate(45deg);
}
}
.radio__inner {
border-color: $uni-primary;
.radio__inner-icon {
opacity: 1;
background-color: $uni-primary;
}
}
.checklist-text {
color: $uni-primary;
}
//
&.is-disable {
.checkbox__inner {
@ -645,6 +660,7 @@
.checklist-text {
opacity: $disable;
}
.radio__inner {
opacity: $disable;
}
@ -667,6 +683,7 @@
/* #endif */
border: 1px #eee solid;
opacity: $disable;
.checkbox__inner {
background-color: #F2F6FC;
border-color: $border-color;
@ -674,6 +691,7 @@
cursor: not-allowed;
/* #endif */
}
.radio__inner {
background-color: #F2F6FC;
border-color: $border-color;
@ -681,6 +699,7 @@
cursor: not-allowed;
/* #endif */
}
.checklist-text {
color: #999;
}
@ -688,9 +707,11 @@
&.is-checked {
border-color: $uni-primary;
.checkbox__inner {
border-color: $uni-primary;
background-color: $uni-primary;
.checkbox__inner-icon {
opacity: 1;
transform: rotate(45deg);
@ -747,6 +768,7 @@
}
}
}
//
&.is--list {
/* #ifndef APP-NVUE */
@ -764,6 +786,7 @@
&.is-disable {
/* #ifdef H5 */
cursor: not-allowed;
/* #endif */
.checkbox__inner {
background-color: #F2F6FC;
@ -772,6 +795,7 @@
cursor: not-allowed;
/* #endif */
}
.checklist-text {
color: #999;
}
@ -787,11 +811,15 @@
transform: rotate(45deg);
}
}
.radio__inner {
border-color: $uni-primary;
.radio__inner-icon {
opacity: 1;
background-color: $uni-primary;
}
}
.checklist-text {
color: $uni-primary;
}

View File

@ -1,7 +1,7 @@
{
"id": "uni-data-checkbox",
"displayName": "uni-data-checkbox 数据选择器",
"version": "1.0.3",
"version": "1.0.5",
"description": "通过数据驱动的单选框和复选框",
"keywords": [
"uni-ui",

View File

@ -0,0 +1,65 @@
## 2.7.92024-05-10
1.`修复` 在新版HbuilderX+vue3+微信小程序中可能出现的加载第二页数据后返回顶部无法下拉的问题。
2.`修复` 在vue3+抖音小程序中可能出现的首次加载reload没有触发的问题。
3.`优化` ts类型中`ZPagingInstance`泛型不必填,默认为`any`。
## 2.7.82024-05-09
1.`新增` typescript类型声明文件感谢小何同学提供。
2.`新增` 添加极简写法fetch相关配置及示例。
3.`新增` `fixed-cellHeight`配置支持在虚拟列表中自定义固定的cell高度。
4.`新增` `refresher-refreshing-scrollable`配置,支持自定义下拉刷新中是否允许列表滚动。
5.`修复` 在新版HubilderX+vue3+h5中`swiper-demo`模式`slot=top`被导航栏遮挡的问题。
6.`修复` 下拉进入二楼偶现的二楼高度未铺满全屏的问题。
7.`修复` 虚拟列表中complete若传相同对象会导致key重复的问题。
8.`修复` 在虚拟列表中调用refresh后缓存高度原始数据未清空的问题。
9.`修复` 聊天记录模式删除记录时顶部显示loading的问题。
9.`优化` `scrollIntoViewByIndex`支持在虚拟列表中滚动到指定cell。
10.`优化` `content-z-index`默认值修改为1。
## 2.7.72024-04-01
1.`新增` 下拉进入二楼功能及相关配置&demo。
2.`新增` 虚拟列表写法添加【非内置列表】写法可良好兼容vue3中的各平台并有较优的性能表现。
3.`新增` `z-paging-cell`补充`@touchstart`事件。
4.`修复` 页面滚动模式设置了`auto-full-height`后可能出现的依然有异常空白占位的问题和下拉刷新时列表数据被切割的问题。
## 2.7.62024-02-29
1.`新增` `max-width`,支持设置`z-paging`的最大宽度,默认`z-paging`宽度铺满窗口。
2.`新增` `chat-adjust-position-offset`,支持设置使用聊天记录模式中键盘弹出时占位高度偏移距离。
3.`修复` 由于renderjs中聊天记录模式判断不准确导致的可能出现的从聊天记录页面跳转到其他页面后返回页面无法滚动的问题。
4.`修复` 聊天记录模式首次加载失败后,发送消息顶部会显示加载失败文字的问题。
5.`修复` 聊天记录模式nvue可能出现的键盘弹出无法滚动到底部的问题。
6.`修复` 聊天记录模式+nvue滚动条无法展示的问题&底部会显示加载中的问题。
7.`修复` 聊天记录模式监听键盘弹出可能出现的无法正常销毁的问题。
8.`修复` 直接修改dataList的值组件内部的值未更新的问题。
## 2.7.52024-01-23
1.`新增` props`chat-loading-more-default-as-loading`,支持设置在聊天记录模式中滑动到顶部状态为默认状态时,以加载中的状态展示。
2.`新增` slots`chatNoMore`支持自定义聊天记录模式没有更多数据view。
3.`修复` 固定在底部view可能出现默认黄色的问题。
4.`优化` 聊天记录加载更多样式,与普通模式对齐,支持点击加载更多&点击重试,并支持加载更多相关配置。
5.`优化` 微调下拉刷新和底部加载更多样式。
6.`优化` 聊天记录模式自动滚动到底部添加延时以避免可能出现的滚动到底部位置不正确的问题。
7.`优化` 使用新的判断滚动到顶部算法以解决在安卓设备中可能出现的因滚动到顶部时scrollTop不为0导致的下拉刷新被禁用的问题。
## 2.7.42024-01-14
1.`新增` props:`auto-adjust-position-when-chat`支持设置使用聊天记录模式中键盘弹出时是否自动调整slot="bottom"高度。
2.`新增` props:`auto-to-bottom-when-chat`,支持设置使用聊天记录模式中键盘弹出时是否自动滚动到底部。
3.`新增` props:`show-chat-loading-when-reload`支持设置使用聊天记录模式中reload时是否显示chatLoading。
4.`修复` 在聊天记录模式中`scrollIntoViewById`和`scrollIntoViewByNodeTop`无效的问题。
5.`优化` 聊天记录模式底部安全区域针对键盘开启/关闭兼容处理。
6.`优化` 更新内置的空数据图&加载失败图感谢图鸟UI提供的免费可商用的空数据图和加载失败图
## 2.7.32024-01-10
1.`新增` 聊天记录模式支持虚拟列表&添加相关demo。
2.`新增` nvue中list添加`@scrollend`监听。
3.`优化` 聊天记录模式+vue第一页并且没有更多时不倒置列表。
4.`优化` 聊天记录模式+nvue中数据不满屏时默认从顶部开始不进行列表倒置。
## 2.7.22024-01-09
1.`修复` `vue3+h5`中报错`uni.onKeyboardHeightChange is not a function`的问题。
2.`优化` 聊天记录模式细节:表情面板在触摸列表时隐藏&添加隐藏动画。
## 2.7.12024-01-08
1.`新增` `keyboardHeightChange` event支持监听键盘高度改变。
2.`新增` 聊天记录模式新增切换表情面板/键盘demo。
3.`优化` 键盘弹出占位添加动画效果。
## 2.7.02024-01-07
2024新年快乐祝大家在新的一年里工作顺利事事顺心
1.`新增` 全新的聊天记录模式设计将vue中的聊天记录模式与nvue中对齐完全解决了聊天记录模式滚动到顶部加载更多在vue中抖动的问题同时将聊天记录模式键盘自动弹出自动上推页面交由`z-paging`处理,解决了由此引发的各种问题,尤其是在微信小程序中导航栏被键盘顶出屏幕外的问题。如果您使用了`z-paging`的聊天记录模式强烈建议更新写法有一定变更具体请参见demo。
2.`新增` `swiper-demo`新增`onShow`时候调用reload演示。
3.`修复` 修复滚动相关方法在微信小程序中首次滚动动画无效的问题。
4.`修复` props设置单位单位为px时报错的问题。
5.`修复` 在某些情况下`z-paging`加载了但是未渲染时reload无效的问题。
6.`修复` 底部loading动画未生效的问题。

View File

@ -0,0 +1,162 @@
<!-- z-paging聊天输入框 -->
<template>
<view class="chat-input-bar-container">
<view class="chat-input-bar">
<view class="chat-input-container">
<!-- :adjust-position="false"必须设置防止键盘弹窗自动上顶交由z-paging内部处理 -->
<input :focus="focus" class="chat-input" v-model="msg" :adjust-position="false" confirm-type="send" type="text" placeholder="请输入内容" @confirm="sendClick" />
</view>
<!-- 表情图标如果不需要切换表情面板则不用写 -->
<view class="emoji-container">
<image class="emoji-img" :src="`/static/${emojiType || 'emoji'}.png`" @click="emojiChange"></image>
</view>
<view class="chat-input-send" @click="sendClick">
<text class="chat-input-send-text">发送</text>
</view>
</view>
<!-- 表情面板这里使用height控制隐藏显示是为了有高度变化的动画效果如果不需要切换表情面板则不用写 -->
<view class="emoji-panel-container" :style="[{height: emojiType === 'keyboard' ? '400rpx' : '0px'}]">
<scroll-view scroll-y style="height: 100%;flex: 1;">
<view class="emoji-panel">
<text class="emoji-panel-text" v-for="(item, index) in emojisArr" :key="index" @click="emojiClick(item)">
{{item}}
</text>
</view>
</scroll-view>
</view>
</view>
</template>
<script>
export default {
name:"chat-input-bar",
data() {
return {
msg: '',
//
emojisArr: ['😊','😁','😀','😃','😣','😞','😩','😫','😲','😟','😦','😜','😳','😋','😥','😰','🤠','😎','😇','😉','😭','😈','😕','😏','😘','😤','😡','😅','😬','😺','😻','😽','😼','🙈','🙉','🙊','🔥','👍','👎','👌','✌️','🙏','💪','👻'],
// input focus
focus: false,
// /logo
emojiType: '',
};
},
methods: {
//
updateKeyboardHeightChange(res) {
if (res.height > 0) {
// emojiTypeemoji
this.emojiType = 'emoji';
}
},
// z-paging
hidedKeyboard() {
if (this.emojiType === 'keyboard') {
this.emojiType = '';
}
},
// /
emojiChange() {
this.$emit('emojiTypeChange', this.emojiType);
if (this.emojiType === 'keyboard') {
//
this.focus = true;
} else {
//
this.focus = false;
//
uni.hideKeyboard();
}
this.emojiType = (!this.emojiType || this.emojiType === 'emoji') ? 'keyboard': 'emoji';
},
//
emojiClick(text) {
this.msg += text;
},
//
sendClick() {
if (!this.msg.length) return;
this.$emit('send', this.msg);
this.msg = '';
}
}
}
</script>
<style scoped>
.chat-input-bar {
display: flex;
flex-direction: row;
align-items: center;
border-top: solid 1px #f5f5f5;
background-color: #f8f8f8;
padding: 10rpx 20rpx;
}
.chat-input-container {
flex: 1;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
padding: 15rpx;
background-color: white;
border-radius: 10rpx;
}
.chat-input {
flex: 1;
font-size: 28rpx;
}
.emoji-container {
width: 54rpx;
height: 54rpx;
margin: 10rpx 0rpx 10rpx 20rpx;
}
.emoji-img {
width: 54rpx;
height: 54rpx;
}
.chat-input-send {
background-color: #007AFF;
margin: 10rpx 10rpx 10rpx 20rpx;
border-radius: 10rpx;
width: 110rpx;
height: 60rpx;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
justify-content: center;
align-items: center;
}
.chat-input-send-text {
color: white;
font-size: 26rpx;
}
.emoji-panel-container {
background-color: #f8f8f8;
overflow: hidden;
transition-property: height;
transition-duration: 0.15s;
/* #ifndef APP-NVUE */
will-change: height;
/* #endif */
}
.emoji-panel {
font-size: 30rpx;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: row;
flex-wrap: wrap;
padding-right: 10rpx;
padding-left: 15rpx;
padding-bottom: 10rpx;
}
.emoji-panel-text {
font-size: 50rpx;
margin-left: 15rpx;
margin-top: 20rpx;
}
</style>

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