This commit is contained in:
吴鹏 2025-02-12 17:59:03 +08:00
parent 389a62a9bc
commit 746fe6ffb7
22 changed files with 1058 additions and 1358 deletions

View File

@ -20,8 +20,8 @@ const install = (Vue, vm) => {
// },
// https://yxd.ccttiot.com/prod-api});
Vue.prototype.$u.http.setConfig({
// baseUrl: 'http://192.168.2.28:8089',
baseUrl: 'https://testcha.chuangtewl.com/prod-api',
baseUrl: 'http://192.168.2.56:8089',
// baseUrl: 'https://testcha.chuangtewl.com/prod-api',
loadingText: '努力加载中~',
loadingTime: 800,
// 设置自定义头部content-type

254
page_fenbaotwo/skzh.vue Normal file
View File

@ -0,0 +1,254 @@
<template>
<view>
<u-navbar :title="tit" :border-bottom="false" :background="bgc" title-color='#fff' title-size='36' back-icon-color="#fff"
height='50'></u-navbar>
<view class="cont">
<view class="tip">注意请下载保存收款码不要截图保存</view>
<view class="icon">
<view class="list_box">
<view class="lt">
<view class="tit">
上传二维码
</view>
<view class="wz">
必须清晰方正易于辨识
</view>
</view>
<view class="imgbox">
<view @click="getImage">
<image v-if="imglist == 'null'"
src="https://api.ccttiot.com/smartmeter/img/static/uY8CPw9YE6JxPzcHUaqf" mode="aspectFit">
</image>
<image v-else :src="imglist" style="width: 400rpx;" mode="aspectFit"></image>
</view>
</view>
</view>
</view>
<view class="btn" @click="band()">
确认上传
</view>
</view>
<view v-if="btnmsk" style="width: 100%;height: 100vh;position: fixed;top: 0;left: 0;background-color: #000;opacity: .1;z-index: 999;"></view>
</view>
</template>
<script>
export default {
data() {
return {
btnmsk:false,
bgc: {
backgroundColor: "#48893B",
},
name:'',
idnum:'',
cardnum:'',
tit:'二维码收款',
stause:false,
imglist: '',
token: '',
userImgs: '',
imgflag: true,
accountId:'',
flag:true,
domain:'',
userWithdrawChannelId:''
}
},
onLoad(option) {
console.log(option);
if(option.collectionCode){
this.imglist = option.collectionCode
this.userWithdrawChannelId = option.userWithdrawChannelId
}
console.log(this.imglist);
this.getQiniuToken()
},
methods: {
band(){
this.btnmsk = false
let data = {
collectionCode:this.imglist,
userWithdrawChannelId:this.userWithdrawChannelId
}
this.$u.post("app/user/uploadPaymentCode",data).then((res) => {
if (res.code == 200) {
uni.showToast({
title: res.msg,
icon: 'success',
duration: 1000
})
setTimeout(()=>{
this.btnmsk = false
uni.navigateBack()
},1000)
}else{
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
this.btnmsk = false
}
})
},
getQiniuToken() {
this.$u.get("/common/qiniu/uploadInfo").then((res) => {
if (res.code == 200) {
this.token = res.token
this.domain = res.domain
}
})
},
getImage() {
let _this = this
let math = 'static/' + _this.$u.guid(20)
uni.chooseImage({
count: 1,
type: 'all',
success(res) {
const tempFilePaths = res.tempFiles
wx.uploadFile({
url: 'https://up-z2.qiniup.com',
name: 'file',
filePath: tempFilePaths[0].path,
formData: {
token: _this.token, //token
key: 'smartmeter/img/' + math
},
success: function(res) {
let str = JSON.parse(res.data)
console.log(res);
_this.userImgs = _this.domain + '/' + str.key
console.log(_this.userImgs);
_this.imglist = _this.userImgs
_this.imgflag = false
}
})
}
})
},
}
}
</script>
<style lang="scss" >
/deep/ .u-title{
padding-bottom: 22rpx;
}
/deep/ .u-icon__icon{
padding-bottom: 22rpx;
}
page{
background: #F7FAFE;
}
.icon {
display: flex;
flex-wrap: wrap;
align-items: center;
margin-top: 40rpx;
width: 680rpx;
.list_box {
width: 100%;
// display: flex;
// justify-content: space-between;
// padding-right: 45rpx;
.lt {
// padding-top: 40rpx;
.tit {
font-size: 32rpx;
color: #3D3D3D;
}
.wz {
font-size: 26rpx;
color: #3D3D3D;
margin-top: 20rpx;
}
}
.imgbox {
width: 100%;
height: 400rpx;
margin-top: 30rpx;
image {
width: 200rpx;
height: 400rpx;
}
}
}
}
.cont{
display: flex;
// justify-content: center;
flex-wrap: wrap;
margin: 0 auto;
width: 594rpx;
.tip{
margin-top: 62rpx;
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
font-weight: 400;
font-size: 24rpx;
color: #FF8D1A;
line-height: 36rpx;
}
.input_box{
margin-top: 66rpx;
width: 594rpx;
display: flex;
flex-wrap: nowrap;
align-items: center;
.text{
width: 30%;
// margin-right: 102rpx;
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
font-weight: 400;
font-size: 24rpx;
color: #262B37;
}
.ipt{
width: 70%;
.u-input::placeholder {
font-size: 20px;
color: red;
}
}
.yzmbtn{
margin-left: 50rpx;
display: flex;
align-items: center;
justify-content: center;
width: 150rpx;
height: 50rpx;
background: #8EA9E4;
border-radius: 10rpx 10rpx 10rpx 10rpx;
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
font-weight: 400;
font-size: 20rpx;
color: #FFFFFF;
}
}
.btn{
display: flex;
align-items: center;
justify-content: center;
margin-top: 218rpx;
width: 590rpx;
height: 84rpx;
background: #48893B;
border-radius: 40rpx;
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
font-weight: 400;
font-size: 36rpx;
color: #FFFFFF;
}
}
</style>

View File

@ -7,10 +7,10 @@
<view class="top_box">
<view class="tip">账户余额()</view>
<view class="txt">
0
{{user.balance == null ? 0 : user.balance}} (可提现金额{{user.withdrawalAmount == null ? 0 : user.withdrawalAmount}})
</view>
<view class="tip" style="display: flex;justify-content: space-between;">
<text>累计提现0</text>
<text>累计提现{{user.totalWithdrawAmount == null ? 0 : user.totalWithdrawAmount}}</text>
</view>
</view>
<view class="tit">
@ -24,15 +24,15 @@
</view>
<view class="ipt">
<u-input v-model="money" type="number" @input="change" placeholder='输入自定义金额'
<u-input v-model="money" type="number" placeholder='输入自定义金额'
placeholder-style='font-size: 24rpx;' />
</view>
<view class="altx">
<view class="altx" @click="money = user.balance">
全部提现
</view>
</view>
<view class="" style="color: red;font-size: 24rpx;padding-top: 30rpx;box-sizing: border-box;">
提现服务费为 1 最低提现金额为20
<view class="" style="color: red;font-size: 24rpx;padding-top: 30rpx;box-sizing: border-box;" v-if="shouxuobj != ''">
提现服务费为 {{shouxuobj.withdrawHandlingCharge == null ? '' : shouxuobj.withdrawHandlingCharge}} 最低提现{{shouxuobj.minAmount == null ? '' : shouxuobj.minAmount}} 最高提现{{shouxuobj.maxAmount == null ? '' : shouxuobj.maxAmount}}
</view>
<view class="tit">
<view class="" style="display: flex;">
@ -43,21 +43,21 @@
</view>
</view>
<view class="pay_type" style="width: 100%;">
<view class="type_box">
<view class="type_box" v-for="(item,index) in qudaolist" :key="index" @click="btntxxz(item,index)">
<view class="box_left">
<image src="https://api.ccttiot.com/smartmeter/img/static/uhgzRC8dsWKYU1mRePn1" mode="aspectFit"></image>
<image :src="item.picture" mode="aspectFit"></image>
<view class="text">
微信提现
{{item.name}}提现
</view>
</view>
<view class="box_right" :class="currentindex==index?'act1':''">
<span v-if="currentindex==index" style="color: #fff;"> <u-icon style="margin-top: 22rpx;"
name="checkbox-mark" color="#fff" size="28"></u-icon> </span>
name="checkbox-mark" color="#fff" size="28"></u-icon> </span>
</view>
</view>
</view>
<view class="btn">
确认提现
<view class="btn" @click="btntx">
申请提现
</view>
</view>
</view>
@ -70,13 +70,83 @@
bgc: {
backgroundColor: "",
},
user:{},
qudaolist:[],
currentindex:-1,
shouxuobj:'',
money:''
}
},
onShow() {
onLoad(option) {
this.getinfo()
this.getqudao(option.userId)
},
onShow(option) {
},
methods: {
//
btntx(){
if(this.shouxuobj.collectionCode == null && this.shouxuobj.name == '线下收款码'){
uni.showModal({
title: '提示',
content: '当前暂无收款码,是否去上传?',
success: function(res) {
if (res.confirm) {
try {
uni.navigateTo({
url:'/page_fenbaotwo/skzh'
})
} catch (e) {
console.error('删除本地存储时发生错误:', e);
}
}
}
})
}else{
let data = {
amount:this.money,
userWithdrawChannelId:this.shouxuobj.userChannelId
}
this.$u.post(`app/withdraw/mch`,data).then(res => {
if (res.code == 200) {
uni.showToast({
title: '申请成功',
icon: 'success',
duration: 2000
})
this.getinfo()
}else{
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
}
})
}
},
//
btntxxz(item,index){
this.currentindex = index
this.shouxuobj = item
},
//
getinfo(){
this.$u.get(`/getAppInfo`).then(res => {
if (res.code == 200) {
this.user = res.user
}
})
},
//
getqudao(userId){
this.$u.get(`/app/withdraw/getUserWithdrawChannelList?userId=${userId}`).then(res => {
if (res.code == 200) {
this.qudaolist = res.data
}
})
}
}
}
</script>
@ -330,11 +400,9 @@
}
.btn {
margin-left: 20rpx;
display: flex;
align-items: center;
justify-content: center;
margin-top: 218rpx;
width: 590rpx;
height: 84rpx;
background: #48893B;
@ -343,7 +411,10 @@
font-weight: 400;
font-size: 36rpx;
color: #FFFFFF;
position: fixed;
left: 50%;
transform: translateX(-50%);
bottom: 50rpx;
}
}
</style>

272
page_fenbaotwo/zhangdan.vue Normal file
View File

@ -0,0 +1,272 @@
<template>
<view class="pages">
<u-navbar title="账变记录" :border-bottom="false" :background="bgc" back-icon-color="#fff" title-color='#fff'
title-size='36' height='44'></u-navbar>
<!-- 金额明细 -->
<view class="pricemx">
<view class="tab">
<view :class="activeindex == 1 ? 'active' : ''" @click="btntab(1)">全部</view>
<view :class="activeindex == 2 ? 'active' : ''" @click="btntab(2)">收入</view>
<view :class="activeindex == 3 ? 'active' : ''" @click="btntab(3)">提现</view>
</view>
<scroll-view class="list" scroll-y="true" @scrolltolower="onScrollToLower" style="height: 1280rpx;">
<view class="list_item" v-for="(item,index) in wateringList" :key="index" @click="btntxdeta(item.id,item.bstType)">
<view class="top">
<view v-if="item.bstType == 1">充值订单</view>
<view v-if="item.bstType == 2">订单退款</view>
<view v-if="item.bstType == 3">提现申请</view>
<view style="color: #f9693c;" v-if="item.amount < 0">{{item.amount}}</view>
<view style="color: #48893B;" v-else>{{item.amount}}</view>
</view>
<view class="yiy">
<view>{{item.createTime}}</view>
<view>余额{{item.afterBalance}}</view>
</view>
<view class="yiy">
<view>变动原因{{item.reason.length > 30 ? item.reason.substring(0,30) + '...' : item.reason}}</view>
<!-- <view>查看详情</view> -->
</view>
</view>
<view class="" style="width: 100%;text-align: center;color: #ccc;margin-top: 50rpx;">
-已经到底了-
</view>
</scroll-view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
bgc: {
backgroundColor: "#48893B",
},
activeindex: 1,
infoobj: {},
pagenum: 1,
pagesize: 10,
wateringList:[],
bstType:'',
}
},
onLoad() {
},
onShow() {
this.pagenum = 1
this.wateringList = []
this.getlist()
},
//
onShareAppMessage: function () {
return {
title: '创想物联',
path: '/pages/shouye/index'
}
},
//
onShareTimeline: function () {
return {
title: '创想物联',
query: '',
path: '/pages/shouye/index'
}
},
methods: {
//
getlist() {
this.$u.get('/app/user/myChangeBalanceList?pageNum=' + this.pagenum + '&pageSize=' + this.pagesize + '&type=' + this.bstType).then(res => {
if (res.code == 200) {
this.total = res.total
if (res.data.length > 0) {
this.wateringList = this.wateringList.concat(res.data)
this.pagenum++
}
}
})
},
//
onScrollToLower() {
if (this.total > this.wateringList.length) {
this.getlist() //
} else {
}
},
//
btntxdeta(id,type) {
uni.navigateTo({
url:'/page_user/order_detail?id=' + id
})
},
// tab
btntab(num) {
this.activeindex = num
if(num == 1){
this.bstType = ''
this.pagenum = 1
this.wateringList = []
this.getlist()
}else if(num == 2) {
this.bstType = 1
this.pagenum = 1
this.wateringList = []
this.getlist()
}else if(num == 3){
this.bstType = 2
this.pagenum = 1
this.wateringList = []
this.getlist()
}
},
}
}
</script>
<style lang="scss" scoped>
/deep/ .u-title {
padding-bottom: 15rpx;
}
/deep/ .u-icon__icon {
padding-bottom: 15rpx;
}
.active {
border-bottom: 6rpx solid #48893B;
}
.pages {
height: 100vh;
width: 100%;
overflow: hidden;
.pricemx {
width: 658rpx;
margin: auto;
box-sizing: border-box;
margin-top: 56rpx;
.list {
margin-top: 28rpx;
width: 658rpx;
// height: 900rpx;
background-color: #fff;
border-radius: 20rpx;
// overflow: scroll;
padding-bottom: 70rpx;
box-sizing: border-box;
padding-top: 8rpx;
padding-left: 36rpx;
padding-right: 36rpx;
box-sizing: border-box;
.list_item {
border-bottom: 1px solid #D8D8D8;
padding-bottom: 26rpx;
box-sizing: border-box;
margin-top: 20rpx;
.top {
display: flex;
justify-content: space-between;
font-size: 32rpx;
color: #3D3D3D;
font-weight: 600;
}
.yiy {
display: flex;
justify-content: space-between;
margin-top: 10rpx;
font-size: 28rpx;
color: #3D3D3D;
}
}
}
.tit {
font-size: 40rpx;
color: #3D3D3D;
font-weight: 600;
}
.tab {
margin-top: 28rpx;
display: flex;
font-size: 32rpx;
color: #3D3D3D;
font-weight: 600;
padding-left: 28rpx;
box-sizing: border-box;
view {
margin-right: 60rpx;
padding-bottom: 10rpx;
box-sizing: border-box;
}
}
}
.yue {
position: relative;
width: 658rpx;
height: 334rpx;
margin: auto;
margin-top: 30rpx;
padding-top: 34rpx;
padding-left: 38rpx;
padding-right: 38rpx;
box-sizing: border-box;
.zhye {
font-size: 32rpx;
color: #FFFFFF;
}
.yuan {
font-size: 66rpx;
color: #FFFFFF;
font-weight: 600;
margin-top: 14rpx;
}
.leiji {
font-size: 32rpx;
color: #FFFFFF;
margin-top: 56rpx;
display: flex;
justify-content: space-between;
.one {
font-size: 32rpx;
color: #FFFFFF;
}
.two {
width: 182rpx;
height: 64rpx;
background: #FFFFFF;
border-radius: 35rpx 35rpx 35rpx 35rpx;
font-size: 32rpx;
color: #8883F0;
text-align: center;
line-height: 64rpx;
border-radius: 30rpx;
}
}
.bj {
position: absolute;
top: 0;
left: 0;
width: 100%;
z-index: -1;
}
}
}
</style>

View File

@ -1,176 +0,0 @@
<template>
<view class="page">
<u-navbar title="充值记录" :border-bottom="false" :background="bgc" back-icon-color="#262B37" title-color='#262B37'
title-size='36' height='50' id="navbar">
</u-navbar>
<view class="serch">
<view class="lt">
<image src="https://api.ccttiot.com/smartmeter/img/static/uaG7R4JLfYOzBhWfDN0j" mode=""></image><input type="text" v-model="keyword" placeholder="搜索"/> <view class="sousuo" @click="btnsousuo">搜索</view>
</view>
</view>
<view class="list">
<view class="list_item" @click="btnxq">
<view class="top">
<view class="one">
西瓜棋牌
</view>
</view>
<view class="bd">
<view class="two">
用户手机号12345678812
</view>
</view>
<view class="bd">
<view class="two">
充值套餐10含赠送5元
</view>
</view>
<view class="bd">
<view class="two">
余额10含赠送5元
</view>
</view>
<view class="bd">
<view class="two">
充值时间2024-12-07 14:34:02
</view>
</view>
</view>
<view class="" style="width: 100%;text-align: center;margin-top: 50rpx;font-size: 34rpx;color: #ccc;">
没有更多充值记录啦...
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
bgc: {
backgroundColor: "#fff",
},
}
},
onLoad() {
},
methods: {
//
btnxq(){
uni.navigateTo({
url:'/page_moban/chongzhixq'
})
}
}
}
</script>
<style lang="scss">
/deep/ .u-iconfont,
/deep/ .u-title{
padding-bottom: 20rpx;
}
.list{
width: 100%;
height: 80vh;
overflow: scroll;
.list_item{
width: 680rpx;
max-height: 334rpx;
background: #FFFFFF;
margin: auto;
border-radius: 20rpx 20rpx 20rpx 20rpx;
margin-top: 22rpx;
padding-bottom: 32rpx;
box-sizing: border-box;
.bd{
padding: 0 32rpx;
box-sizing: border-box;
margin-top: 14rpx;
.two{
font-size: 28rpx;
color: #3D3D3D;
}
}
.top{
display: flex;
justify-content: space-between;
padding: 32rpx;
padding-bottom: 0;
box-sizing: border-box;
.one{
font-weight: 600;
font-size: 36rpx;
color: #3D3D3D;
}
.two{
font-size: 24rpx;
color: #48893B;
}
}
}
}
page {
background: #F6F6F6;
}
.tab{
display: flex;
justify-content: space-between;
padding: 0 58rpx;
box-sizing: border-box;
background-color: #fff;
padding-bottom: 28rpx;
font-size: 32rpx;
color: #3D3D3D;
view{
border-bottom: 2px solid #fff;
padding-bottom: 12rpx;
box-sizing: border-box;
}
}
.serch{
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 36rpx;
box-sizing: border-box;
padding-top: 20rpx;
padding-bottom: 22rpx;
background-color: #fff;
.lt{
display: flex;
align-items: center;
width: 100%;
height: 68rpx;
border: 2rpx solid #48893B;
border-radius: 24rpx;
padding-left: 30rpx;
box-sizing: border-box;
.sousuo{
width: 140rpx;
height: 66rpx;
text-align: center;
line-height: 66rpx;
font-size: 32rpx;
color: #FFFFFF;
background: #48893B;
border: 2rpx solid #48893B;
border-radius: 0 20rpx 20rpx 0;
}
image{
width: 46rpx;
height: 46rpx;
}
input{
width: 460rpx;
margin-left: 30rpx;
height: 68rpx;
line-height: 68rpx;
}
}
}
</style>

View File

@ -1,157 +0,0 @@
<template>
<view class="page">
<u-navbar title="充值详情" :border-bottom="false" :background="bgc" back-icon-color="#262B37" title-color='#262B37'
title-size='36' height='40' id="navbar">
</u-navbar>
<view class="top">
<image src="https://api.ccttiot.com/smartmeter/img/static/uWIzrlAEWyKzjT5O2ApW" mode=""></image>
<view class="yue">
<view class="zh">
<!-- 账户余额 -->
</view>
<view class="je">
<view class="">
充值金额
</view>
<view class="">
10
</view>
</view>
</view>
</view>
<view class="list">
<view class="list_item" v-for="(item,index) in 20" :key="index">
<view class="time">
2024-11-21 15:22
</view>
<view class="bd">
<view class="lt">
<image src="https://api.ccttiot.com/smartmeter/img/static/uyMDOBjjEi3oXwITLrHh" mode=""></image>
<view class="cx">
<view class="one">
微信充值-某某路店
</view>
<view class="two">
+200.00
</view>
</view>
</view>
<view class="rt">
<view class="">
1592.00
</view>
<view class="" style="margin-top: 8rpx;">
剩余金额
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
bgc: {
backgroundColor: "#fff",
},
}
},
onLoad() {
},
methods: {
}
}
</script>
<style lang="scss">
.top{
height: 260rpx;
.yue{
padding-top: 50rpx;
padding-left: 72rpx;
box-sizing: border-box;
.zh{
font-weight: 600;
font-size: 32rpx;
color: #48893B;
}
.je{
font-weight: 600;
font-size: 32rpx;
color: #48893B;
}
}
image{
width: 680rpx;
height: 260rpx;
position: absolute;
left: 50%;
transform: translateX(-50%);
z-index: -1;
}
}
page {
background: #fff;
.list{
width: 674rpx;
height: 1130rpx;
background: #FFFFFF;
box-shadow: 0rpx 2rpx 12rpx 0rpx rgba(0,0,0,0.15);
border-radius: 30rpx;
margin: auto;
margin-top: 40rpx;
padding: 28rpx 44rpx;
box-sizing: border-box;
overflow: scroll;
.list_item{
border-bottom: 1rpx solid #D8D8D8;
padding-bottom: 34rpx;
box-sizing: border-box;
margin-top: 30rpx;
.time{
font-size: 24rpx;
color: #3D3D3D;
}
.bd{
display: flex;
justify-content: space-between;
margin-top: 22rpx;
.lt{
display: flex;
image{
width: 80rpx;
height: 80rpx;
margin-right: 30rpx;
}
.cx{
.one{
font-weight: 600;
font-size: 28rpx;
color: #3D3D3D;
}
.two{
font-weight: 600;
font-size: 32rpx;
color: #48893B;
margin-top: 8rpx;
}
}
}
.rt{
font-size: 28rpx;
color: #3D3D3D;
}
}
}
}
}
</style>

View File

@ -10,8 +10,9 @@
<view class="wz">
订单提前结束剩余消费时长金额不返还
</view>
<!-- :id="yajinindex == index ? 'active' : ''" -->
<view class="" v-for="(item,index) in tclist" :key="index" @click="btnedit(item,1,index)">
<view class="item_list" v-if="item.mode == 1" :id="yajinindex == index ? 'active' : ''">
<view class="item_list" v-if="item.mode == 1" :class="{ 'active': isSelected(item.ruleId) }">
<view class="shoufei">
<view class="shang">
<view class="">
@ -105,10 +106,18 @@
this.nameone = []
this.ruleIdsone = []
if(type == 1){
this.yajinindex = index
this.nameone.push(item.explain)
this.selectedIndices = []
this.ruleIdsone.push(item.ruleId)
// this.yajinindex = index
// this.nameone.push(item.explain)
// this.selectedIndices = []
// this.ruleIdsone.push(item.ruleId)
this.yajinindex = -1
this.ruleIdsone = ''
const indexExists = this.selectedIndices.includes(item.ruleId)
if (indexExists) {
this.selectedIndices = this.selectedIndices.filter(i => i !== item.ruleId)
} else {
this.selectedIndices.push(item.ruleId)
}
}else{
this.yajinindex = -1
this.ruleIdsone = ''
@ -126,7 +135,7 @@
//
btnqd(){
this.selectedIndices.forEach(val =>{
this.modelist.forEach(item => {
this.tclist.forEach(item => {
if(val == item.ruleId){
this.nameone.push(item.explain)
}

View File

@ -1,209 +0,0 @@
<template>
<view class="page">
<u-navbar title="订单退款审核" :border-bottom="false" :background="bgc" back-icon-color="#262B37" title-color='#262B37'
title-size='36' height='50' id="navbar">
</u-navbar>
<view class="serch">
<view class="lt">
<image src="https://api.ccttiot.com/smartmeter/img/static/uaG7R4JLfYOzBhWfDN0j" mode=""></image><input type="text" v-model="keyword" placeholder="搜索"/> <view class="sousuo" @click="btnsousuo">搜索</view>
</view>
</view>
<view class="tab">
<view :class="tabindex == 1 ? 'active' : ''" @click="btntab(1)">
待处理
</view>
<view :class="tabindex == 2 ? 'active' : ''" @click="btntab(2)">
已处理
</view>
<view :class="tabindex == 3 ? 'active' : ''" @click="btntab(3)">
已拒绝
</view>
</view>
<view class="list">
<view class="list_item" @click="btnxq">
<view class="top">
<view class="one">
反馈编号2165741254
</view>
<view class="two">
退款成功
</view>
</view>
<view class="bd">
<view class="one">
反馈人
</view>
<view class="two">
12345678912
</view>
</view>
<view class="bd">
<view class="one">
反馈时间
</view>
<view class="two">
2024-12-07 15:22:30
</view>
</view>
<view class="bd">
<view class="one">
处理时间
</view>
<view class="two">
2024-12-07 15:22:30
</view>
</view>
</view>
<view class="" style="width: 100%;text-align: center;margin-top: 50rpx;font-size: 34rpx;color: #ccc;">
没有更多退款审核啦...
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
bgc: {
backgroundColor: "#fff",
},
tabindex:1
}
},
onLoad() {
},
methods: {
// 退
btntab(num){
this.tabindex = num
},
// 退
btnxq(){
uni.navigateTo({
url:'/page_moban/tuikuanxq'
})
}
}
}
</script>
<style lang="scss">
/deep/ .u-iconfont,
/deep/ .u-title{
padding-bottom: 20rpx;
}
.active{
border-bottom: 2px solid #48893B !important;
color: #48893B !important;
}
.list{
width: 100%;
height: 80vh;
overflow: scroll;
.list_item{
width: 750rpx;
max-height: 304rpx;
background: #FFFFFF;
margin-top: 22rpx;
padding-bottom: 32rpx;
box-sizing: border-box;
.bd{
display: flex;
align-items: center;
padding: 0 32rpx;
box-sizing: border-box;
margin-top: 24rpx;
.one{
font-size: 28rpx;
color: #7C7C7C;
margin-right: 32rpx;
}
.two{
font-size: 28rpx;
color: #3D3D3D;
}
}
.top{
display: flex;
justify-content: space-between;
border-bottom: 1px solid #D8D8D8;
padding-bottom: 20rpx !important;
padding: 32rpx;
box-sizing: border-box;
.one{
font-weight: 600;
font-size: 30rpx;
color: #3D3D3D;
}
.two{
font-size: 24rpx;
color: #48893B;
}
}
}
}
page {
background: #F6F6F6;
}
.tab{
display: flex;
justify-content: space-between;
padding: 0 58rpx;
box-sizing: border-box;
background-color: #fff;
padding-bottom: 28rpx;
font-size: 32rpx;
color: #3D3D3D;
view{
border-bottom: 2px solid #fff;
padding-bottom: 12rpx;
box-sizing: border-box;
}
}
.serch{
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 36rpx;
box-sizing: border-box;
padding-top: 20rpx;
padding-bottom: 22rpx;
background-color: #fff;
.lt{
display: flex;
align-items: center;
width: 100%;
height: 68rpx;
border: 2rpx solid #48893B;
border-radius: 24rpx;
padding-left: 30rpx;
box-sizing: border-box;
.sousuo{
width: 140rpx;
height: 66rpx;
text-align: center;
line-height: 66rpx;
font-size: 32rpx;
color: #FFFFFF;
background: #48893B;
border: 2rpx solid #48893B;
border-radius: 0 20rpx 20rpx 0;
}
image{
width: 46rpx;
height: 46rpx;
}
input{
width: 460rpx;
margin-left: 30rpx;
height: 68rpx;
line-height: 68rpx;
}
}
}
</style>

View File

@ -1,219 +0,0 @@
<template>
<view class="page">
<u-navbar title="处理反馈" :border-bottom="false" :background="bgc" back-icon-color="#262B37" title-color='#262B37'
title-size='36' height='50' id="navbar">
</u-navbar>
<view class="name">
处理方式
</view>
<view class="xuanze">
<view class="renke" @click="btntab(1)">
<view class="lt">
<view class="one">认可并在线退款</view>
<view class="two">将从账户余额中扣除指定金额原路返还用户</view>
</view>
<view class="rt">
<image v-if="tabindex == 1" src="https://api.ccttiot.com/smartmeter/img/static/uqxbvIOWrlXfwrKgEd5g" mode=""></image>
</view>
</view>
<view class="burenke" @click="btntab(2)">
<view class="lt">
<view class="one">不认可驳回反馈</view>
</view>
<view class="rt">
<image v-if="tabindex == 2" src="https://api.ccttiot.com/smartmeter/img/static/uqxbvIOWrlXfwrKgEd5g" mode=""></image>
</view>
</view>
</view>
<view class="name" v-if="tabindex == 1">
处理方式
</view>
<view class="jine" v-if="tabindex == 1">
<view class="zongjia">
<view class="">
可退款金额
</view>
<view class="">
<input type="text" placeholder="50" :disabled="true" />
</view>
</view>
<view class="zongjia" style="border-top: 1px solid #D8D8D8;">
<view class="">
退款金额
</view>
<view class="">
<input type="text" placeholder="请输入金额" />
</view>
</view>
</view>
<view class="tishi">
温馨提示退款不包含押金使用储值卡下单 时退还储值卡余额
</view>
<view class="name">
补充描述选填
</view>
<view class="buchong">
<textarea value="" placeholder="请输入补充描述,将会反馈给用户" />
</view>
<view class="anniu" @click="btncl">
<view class="but">
确定处理
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
bgc: {
backgroundColor: "#fff",
},
tabindex:0
}
},
onLoad() {
},
methods: {
//
btncl(){
},
//
btntab(num){
this.tabindex = num
}
}
}
</script>
<style lang="scss">
/deep/ .u-iconfont,
/deep/ .u-title{
padding-bottom: 20rpx;
}
.anniu{
position: fixed;
left: 0;
bottom: 0;
width: 750rpx;
height: 152rpx;
background: #FFFFFF;
box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0,0,0,0.3);
border-radius: 0rpx 0rpx 0rpx 0rpx;
padding-top: 24rpx;
box-sizing: border-box;
.but{
width: 680rpx;
height: 104rpx;
background: #48893B;
font-weight: 600;
font-size: 36rpx;
color: #FFFFFF;
text-align: center;
line-height: 104rpx;
margin: auto;
border-radius: 30rpx;
}
}
.buchong{
width: 750rpx;
height: 224rpx;
overflow: scroll;
background: #FFFFFF;
margin-top: 34rpx;
padding: 0 36rpx;
padding-top: 34rpx;
padding-bottom: 30rpx;
box-sizing: border-box;
textarea{
width: 100%;
height: 100%;
}
}
.jine{
width: 750rpx;
height: 200rpx;
background: #FFFFFF;
margin-top: 34rpx;
.zongjia{
padding: 0 36rpx;
box-sizing: border-box;
display: flex;
justify-content: space-between;
align-items: center;
height: 100rpx;
line-height: 100rpx;
view{
display: flex;
align-items: center;
input{
text-align: right;
margin-right: 10rpx;
}
}
}
}
.xuanze{
width: 750rpx;
height: 254rpx;
background: #FFFFFF;
margin-top: 34rpx;
.burenke{
height: 100rpx !important;
line-height: 100rpx !important;
border-top: 1rpx solid #D8D8D8;
}
.burenke,
.renke{
width: 100%;
height: 154rpx;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 36rpx;
box-sizing: border-box;
.lt{
.one{
font-size: 30rpx;
color: #3D3D3D;
}
.two{
font-size: 26rpx;
color: #7C7C7C;
margin-top: 16rpx;
}
}
.rt{
image{
width: 60rpx;
height: 44rpx;
}
}
}
}
.name{
font-size: 30rpx;
color: #3D3D3D;
margin-top: 36rpx;
padding: 0 36rpx;
box-sizing: border-box;
}
.tishi{
margin-top: 44rpx;
padding: 0 50rpx;
box-sizing: border-box;
font-weight: 600;
font-size: 32rpx;
color: #FF1818;
}
page {
background: #F6F6F6;
}
</style>

View File

@ -1,293 +0,0 @@
<template>
<view class="page">
<u-navbar title="订单反馈详情" :border-bottom="false" :background="bgc" back-icon-color="#262B37" title-color='#262B37'
title-size='36' height='50' id="navbar">
</u-navbar>
<view class="storedxx">
<view class="name">
<view class="">
反馈单号:51451645164
</view>
<view class="chuli">
<text></text> 待处理
</view>
</view>
<view class="xx">
<view class="one">
门店名称
</view>
<view class="two">
福鼎-西湖店
</view>
</view>
<view class="xx">
<view class="one">
订单金额
</view>
<view class="two">
50.00
</view>
</view>
<view class="xx">
<view class="one">
支付方式
</view>
<view class="two">
微信支付
</view>
</view>
<view class="xx">
<view class="one">
退还金额
</view>
<view class="two">
--原路返回
</view>
</view>
</view>
<view class="orderxx">
<view class="bd">
<view class="one">
申请金额
</view>
<view class="two">
50.00
</view>
</view>
<view class="bd">
<view class="one">
退款原因
</view>
<view class="two">
--
</view>
</view><view class="bd">
<view class="one">
反馈人
</view>
<view class="two">
12345678912
</view>
</view>
<view class="bd">
<view class="one">
反馈时间
</view>
<view class="two">
2024-12-07 15:22:30
</view>
</view>
</view>
<view class="tishi">
温馨提示退款不包含押金使用储值卡下单 时退还储值卡余额
</view>
<view class="orderxx" style="margin-top: 44rpx;">
<view class="bd">
<view class="one">
退款状态
</view>
<view class="two">
同意退款
</view>
</view>
<view class="bd">
<view class="one">
在线退款金额
</view>
<view class="two">
50.00
</view>
</view>
<view class="bd">
<view class="one">
退款状态
</view>
<view class="two">
已处理
</view>
</view>
<view class="bd">
<view class="one">
退款发起时间
</view>
<view class="two">
2024-12-07 15:22:30
</view>
</view>
<view class="bd">
<view class="one">
退款完成时间
</view>
<view class="two">
2024-12-07 15:22:30
</view>
</view>
</view>
<view class="anniu" @click="btnfk">
<view class="but">
处理
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
bgc: {
backgroundColor: "#fff",
},
maskflag:false
}
},
onLoad() {
},
methods: {
// 退
btntk(){
this.maskflag = true
},
//
btnfk(){
uni.navigateTo({
url:'/page_moban/tuikuanfk'
})
}
}
}
</script>
<style lang="scss">
/deep/ .u-iconfont,
/deep/ .u-title{
padding-bottom: 20rpx;
}
.anniu{
position: fixed;
left: 0;
bottom: 0;
width: 750rpx;
height: 152rpx;
background: #FFFFFF;
box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0,0,0,0.3);
border-radius: 0rpx 0rpx 0rpx 0rpx;
padding-top: 24rpx;
box-sizing: border-box;
.but{
width: 680rpx;
height: 104rpx;
background: #48893B;
font-weight: 600;
font-size: 36rpx;
color: #FFFFFF;
text-align: center;
line-height: 104rpx;
margin: auto;
border-radius: 30rpx;
}
}
.tishi{
margin-top: 44rpx;
padding: 0 50rpx;
box-sizing: border-box;
font-weight: 600;
font-size: 32rpx;
color: #FF1818;
}
.orderxx{
width: 680rpx;
max-height: 682rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
margin: auto;
margin-top: 22rpx;
padding: 30rpx 48rpx;
box-sizing: border-box;
.bd{
display: flex;
justify-content: space-between;
margin-bottom: 20rpx;
.one{
font-size: 28rpx;
color: #7C7C7C;
}
.two{
font-size: 28rpx;
color: #3D3D3D;
}
}
}
.storedxx{
width: 680rpx;
max-height: 402rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
margin: auto;
margin-top: 22rpx;
padding: 30rpx 32rpx;
box-sizing: border-box;
.name{
font-weight: 600;
font-size: 36rpx;
color: #3D3D3D;
padding-bottom: 22rpx;
box-sizing: border-box;
border-bottom: 1px solid #D8D8D8;
display: flex;
justify-content: space-between;
.chuli{
font-size: 28rpx;
color: #FC902A;
display: flex;
align-items: center;
text{
width: 10rpx;
height: 10rpx;
border-radius: 50%;
background-color: #FC902A;
margin-right: 10rpx;
}
}
}
.bot{
border-top: 1px solid #D8D8D8;
margin-top: 22rpx;
padding-top: 20rpx;
box-sizing: border-box;
display: flex;
justify-content: space-between;
align-items: center;
.price{
font-size: 28rpx;
color: #7C7C7C;
text{
color: #3D3D3D;
font-weight: 6000;
font-size: 40rpx;
}
}
}
.xx{
display: flex;
justify-content: space-between;
margin-top: 22rpx;
.one{
font-size: 28rpx;
color: #7C7C7C;
}
.two{
font-size: 28rpx;
color: #3D3D3D;
}
}
}
page {
background: #F6F6F6;
}
</style>

View File

@ -10,7 +10,7 @@
名称
</view>
<view class="rt">
<input type="text" v-model="roomName" placeholder="请输入房间名称"/> <image src="https://api.ccttiot.com/smartmeter/img/static/uCta8cp7uXd1lGjZS6sc" mode=""></image>
<input type="text" v-model="roomName" placeholder="请输入名称"/> <image src="https://api.ccttiot.com/smartmeter/img/static/uCta8cp7uXd1lGjZS6sc" mode=""></image>
</view>
</view>
<view class="name" style="border: none;" v-if="type2 == 1">

View File

@ -34,7 +34,7 @@
今日订单
</view>
<view class="xia">
<text>29</text>
<text>{{item.todayOrderNum == null ? 0 : item.todayOrderNum}}</text>
</view>
</view>
<view class="one">
@ -42,15 +42,15 @@
今日收入
</view>
<view class="xia">
<text>1078</text>
<text>{{item.todayIncome == null ? 0 : item.todayIncome}}</text>
</view>
</view>
<view class="one">
<view class="shang">
上月收入
收入
</view>
<view class="xia">
<text>5891</text>
<text>{{item.totalIncome == null ? 0 : item.totalIncome}}</text>
</view>
</view>
<view class="one">
@ -58,7 +58,7 @@
设备状态
</view>
<view class="xia">
<text style="color: #48893B;">0/</text><text>0</text>
<text style="color: #48893B;"></text><text>{{item.totalDeviceNum == null ? 0 : item.totalDeviceNum}}</text>
</view>
</view>
</view>

View File

@ -8,7 +8,10 @@
<view class="wz">门店名称</view> <view class=""><input type="text" v-model="name" placeholder="请输入门店名称"/> </view>
</view>
<view class="one">
<view class="wz">门店类型</view> <view class="" @click="showlx = true">{{lxname}} <u-icon style="margin-left: 10rpx;" name="arrow-down" color="#808080" size="28"></u-icon> </view>
<view class="wz">门店类型</view>
<view class="xz">
<view v-for="(item,index) in tablist" @click="btnlxxz(item,index)" :class="{ 'active': isSelecteds(index) }">{{item}}</view>
</view>
</view>
<view class="one">
<view class="wz">营业时间</view>
@ -120,7 +123,9 @@
],
lxname:'请选择类型',
lxid:'',
storeId:''
storeId:'',
tabseled:[],
tablist:['茶室','棋牌','台球'],
}
},
onLoad(option) {
@ -151,13 +156,9 @@
this.ksyy = res.data.businessTimeStart
this.jsyy = res.data.businessTimeEnd
this.lxid = res.data.type
if(this.lxid == 1){
this.lxname = '茶室'
}else if(this.lxid == 2){
this.lxname = '棋牌'
}else if(this.lxid == 3){
this.lxname = '台球'
}
this.tabseled = res.data.typeTags.map(item =>{{
return item - 1
}})
if(res.data.pictures != ''){
this.imglist = res.data.pictures
}
@ -211,6 +212,9 @@
let ss_store_tags = arr.filter(item => {
return item !== null && !isNaN(item)
})
let arrs = this.tabseled.map(item =>{
return item + 1
})
console.log(ss_store_tags)
let data = {
storeId:this.storeId,
@ -223,6 +227,7 @@
businessTimeStart:this.ksyy,
businessTimeEnd:this.jsyy,
picture:picture,
typeTags:arrs,
type:this.lxid,
tags:ss_store_tags
}
@ -263,6 +268,20 @@
console.log(index,this.selectedIndices);
return this.selectedIndices.includes(index);
},
//
btnlxxz(dictValue,index) {
const indexExists = this.tabseled.includes(index);
if (indexExists) {
this.tabseled = this.tabseled.filter(i => i !== index);
} else {
this.tabseled.push(index);
}
console.log(this.tabseled);
},
isSelecteds(index) {
return this.tabseled.includes(index);
},
//
getImage() {
if(this.imglist.length >= 5){
@ -510,6 +529,18 @@
.wz{
color: #3D3D3D;
}
.xz{
display: flex;
justify-content: space-between;
view{
padding: 6rpx;
width: 80rpx;
text-align: center;
border: 1px solid #48893B;
color: #48893B;
margin-left: 10rpx;
}
}
input{
text-align: right;
}

View File

@ -199,7 +199,7 @@
//
btnprice(){
uni.navigateTo({
url:'/page_moban/pricemoben'
url:'/page_shanghu/pricemoben'
})
},
//

View File

@ -8,7 +8,11 @@
<view class="wz">门店名称</view> <view class=""><input type="text" v-model="name" placeholder="请输入门店名称"/> </view>
</view>
<view class="one">
<view class="wz">门店类型</view> <view class="" @click="showlx = true">{{lxname}} <u-icon style="margin-left: 10rpx;" name="arrow-down" color="#808080" size="28"></u-icon> </view>
<view class="wz">门店类型</view>
<!-- <view class="" @click="showlx = true">{{lxname}} <u-icon style="margin-left: 10rpx;" name="arrow-down" color="#808080" size="28"></u-icon> -->
<view class="xz">
<view v-for="(item,index) in tablist" @click="btnlxxz(item,index)" :class="{ 'active': isSelecteds(index) }">{{item}}</view>
</view>
</view>
<view class="one">
<view class="wz">营业时间</view>
@ -118,7 +122,9 @@
},
],
lxname:'请选择类型',
lxid:''
lxid:'',
tablist:['茶室','棋牌','台球'],
tabseled:[]
}
},
onLoad() {
@ -139,6 +145,9 @@
let arr = this.selectedIndices.map(item => {
return item + 1
})
let arrs = this.tabseled.map(item =>{
return item + 1
})
// console.log(arr);
let ss_store_tags = arr
let data = {
@ -152,6 +161,7 @@
businessTimeEnd:this.jsyy,
picture:picture,
type:this.lxid,
typeTags:arrs,
tags:ss_store_tags
}
this.$u.post("/app/store",data).then((res) => {
@ -180,15 +190,27 @@
},
//
btnbq(dictValue,index) {
const indexExists = this.selectedIndices.includes(index);
const indexExists = this.selectedIndices.includes(index)
if (indexExists) {
this.selectedIndices = this.selectedIndices.filter(i => i !== index);
this.selectedIndices = this.selectedIndices.filter(i => i !== index)
} else {
this.selectedIndices.push(index);
this.selectedIndices.push(index)
}
},
isSelected(index) {
return this.selectedIndices.includes(index);
return this.selectedIndices.includes(index)
},
//
btnlxxz(dictValue,index) {
const indexExists = this.tabseled.includes(index)
if (indexExists) {
this.tabseled = this.tabseled.filter(i => i !== index)
} else {
this.tabseled.push(index)
}
},
isSelecteds(index) {
return this.tabseled.includes(index)
},
//
getImage() {
@ -202,7 +224,7 @@
count: 1,
success: (rst) => {
this.url = rst.tempFilePaths[0]
console.log(this.url);
console.log(this.url)
}
})
}
@ -224,13 +246,13 @@
let str = JSON.parse(res.data)
_this.userImgs = 'https://lxnapi.ccttiot.com/' + str.key
_this.imglist.push(_this.userImgs)
console.log(_this.imglist);
console.log(_this.imglist)
}
})
},
oncancel() {
// url
this.url = "";
this.url = ""
},
//
btnweizhi(){
@ -423,6 +445,18 @@
.wz{
color: #3D3D3D;
}
.xz{
display: flex;
justify-content: space-between;
view{
padding: 6rpx;
width: 80rpx;
text-align: center;
border: 1px solid #48893B;
color: #48893B;
margin-left: 10rpx;
}
}
input{
text-align: right;
}

View File

@ -12,46 +12,52 @@
{{user.userName == null ? '--' : user.userName}}
</view>
</view>
<view class="mytel">
<!-- <view class="mytel">
{{user.phonenumber == null ? '--' : user.phonenumber}}
</view>
</view> -->
</view>
</view>
</view>
<!-- 余额 -->
<view class="yue">
<view class="yue" @click="btntx">
<!-- 背景图 -->
<image class="bj" src="https://api.ccttiot.com/smartmeter/img/static/uBI9zEccGouxpFhrjj5L" mode=""></image>
<view class="zhye">
账户余额
</view>
<view class="yuan">
{{user.balance == null ? '0' : user.balance}}
{{user.balance == null ? '0' : user.balance}}
</view>
<view class="leiji">
<view class="one">
累计提现{{user.totalWithdrawAmount == null ? '--' : user.totalWithdrawAmount}}
</view>
<view class="two" @click="btntx">
<view class="two">
立即提现
</view>
</view>
</view>
<view class="zhangdan" @click="btnzd">
<view class="one">
账单
</view>
<u-icon name="arrow-right" color="#3D3D3D" size="28"></u-icon>
</view>
<!-- 更多功能 -->
<view class="gongneng">
<view class="gongneng_tit">
管理与服务
</view>
<view class="gn_list">
<!-- <view class="list_val">
<view class="list_val" @click="btnshoukuan">
<view class="lt">
<image src="https://api.ccttiot.com/smartmeter/img/static/uNB0gtTaIXAOR2NUEtVD" mode=""></image> <text>收款账户</text>
<image src="https://api.ccttiot.com/smartmeter/img/static/uNB0gtTaIXAOR2NUEtVD" mode=""></image> <text>更换收款二维码</text>
</view>
<view class="rt">
<u-icon name="arrow-right" color="#3D3D3D" size="28"></u-icon>
</view>
</view> -->
</view>
<!-- <view class="list_val" @click="btnhhr">
<view class="lt">
<image src="https://api.ccttiot.com/smartmeter/img/static/urBjYFve4o3hKteeFkRj" mode=""></image> <text>合伙人管理</text>
@ -105,7 +111,8 @@
bgc: {
backgroundColor: "",
},
user:{}
user:{},
qudaolist:[]
}
},
onLoad() {
@ -115,18 +122,39 @@
this.getinfo()
},
methods: {
//
btnzd(){
uni.navigateTo({
url:'/page_fenbaotwo/zhangdan'
})
},
//
getinfo(){
this.$u.get(`/getAppInfo`).then(res => {
if (res.code == 200) {
this.user = res.user
this.$u.get(`/app/withdraw/getUserWithdrawChannelList?userId=${res.user.userId}`).then(resp => {
if (res.code == 200) {
this.qudaolist = resp.data
}
})
}
})
},
//
btnshoukuan(){
this.qudaolist.forEach(item =>{
if(item.isNeedCode == true){
uni.navigateTo({
url:'/page_fenbaotwo/skzh?collectionCode=' + item.collectionCode + '&userWithdrawChannelId=' + item.userChannelId
})
}
})
},
//
btntx(){
uni.navigateTo({
url:'/page_fenbaotwo/tixian'
url:'/page_fenbaotwo/tixian?userId=' + this.user.userId
})
},
//
@ -172,8 +200,18 @@
padding-bottom: 15rpx;
}
/deep/ .u-icon__icon {
padding-bottom: 15rpx;
.zhangdan{
display: flex;
justify-content: space-between;
width: 658rpx;
height: 90rpx;
line-height: 90rpx;
margin-top: 40rpx;
background-color: #fff;
border-radius: 20rpx;
padding: 0 36rpx;
box-sizing: border-box;
font-size: 32rpx;
}
.imgbj {
width: 750rpx;

View File

@ -233,6 +233,7 @@
},
//
btnsbs() {
console.log(111);
uni.scanCode({
onlyFromCamera: true,
scanType: ['qrCode'],
@ -264,17 +265,17 @@
success: function(res) {
if (res.confirm) {
that.$u.put("/app/device/bind", data).then(res => {
if (res.code == 200) {
uni.showToast({
title: '绑定成功',
icon: 'success',
duration: 2000
})
that.pagesum = 1
this.list = []
that.getsb()
}
})
if (res.code == 200) {
uni.showToast({
title: '绑定成功',
icon: 'success',
duration: 2000
})
that.pagesum = 1
this.list = []
that.getsb()
}
})
}
}
})

View File

@ -1,60 +1,56 @@
<template>
<view class="page" >
<u-navbar :is-back="false" title="运营" :border-bottom="false" back-icon-color="000" :background="bgc"
title-color='#000' title-size='36' height='40' id="navbar">
</u-navbar>
<tab-bars :indexs='1' style=""></tab-bars>
<image src="https://api.ccttiot.com/smartmeter/img/static/umtXLN0X6kijXgwlI4bg" class="imgbj" mode=""></image>
<view class="box">
<view class="shouru">
<view class="name">
收入统计
</view>
<view class="tongji">
<view class="one">
<view class="bot">
今日收入
</view>
<view class="top">
0
</view>
<view class="bot">
今日订单数
</view>
<view class="top">
0
</view>
</view>
<view class="one">
<view class="bot">
本周收入
</view>
<view class="top">
0
</view>
<view class="bot">
本周订单数
</view>
<view class="top">
0
</view>
</view>
<view class="one">
<view class="bot">
本月收入
</view>
<view class="top">
0
</view>
<view class="bot">
本月订单数
</view>
<view class="top">
0
</view>
</view>
</view>
</view>
<u-navbar :is-back="false" title="运营" :border-bottom="false" :background="bgc" title-color='#fff' @custom-back="btncustom" back-icon-color="#fff"
title-size='36' height='44' id="navbar">
</u-navbar>
<image src="https://api.ccttiot.com/smartmeter/img/static/uAtuf76AiYArdJHLSjhO" class="imgbj" mode=""></image>
<view class="box">
<view class="topding">
<view class="dawz" style="border-right: 1px solid #48893B;">
<view class="shuwz">
{{tjobj.todayIncome == null ? '0.00' : tjobj.todayIncome}}
</view>
<view class="yuwz">
今日营业额/
</view>
</view>
<view class="dawz">
<view class="shuwz">
{{tjobj.todayOrderNum == null ? '0' : tjobj.todayOrderNum}}
</view>
<view class="yuwz">
今日订单/
</view>
</view>
</view>
<view class="shouru">
<view class="tongji">
<view class="one">
<view class="top">
{{tjobj.totalIncome == null ? '0.00' : tjobj.totalIncome}}
</view>
<view class="bot" style="font-size: 24rpx;">
总收入/
</view>
</view>
<view class="one">
<view class="top">
{{tjobj.totalOrderNum == null ? 0 : tjobj.totalOrderNum}}
</view>
<view class="bot" style="font-size: 24rpx;">
总订单/
</view>
</view>
<view class="one">
<view class="top">
{{tjobj.balance == null ? '0.00' : tjobj.balance}}
</view>
<view class="bot" style="font-size: 24rpx;">
账户余额
</view>
</view>
</view>
</view>
<view class="gailan">
<view class="name">
运营概览
@ -64,34 +60,33 @@
经营概况
</view>
<view class="rt">
<view @click="btntab(1)" :class="tabindex == 1 ? 'actives' : ''">
<view @click="btntab(2)" :class="tabindex == 2 ? 'actives' : ''">
近30天
</view>
<view @click="btntab(2)" :class="tabindex == 2 ? 'actives' : ''">
<view @click="btntab(1)" :class="tabindex == 1 ? 'actives' : ''">
7
</view>
</view>
</view>
<view class="zhixian">
<!-- <l-echart class="line-chart" ref="lineChart2"></l-echart> -->
<view class="echarts" style="padding: 20rpx;">
<uni-ec-canvas class="uni-ec-canvas" id="uni-ec-canvas" ref="canvas" canvas-id="uni-ec-canvas" :ec="ec"></uni-ec-canvas>
</view>
<view class="shuom">
<view class="">
<image src="https://api.ccttiot.com/smartmeter/img/static/uk2PaAnt4mMTrYhbM7PY" mode="">
</image>订单营收
<text style="background-color: #B1A5FF;"></text>
订单营收
</view>
<view class="">
<image src="https://api.ccttiot.com/smartmeter/img/static/ubLD9khOF4jiHmD9O9QA" mode="">
</image>订单数
<text style="background-color: #A9D2FF;"></text>
订单数
</view>
</view>
</view>
<view class="bijiao">
<view class="lt" style="border-right: 1px solid #D8D8D8;">
<view class="price">
1359
{{zongprice}}
</view>
<view class="wz">
订单营收()
@ -99,7 +94,7 @@
</view>
<view class="lt" style="padding-left: 34rpx;box-sizing: border-box;">
<view class="price">
1359
{{zongnum}}
</view>
<view class="wz">
订单数()
@ -108,44 +103,46 @@
</view>
</view>
<view class="shebei">
<view class="name">
当前运营情况 <image @click="smflag = !smflag" src="https://api.ccttiot.com/smartmeter/img/static/uvgciot52bbI8bBduvPK" mode=""></image> <text v-if="smflag">使用数/总数</text>
<view class="name" @click="shiyongflag = !shiyongflag">
当前运营情况 <image src="https://api.ccttiot.com/smartmeter/img/static/uZKXk9oAajNnkLiqnLQ9" mode=""></image>
<text v-if="shiyongflag">
使用中/总数
</text>
</view>
<view class="bd">
<view class="one">
<view class="">
设备总数
房间
</view>
<view class="cu">
<text>1/</text> 10
<text style="color: #48893B;">{{tjobj.inUseRoomNum == null ? 0 : tjobj.inUseRoomNum}}</text>/{{tjobj.totalRoomNum == null ? 0 : tjobj.totalRoomNum}}
</view>
</view>
<view class="one">
<view class="">
空闲
大厅设施
</view>
<view class="cu">
<text>1/</text>6
<text style="color: #48893B;">{{tjobj.inUseEquNum == null ? 0 : tjobj.inUseEquNum}}</text>/{{tjobj.totalEquNum == null ? 0 : tjobj.inUseEquNum}}
</view>
</view>
<view class="one" style="border: none;">
<view class="">
租赁中
设备
</view>
<view class="cu">
<text>1/</text>4
<text style="color: #48893B;">{{tjobj.inUseDeviceNum == null ? 0 : tjobj.inUseDeviceNum}}</text>/{{tjobj.totalDeviceNum == null ? 0 : tjobj.totalDeviceNum}}
</view>
</view>
</view>
</view>
</view>
<!-- <tab-bar :indexs='1' style=""></tab-bar> -->
<tab-bars :indexs='1' style=""></tab-bars>
</view>
</template>
<script>
// import * as echarts from '@/components/lime-echart/static/echarts.min.js';
import * as echarts from '@/components/uni-ec-canvas/echarts.js'
let chart = null
export default {
@ -154,11 +151,58 @@
ec: {
lazyLoad: true
},
params: {
year: true,
month: true,
day: true,
hour: false,
minute: false,
second: false
},
recharge: 0,
bgc: {
backgroundColor: "",
},
smflag:false
show: false,
yeartime: {
year: '',
month: '',
day:''
},
yeartimes: {
year: '',
month: '',
day:''
},
timelist: '',
quantity: 0, //
chartData: [],
chartday: [],
loging: true,
deviceId: '',
userType: '',
totalRecharge: 0,
dateday:'',
timelists:'',
monthdui:'',
employId:'',
sceneValue:'',
kstime:'',
jstime:'',
num:'',
tabindex: 1,
smflag:false,
revenuelist:[], //
quantitylist:[], //
shoururiqilist:[], //
tjobj:{},
formattedCurrentDate:'',
formattedThirtyDaysAgo:'',
zongprice:'',
zongnum:'',
userobj:{},
shiyongflag:false,
timeLimit:2
}
},
//
@ -178,70 +222,62 @@
}
},
onLoad(option) {
},
onShow() {
this.timelist = []
setTimeout(() => {
console.log(this.$refs)
this.$refs.canvas.init(this.initChart)
}, 500)
this.recharge = 0
const now = new Date();
this.yeartime = {
year: now.getFullYear(),
month: now.getMonth() + 1, // 0+1
day: 1 //
}
this.kstime = this.yeartime.year + '-' + (this.yeartime.month < 10 ? '0' + this.yeartime.month : this.yeartime.month) + '-' + (this.yeartime.day < 10 ? '0' + this.yeartime.day : this.yeartime.day)
this.yeartimes.year = now.getFullYear()
this.yeartimes.month = now.getMonth() + 1
this.yeartimes.day = now.getDate()
this.jstime = this.yeartimes.year + '-' + (this.yeartimes.month < 10 ? '0' + this.yeartimes.month : this.yeartimes.month) + '-' + (this.yeartimes.day < 10 ? '0' + this.yeartimes.day : this.yeartimes.day)
this.gettime()
this.tabindex = 1
this.shoururiqilist =[]
this.revenuelist =[]
this.quantitylist = []
this.gettimes()
this.gettj()
},
methods: {
//
btntab(num) {
this.tabindex = num
},
//
btnshouye() {
uni.reLaunch({
url: '/pages/shouye/index'
})
},
//
gettimes() {
let data = {
deviceId: this.deviceId,
year: this.yeartime.year,
month: this.yeartime.month,
groupBy: 'create_date'
}
this.loging = false
this.$u.get('/app/device/electric/count', data).then((res) => {
this.$u.get('/appVerify/index').then((res) => {
if (res.code == 200) {
this.timelist = res.data
this.chartData = this.timelist.map(item => item.usedElectriQuantity);
this.chartday = [1,2,3,4,5,6,7,8];
this.loging = true
this.tjobj = res.data
}
})
},
generateWaveData(length) {
const data = []
for (let i = 0; i < length; i++) {
const y = Math.sin((i / (length - 1)) * Math.PI * 2) // y
data.push((y + 1) * 50) // 0-100
}
return data
//
gettj() {
this.$u.get(`/appVerify/getIndexInComeList?timeLimit=${this.tabindex}`).then((res) => {
if (res.code == 200) {
this.zongprice = res.data.totalIncome
this.zongnum = res.data.totalOrderNum
res.data.incomeVoList.reverse().forEach(item => {
this.shoururiqilist.push(item.day.slice(-2) + '日')
this.revenuelist.push(item.orderIncome)
this.quantitylist.push(item.orderNum)
})
console.log('营收',this.revenuelist);
console.log('订单',this.quantitylist);
this.$refs.canvas.init(this.initChart)
}
})
},
//
btntab(num) {
this.tabindex = num
this.shoururiqilist =[]
this.revenuelist =[]
this.quantitylist = []
this.gettj()
},
generateWaveData(length) {
const data = []
for (let i = 0; i < length; i++) {
const y = Math.sin((i / (length - 1)) * Math.PI * 2) // y
data.push((y + 1) * 50) // 0-100
}
return data
},
initChart(canvas, width, height, canvasDpr) {
let that = this
console.log(canvas, width, height, canvasDpr)
const option = {
grid: {
left: 35,
@ -267,7 +303,7 @@
splitLine: {
show: false,
},
data: that.chartday,
data: that.shoururiqilist,
},
yAxis: {
show: true,
@ -296,7 +332,7 @@
symbol: 'none',
lineStyle: {
color: '#E0DBFF',
width: 4,
width: 2,
},
areaStyle: {
normal: {
@ -313,7 +349,7 @@
symbol: 'none',
lineStyle: {
color: '#A9D2FF',
width: 4,
width: 2,
},
areaStyle: {
normal: {
@ -325,14 +361,19 @@
},
data: that.chartData,
}],
tooltip: {
trigger: 'axis',
triggerOn: 'click',
formatter: '时间:{b} \n营收:{c}元\n订单:{c1}单'
},
}
chart = echarts.init(canvas, null, {
width: width,
height: height,
devicePixelRatio: canvasDpr
})
option.series[0].data = [2000,400,1000,800,5000,2000,6000,8000]
option.series[1].data = [104,205,350,510,250,630,720,801]
option.series[0].data = that.revenuelist
option.series[1].data = that.quantitylist
canvas.setChart(chart)
chart.setOption(option)
return chart
@ -348,14 +389,7 @@
/deep/ .u-icon__icon{
padding-bottom: 20rpx;
}
.imgbj{
width: 750rpx;
height: 100vh;
position: fixed;
top: 0;
left: 0;
z-index: -1;
}
.uni-ec-canvas {
width: 100%;
height: 320rpx;
@ -372,18 +406,45 @@
}
page {
background-color: #F7FAFE;
// background-color:#48893B;
}
.actives {
background: #fff !important;
box-shadow: 0rpx 0rpx 4rpx 0rpx rgba(0, 0, 0, 0.15) !important;
}
.topding{
padding: 0 112rpx;
box-sizing: border-box;
display: flex;
.dawz{
width: 50%;
text-align: center;
.shuwz{
font-weight: 600;
font-size: 60rpx;
color: #48893B;
}
.yuwz{
font-size: 28rpx;
color: #7C7C7C;
margin-top: 10rpx;
}
}
}
.box {
width: 100%;
height: 77vh;
overflow: scroll;
}
.imgbj{
width: 100%;
height: 100vh;
position: fixed;
top: 0;
left: 0;
z-index: -1;
}
.shebei{
width: 680rpx;
margin: auto;
@ -394,6 +455,7 @@
color: #3D3D3D;
display: flex;
align-items: center;
height: 54rpx;
text{
width: 184rpx;
height: 54rpx;
@ -432,10 +494,10 @@
.cu{
font-weight: 600;
font-size: 40rpx;
color: #3D3D3D;
color: #3D3D3D;
margin-top: 8rpx;
text{
color: #48893B !important;
color: #48893B;
}
}
}
@ -501,12 +563,17 @@
view {
font-size: 24rpx;
color: #3D3D3D;
image {
width: 76rpx;
height: 18rpx;
margin-right: 10rpx;
}
text{
display: inline-block;
width: 76rpx;
height: 18rpx;
margin-right: 10rpx;
}
// image {
// width: 76rpx;
// height: 18rpx;
// margin-right: 10rpx;
// }
}
}
}
@ -605,10 +672,8 @@
padding-left: 32rpx;
font-size: 40rpx;
color: #fff;
margin-bottom: 30rpx;
padding-top: 104rpx;
height: 200rpx;
background-color: #48893B;
text {
padding-left: 33%;
}

View File

@ -239,6 +239,13 @@
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},{
"path": "pricemoben",
"style": {
"navigationBarTitleText": "上传",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},{
"path": "shebei",
"style": {
@ -454,13 +461,6 @@
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},{
"path": "pricemoben",
"style": {
"navigationBarTitleText": "上传",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},{
"path": "orderlist",
"style": {
@ -475,41 +475,6 @@
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},{
"path": "tuikuan",
"style": {
"navigationBarTitleText": "上传",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},{
"path": "tuikuanxq",
"style": {
"navigationBarTitleText": "上传",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},{
"path": "tuikuanfk",
"style": {
"navigationBarTitleText": "上传",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},{
"path": "chongzhi",
"style": {
"navigationBarTitleText": "上传",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},{
"path": "chongzhixq",
"style": {
"navigationBarTitleText": "上传",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},{
"path": "hehuoren",
"style": {
@ -564,6 +529,20 @@
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},{
"path": "zhangdan",
"style": {
"navigationBarTitleText": "上传",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},{
"path": "skzh",
"style": {
"navigationBarTitleText": "上传",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},{
"path": "bangzhuxq",
"style": {

View File

@ -25,7 +25,7 @@
</view>
</view>
<view class="juwo">
距我{{shopobj.distance == undefined ? '--' : shopobj.distance}}km <text></text>
距我{{distance}}km <text></text>
{{shopobj.address == undefined ? '--' : shopobj.address}}
</view>
@ -81,7 +81,7 @@
@click.stop="btndetail(item)">
<view class="top">
<view class="lt">
<image :src="item.picture" mode="aspectFill"></image>
<image :src="item.pictures[0]" mode="aspectFill"></image>
<view class="" v-if="item.status == 1">
空闲中
</view>
@ -242,11 +242,13 @@
viewType:'',
tit:'',
tabarr:[],
type:''
type:'',
distance:''
}
},
onLoad(option) {
this.tit = option.tit
this.distance = option.distance
if (option.storeId) {
this.storeId = option.storeId
uni.setStorageSync('storeId', this.storeId)
@ -314,13 +316,31 @@
this.$u.get(`/app/room/getTagListByStoreId?storeId=${this.storeId}`).then(res => {
if (res.code == 200) {
this.tabarr = res.data
if(this.tabarr[0].type){
if(this.tabarr.length > 0){
this.type = this.tabarr[0].type
}else{
this.type = ''
}
this.getstoredetail()
console.log(this.tabarr);
console.log(this.tabarr)
}
})
},
//
getstoredetail() {
this.reservationStatus = {}
let data = {
type: this.type
}
this.$u.get(`/app/store/${this.storeId}`, data).then(res => {
if (res.code == 200) {
this.shopobj = res.data
if (res.data.pictures != null) {
this.list = res.data.pictures
}
this.roomList = res.data.roomList //
this.initializeData() //this.roomlist
this.updateRoomReservationStatus()
}
})
},
@ -447,7 +467,7 @@
let formattedDateString = `${hours}:${minutes}:${seconds}`
hourPoints.push(formattedDateString)
}
return hourPoints;
return hourPoints
},
//
getorder() {
@ -589,7 +609,7 @@
onlyFromCamera: true,
scanType: ['qrCode'],
success: res => {
console.log(res);
console.log(res)
},
fail: err => {
console.error('扫描失败:', err)
@ -602,27 +622,7 @@
}
},
//
getstoredetail() {
this.reservationStatus = {}
let data = {
type: this.type
}
this.$u.get(`/app/store/${this.storeId}`, data).then(res => {
if (res.code == 200) {
this.shopobj = res.data
if (res.data.picture != null) {
let pictureArray = res.data.picture.split(',')
this.list = pictureArray.map(pictureUrl => ({
image: pictureUrl
}))
}
this.roomList = res.data.roomList //
this.initializeData() //this.roomlist
this.updateRoomReservationStatus()
}
})
},
//

View File

@ -50,7 +50,7 @@
{{item.name == undefined ? '--' : item.name}}
</view>
<view class="dizhi">
{{item.address == undefined ? '--' : item.address}}
{{item.address.length > 13 ? item.address.slice(0,13) + '...' : item.address}}
</view>
<view class="storebq">
<image v-if="item.type == 1" src="https://api.ccttiot.com/smartmeter/img/static/u7ilmXTNlXUbbvfSgOa1" mode=""></image>
@ -393,7 +393,7 @@
this.listshop = res.rows
this.qingqiuflag = true
}
console.log(this.listshop);
console.log(this.listshop)
}
})
},
@ -445,20 +445,20 @@
},
fail: err => {
// err
console.log('getLocation err:', err);
console.log('getLocation err:', err)
}
})
},
//
onTouchStart(e) {
this.imgflag = false
this.touchStartX = e.touches[0].clientX;
this.touchStartY = e.touches[0].clientY;
this.touchStartX = e.touches[0].clientX
this.touchStartY = e.touches[0].clientY
},
//
onTouchEnd(e) {
this.imgflag = true
let deltaX = e.changedTouches[0].clientX - this.touchStartX;
let deltaX = e.changedTouches[0].clientX - this.touchStartX
let deltaY = e.changedTouches[0].clientY - this.touchStartY;
if (Math.abs(deltaX) > 50 && Math.abs(deltaX) > Math.abs(deltaY)) {
if (deltaX >= 0) {
@ -470,7 +470,7 @@
if (deltaY < 100) {
if(this.qingqiuflag == true){
let sum = (this.pagesum - 1) * this.pagesize
console.log(sum,this.total);
console.log(sum,this.total)
if (this.total > sum) {
this.qingqiuflag = false
this.getshop()
@ -488,7 +488,7 @@
//
btndetail(storeId,item){
uni.reLaunch({
url:'/pages/index/index?storeId=' + storeId + '&tit=' + item.name
url:'/pages/index/index?storeId=' + storeId + '&tit=' + item.name + '&distance=' + item.distance
})
},
//