开关
This commit is contained in:
parent
aec896e882
commit
d96b457f36
|
@ -19,8 +19,8 @@ const install = (Vue, vm) => {
|
|||
// },
|
||||
// });
|
||||
Vue.prototype.$u.http.setConfig({
|
||||
// baseUrl: 'http://192.168.2.27:10002',
|
||||
baseUrl: 'https://kg.chuangtewl.com/prod-api',
|
||||
baseUrl: 'http://192.168.2.27:10002',
|
||||
// baseUrl: 'https://kg.chuangtewl.com/prod-api',
|
||||
// loadingText: '加载中...',
|
||||
// loadingTime: 1000,
|
||||
// 设置自定义头部content-type
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 检测蓝牙未开启 -->
|
||||
<view class="shibai" v-if="lanyaflag">
|
||||
<view class="top">
|
||||
|
@ -84,7 +83,6 @@
|
|||
<text v-if="item.feeType == 1">{{item.value}}<text v-if="item.timeUnit == 2">时</text> <text v-if="item.timeUnit == 3">分钟</text> <text v-if="item.timeUnit == 4">秒</text> {{item.price}}元</text>
|
||||
<text v-if="item.feeType == 2">{{item.value}}度{{item.price}}元</text>
|
||||
<text v-if="item.feeMode == 2">预存{{item.deposit}}元</text>
|
||||
|
||||
</view>
|
||||
<view class="" style="margin-top: 10rpx;color: #8883F0;font-size: 28rpx;" v-if="item.feeMode == 2">
|
||||
完成订单后押金将自动退还
|
||||
|
@ -113,13 +111,35 @@
|
|||
<view class="" style="margin-top: 10rpx;">
|
||||
套餐说明:{{item.description == null ? '无' : item.description}}
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view v-if="deviceobj.suitList == null || deviceobj.suitList.length == 0" class="" style="color: #ccc;font-size: 36rpx;">
|
||||
该设备暂无套餐...
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="fee_box" @click="btngoumai" v-if="huiyuanlistflag">
|
||||
<view class="auto_box">
|
||||
<view class="auto_li" v-for="(item,index) in huiyuanlist" :key="index">
|
||||
<view class="txt1">
|
||||
{{item.name == null ? '--' : item.name}}
|
||||
</view>
|
||||
<view class="txt1">
|
||||
{{item.price == null ? '--' :item.price}}元
|
||||
</view>
|
||||
<view class="txt2">
|
||||
每单享{{item.discount == item.discount}}折
|
||||
</view>
|
||||
<view class="buy_btn">
|
||||
前去购买
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="youhui" @click="huiyuanflag = true">
|
||||
<view style="color: #666;">{{vipLevelName}}</view>
|
||||
<view class="yh">
|
||||
<text class="yi">已优惠{{discountAmount}}元</text> <u-icon name="arrow-right" color="rgb(128, 128, 128)" size="28"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tongyi" v-if="deviceobj.suitList != null">
|
||||
<u-checkbox-group>
|
||||
<u-checkbox v-model="checked" @change="checkboxChange" active-color="#8883F0 ">我已同意
|
||||
|
@ -134,8 +154,6 @@
|
|||
</view>
|
||||
</view>
|
||||
<view class="mask" v-if="zhifuflag"></view>
|
||||
<!-- <view class="mask" v-if="czflag"></view> -->
|
||||
|
||||
<view class="czdh" v-if="jzflag">
|
||||
<view class="bj">
|
||||
<view class="tittop">
|
||||
|
@ -146,9 +164,7 @@
|
|||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
<!-- 防诈骗提示 -->
|
||||
<view class="fangswindle" v-if="swindleflag">
|
||||
<image src="https://api.ccttiot.com/smartmeter/img/static/uvJcZhPixU1trBud6xTa" mode="aspectFit"></image>
|
||||
|
@ -158,7 +174,6 @@
|
|||
</view>
|
||||
<view v-if="swindleflag" class="" style="width: 100%;height: 100vh;position: fixed;top: 0;left: 0;background-color: #000;opacity: .5;z-index: 98;"></view>
|
||||
<view class="mask" v-if="masksss"></view>
|
||||
|
||||
<!-- 服务协议弹框 -->
|
||||
<view class="fuwutc" v-if="yinsiflag">
|
||||
<view class="wenxin">
|
||||
|
@ -180,7 +195,22 @@
|
|||
</view>
|
||||
</view>
|
||||
<view class="mask" v-if="yinsiflag"></view>
|
||||
|
||||
<!-- 选择会员卡弹窗 -->
|
||||
<view class="huiyuantc" v-if="huiyuanflag">
|
||||
<view class="cha" @click="huiyuanflag = false">
|
||||
×
|
||||
</view>
|
||||
<view class="" style="width: 100%;text-align: center;font-size: 32rpx;font-weight: 600;">
|
||||
我的会员
|
||||
</view>
|
||||
<view class="vip_box1" v-for="(item,index) in storelist" :key="index" @click="btnxzhuiyuan(item)">
|
||||
<view class="txt1">{{item.vipLevelName}}</view>
|
||||
<view class="txt2">会员将在{{item.endTime.slice(0,10)}}后到期,剩余次数/{{item.surplusCount}}次</view>
|
||||
<view class="btn">
|
||||
使用
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
@ -238,7 +268,16 @@
|
|||
hasCalledGetczlyss:false,
|
||||
arrlists:[],
|
||||
imglanya:'https://api.ccttiot.com/smartmeter/img/static/ulbuqIwcbhuCYGHZPAiL',
|
||||
ver_dataflag:2
|
||||
ver_dataflag:2,
|
||||
huiyuanflag:false,
|
||||
huiyuanlist:[],
|
||||
huiyuanlistflag:false,
|
||||
storelist:[],
|
||||
huiyuanid:'',
|
||||
vipLevelName:'',
|
||||
payPrice:'',
|
||||
discountAmount:'',
|
||||
zhekou:''
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
|
@ -338,6 +377,12 @@
|
|||
})
|
||||
},
|
||||
methods: {
|
||||
// 点击购买会员
|
||||
btngoumai(){
|
||||
uni.navigateTo({
|
||||
url:'/page_geren/index?storeId=' + this.deviceobj.storeId
|
||||
})
|
||||
},
|
||||
// 获取自身位置从而获得附近店铺
|
||||
getMyLocation() {
|
||||
uni.getLocation({
|
||||
|
@ -363,6 +408,12 @@
|
|||
this.suitGearTime = item.gearTime
|
||||
this.suitFeeMode = item.feeMode
|
||||
this.suitFeeType = item.feeType
|
||||
this.$u.get(`/app/bill/recharge/prePayPrice?vipId=${this.huiyuanid}&suitId=${this.zfobj.suitId}`).then(res => {
|
||||
if(res.code == 200){
|
||||
this.discountAmount = res.data.discountAmount //优惠的钱
|
||||
this.payPrice = res.data.payPrice //实际支付的钱
|
||||
}
|
||||
})
|
||||
if(item.feeMode == 2 && ['1','2'].includes(item.feeType)){
|
||||
let sum = item.deposit / item.price
|
||||
if(item.timeUnit == 1){
|
||||
|
@ -392,15 +443,14 @@
|
|||
this.swindleflag = false
|
||||
if(this.onlineStatus == 0){
|
||||
if(this.ver_data == ''){
|
||||
// uni.showLoading({
|
||||
// title: '蓝牙连接中'
|
||||
// })
|
||||
|
||||
}else{
|
||||
this.ver_dataflag = 3
|
||||
uni.hideLoading()
|
||||
}
|
||||
}
|
||||
},
|
||||
// 获取支付渠道
|
||||
getzfqd(){
|
||||
this.$u.get(`/app/channel/recharge/enabledList?mchId=` + this.deviceobj.userId).then(res =>{
|
||||
if(res.code == 200){
|
||||
|
@ -408,11 +458,6 @@
|
|||
uni.hideLoading()
|
||||
}else{
|
||||
uni.hideLoading()
|
||||
// uni.showToast({
|
||||
// title:res.msg,
|
||||
// icon: 'none',
|
||||
// duration:2000
|
||||
// })
|
||||
}
|
||||
})
|
||||
},
|
||||
|
@ -533,7 +578,6 @@
|
|||
}
|
||||
})
|
||||
},
|
||||
|
||||
//
|
||||
btnyinsi(){
|
||||
uni.navigateTo({
|
||||
|
@ -545,7 +589,6 @@
|
|||
url: '/page_fenbao/statulist/about/index?tit=' + '用户服务协议'
|
||||
})
|
||||
},
|
||||
|
||||
gettrue() {
|
||||
this.$u.get("/app/device/isBind?deviceNo=" + this.id).then((res) => {
|
||||
if (res.data == 0 || res.data == 1) {
|
||||
|
@ -558,7 +601,7 @@
|
|||
getuserinfo() {
|
||||
this.$u.get("/app/user/userInfo").then((res) => {
|
||||
if (res.code == 200) {
|
||||
// this.gettrue()
|
||||
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: '/pages/login/login?id=' + 1
|
||||
|
@ -566,12 +609,64 @@
|
|||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 拿到店铺id获取会员
|
||||
huiyuan(){
|
||||
this.$u.get(`/app/vipLevel/list?pageNum=1&pageSize=999&storeId=${this.deviceobj.storeId}`).then(res => {
|
||||
if(res.code == 200){
|
||||
this.huiyuanlist = res.rows
|
||||
if(res.rows == null || res.rows.length == 0){
|
||||
this.huiyuanlistflag = false
|
||||
}else{
|
||||
this.huiyuanlistflag = true
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
// 拿到店铺id查询本人在店铺可用的折扣最低的会员
|
||||
zuidihuiyuan(){
|
||||
this.$u.get(`/app/vip/availableMinDiscount?storeId=${this.deviceobj.storeId}`).then(res => {
|
||||
if(res.code == 200){
|
||||
this.vipLevelName = res.data.vipLevelName
|
||||
this.huiyuanid = res.data.id
|
||||
this.zhekou = res.data.discount
|
||||
// 计算优惠的钱
|
||||
this.$u.get(`/app/bill/recharge/prePayPrice?vipId=${this.huiyuanid}&suitId=${this.zfobj.suitId}`).then(res => {
|
||||
if(res.code == 200){
|
||||
this.discountAmount = res.data.discountAmount //优惠的钱
|
||||
this.payPrice = res.data.payPrice //实际支付的钱
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
// 根据店铺id获取自己的会员
|
||||
myhuiyuan(){
|
||||
this.$u.get(`/app/vip/list?pageNum=1&pageSize=99&orderByColumn=createTime&isAsc=desc&inValid=true&storeId=${this.deviceobj.storeId}`).then(res => {
|
||||
if(res.code == 200){
|
||||
this.storelist = res.rows
|
||||
}
|
||||
})
|
||||
},
|
||||
// 点击选择其他会员
|
||||
btnxzhuiyuan(item){
|
||||
this.huiyuanid = item.id //会员id
|
||||
this.vipLevelName = item.vipLevelName //会员名称
|
||||
this.zhekou = item.discount //会员折扣
|
||||
// 选择其他会员重新计算优惠金额
|
||||
this.$u.get(`/app/bill/recharge/prePayPrice?vipId=${this.huiyuanid}&suitId=${this.zfobj.suitId}`).then(res => {
|
||||
if(res.code == 200){
|
||||
this.huiyuanflag = false
|
||||
this.discountAmount = res.data.discountAmount //优惠的钱
|
||||
this.payPrice = res.data.payPrice //实际支付的钱
|
||||
}
|
||||
})
|
||||
},
|
||||
// 根据this.id获取信息
|
||||
gettaoc() {
|
||||
this.$u.get(`/app/device/${this.id}/withSuitList`).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.deviceobj = res.data
|
||||
this.getzfqd()
|
||||
this.getzfqd() //调用获取支付渠道
|
||||
// 判断该设备有没有套餐
|
||||
if(this.deviceobj.suitList.length == 0 || this.deviceobj.suitList == ''){
|
||||
this.swindleflag = false
|
||||
|
@ -603,6 +698,11 @@
|
|||
}
|
||||
}else{
|
||||
this.btnactive(this.deviceobj.suitList[0]) //有套餐默认选择第一个
|
||||
if(this.deviceobj.storeId != null){ //判断有无店铺 进行会员查询操作
|
||||
this.huiyuan()
|
||||
this.zuidihuiyuan()
|
||||
this.myhuiyuan()
|
||||
}
|
||||
}
|
||||
this.zfobj = res.data.suitList[0]
|
||||
let targetDateStr = this.deviceobj.expireTime
|
||||
|
@ -643,6 +743,7 @@
|
|||
suit.arr = arr
|
||||
})
|
||||
},
|
||||
// 点击立即支付
|
||||
btnzhifu() {
|
||||
if((this.phonenumber == '' || this.phonenumber == null) && this.mchShowBillMobile == true){
|
||||
console.log(this.phonenumber,this.mchShowBillMobile)
|
||||
|
@ -661,30 +762,11 @@
|
|||
content: '蓝牙连接中,请尽量靠近设备!',
|
||||
showCancel: false,
|
||||
success: function(res) {
|
||||
// if (res.confirm) {
|
||||
// that.ver_data = ''
|
||||
// that.ver_dataflag = 2
|
||||
// that.getzhifu()
|
||||
// } else if (res.cancel) {
|
||||
// console.log('取消')
|
||||
// }
|
||||
|
||||
}
|
||||
})
|
||||
}else if(this.checked == false) {
|
||||
this.yinsiflag = true
|
||||
// let that = this
|
||||
// uni.showModal({
|
||||
// title: '温馨提示',
|
||||
// content: '是否同意《用户服务协议》及《隐私政策》?',
|
||||
// showCancel: true,
|
||||
// success: function(res) {
|
||||
// if (res.confirm) {
|
||||
|
||||
// } else if (res.cancel) {
|
||||
// console.log('取消'); // 用户点击取消
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
} else{
|
||||
this.getzhifu()
|
||||
}
|
||||
|
@ -722,7 +804,7 @@
|
|||
let data = {
|
||||
deviceNo: that.id,
|
||||
suitId: that.zfobj.suitId,
|
||||
money: that.zfobj.price,
|
||||
money: this.payPrice,
|
||||
suitDeposit:that.zfobj.deposit,
|
||||
suitTime: that.zfobj.value,
|
||||
suitTimeUnit:that.suitTimeUnit,
|
||||
|
@ -730,7 +812,10 @@
|
|||
suitFeeType:that.suitFeeType,
|
||||
suitGearAmount:that.suitGearAmount,
|
||||
suitGearTime:that.suitGearTime,
|
||||
suitPrice:that.suitPrice
|
||||
suitPrice:that.suitPrice,
|
||||
vipId:this.huiyuanid,
|
||||
vipDiscount:this.zhekou,
|
||||
discountAmount:this.discountAmount
|
||||
}
|
||||
that.$u.post('/app/bill/recharge', data).then((res) => {
|
||||
if (res.code == 200) {
|
||||
|
@ -857,7 +942,7 @@
|
|||
let data = {
|
||||
deviceNo: that.id,
|
||||
suitId: that.zfobj.suitId,
|
||||
money: that.zfobj.price,
|
||||
money: this.payPrice,
|
||||
suitDeposit:that.zfobj.deposit,
|
||||
suitTime: that.zfobj.value,
|
||||
suitTimeUnit:that.suitTimeUnit,
|
||||
|
@ -865,7 +950,10 @@
|
|||
suitFeeType:that.suitFeeType,
|
||||
suitGearAmount:that.suitGearAmount,
|
||||
suitGearTime:that.suitGearTime,
|
||||
suitPrice:that.suitPrice
|
||||
suitPrice:that.suitPrice,
|
||||
vipId:this.huiyuanid,
|
||||
vipDiscount:this.zhekou,
|
||||
discountAmount:this.discountAmount
|
||||
}
|
||||
that.$u.post('/app/bill/recharge', data).then((res) => {
|
||||
if (res.code == 200) {
|
||||
|
@ -1001,162 +1089,162 @@
|
|||
},
|
||||
|
||||
// 蓝牙连接成功后执行
|
||||
getczly(){
|
||||
uni.showLoading({
|
||||
title: '准备支付中...'
|
||||
})
|
||||
this.getzfqd()
|
||||
this.zhifuflag = true
|
||||
let that = this
|
||||
let data = {
|
||||
deviceNo: that.id,
|
||||
suitId: that.zfobj.suitId,
|
||||
money: that.zfobj.price,
|
||||
suitDeposit:that.zfobj.deposit,
|
||||
suitTime: that.zfobj.value,
|
||||
suitTimeUnit:that.suitTimeUnit,
|
||||
suitFeeMode:that.suitFeeMode,
|
||||
suitFeeType:that.suitFeeType,
|
||||
suitGearAmount:that.suitGearAmount,
|
||||
suitGearTime:that.suitGearTime,
|
||||
suitPrice:that.suitPrice
|
||||
}
|
||||
that.$u.post('/app/bill/recharge', data).then((res) => {
|
||||
if (res.code == 200) {
|
||||
that.orderno = res.data
|
||||
let data = {
|
||||
billNo:that.orderno,
|
||||
channelId:that.channelId
|
||||
}
|
||||
that.$u.put(`/app/bill/pay`,data).then((res) => {
|
||||
if (res.code == 200) {
|
||||
that.payNo = res.data.payBill.payNo
|
||||
uni.requestPayment({
|
||||
provider: 'wxpay',
|
||||
timeStamp: res.data.payParams.timeStamp,
|
||||
nonceStr: res.data.payParams.nonceStr,
|
||||
package: res.data.payParams.packageVal,
|
||||
signType: res.data.payParams.signType,
|
||||
paySign: res.data.payParams.paySign,
|
||||
success: (res) => {
|
||||
if (that.timer) {
|
||||
clearInterval(this.timer)
|
||||
that.timer = null
|
||||
}
|
||||
// 111111111111111111111111
|
||||
that.$u.put(`/app/payBill/${that.payNo}/refreshPayResult`).then(res =>{
|
||||
// if(res.code == 200){
|
||||
that.$u.get(`/app/bill/byNo/${that.orderno}`).then(res => {
|
||||
if (res.code == 200) {
|
||||
let timesc = res.data.syncDeviceSeconds
|
||||
let suitEnabledVoid = res.data.suitEnabledVoid
|
||||
let suitVoidMinute = res.data.suitVoidMinute
|
||||
console.log(res,'111111',suitEnabledVoid);
|
||||
that.$u.get(`/app/bill/recharge/${res.data.billNo}/bluetoothSuccess`).then(res =>{})
|
||||
let datas = {
|
||||
mac:that.mac,
|
||||
reason:'下单' + that.orderno,
|
||||
command:'11time' + timesc + '@',
|
||||
result:'成功'
|
||||
}
|
||||
that.$u.post(`/app/commandLog/bluetooth`,datas).then(res => {})
|
||||
if(res.data.status == 2){
|
||||
uni.getConnectedBluetoothDevices({
|
||||
success(res) {
|
||||
that.jzflag = true
|
||||
that.startLoading()
|
||||
setTimeout(()=> {
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: "time" + timesc + '@'
|
||||
})
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: "11time" + timesc + '@'
|
||||
})
|
||||
if(suitEnabledVoid == true){
|
||||
xBlufi.notifySendCustomData({
|
||||
customData: "11dj" + suitVoidMinute * 60 + '@'
|
||||
})
|
||||
}
|
||||
setTimeout(() => {
|
||||
if(that.ver_data == ''){
|
||||
uni.showToast({
|
||||
title: '蓝牙已断开,蓝牙充值失败',
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
})
|
||||
}else{
|
||||
that.zhifuflag = false
|
||||
uni.reLaunch({
|
||||
url:'/page_components/eletj?id=' + that.orderno + '&ver_data=' + this.ver_data
|
||||
})
|
||||
}
|
||||
},1000)
|
||||
},500)
|
||||
},
|
||||
fail(err) {
|
||||
console.error('获取已连接蓝牙设备信息失败:',err)
|
||||
let that = this
|
||||
that.ver_data = ''
|
||||
that.ver_dataflag = 1
|
||||
uni.showModal({
|
||||
title: '温馨提示',
|
||||
content: '设备开启失败,检测到设备蓝牙已断开',
|
||||
showCancel: false,
|
||||
success: function(res) {
|
||||
// getczly(){
|
||||
// uni.showLoading({
|
||||
// title: '准备支付中...'
|
||||
// })
|
||||
// this.getzfqd()
|
||||
// this.zhifuflag = true
|
||||
// let that = this
|
||||
// let data = {
|
||||
// deviceNo: that.id,
|
||||
// suitId: that.zfobj.suitId,
|
||||
// money: that.zfobj.price,
|
||||
// suitDeposit:that.zfobj.deposit,
|
||||
// suitTime: that.zfobj.value,
|
||||
// suitTimeUnit:that.suitTimeUnit,
|
||||
// suitFeeMode:that.suitFeeMode,
|
||||
// suitFeeType:that.suitFeeType,
|
||||
// suitGearAmount:that.suitGearAmount,
|
||||
// suitGearTime:that.suitGearTime,
|
||||
// suitPrice:that.suitPrice
|
||||
// }
|
||||
// that.$u.post('/app/bill/recharge', data).then((res) => {
|
||||
// if (res.code == 200) {
|
||||
// that.orderno = res.data
|
||||
// let data = {
|
||||
// billNo:that.orderno,
|
||||
// channelId:that.channelId
|
||||
// }
|
||||
// that.$u.put(`/app/bill/pay`,data).then((res) => {
|
||||
// if (res.code == 200) {
|
||||
// that.payNo = res.data.payBill.payNo
|
||||
// uni.requestPayment({
|
||||
// provider: 'wxpay',
|
||||
// timeStamp: res.data.payParams.timeStamp,
|
||||
// nonceStr: res.data.payParams.nonceStr,
|
||||
// package: res.data.payParams.packageVal,
|
||||
// signType: res.data.payParams.signType,
|
||||
// paySign: res.data.payParams.paySign,
|
||||
// success: (res) => {
|
||||
// if (that.timer) {
|
||||
// clearInterval(this.timer)
|
||||
// that.timer = null
|
||||
// }
|
||||
// // 111111111111111111111111
|
||||
// that.$u.put(`/app/payBill/${that.payNo}/refreshPayResult`).then(res =>{
|
||||
// // if(res.code == 200){
|
||||
// that.$u.get(`/app/bill/byNo/${that.orderno}`).then(res => {
|
||||
// if (res.code == 200) {
|
||||
// let timesc = res.data.syncDeviceSeconds
|
||||
// let suitEnabledVoid = res.data.suitEnabledVoid
|
||||
// let suitVoidMinute = res.data.suitVoidMinute
|
||||
// console.log(res,'111111',suitEnabledVoid);
|
||||
// that.$u.get(`/app/bill/recharge/${res.data.billNo}/bluetoothSuccess`).then(res =>{})
|
||||
// let datas = {
|
||||
// mac:that.mac,
|
||||
// reason:'下单' + that.orderno,
|
||||
// command:'11time' + timesc + '@',
|
||||
// result:'成功'
|
||||
// }
|
||||
// that.$u.post(`/app/commandLog/bluetooth`,datas).then(res => {})
|
||||
// if(res.data.status == 2){
|
||||
// uni.getConnectedBluetoothDevices({
|
||||
// success(res) {
|
||||
// that.jzflag = true
|
||||
// that.startLoading()
|
||||
// setTimeout(()=> {
|
||||
// xBlufi.notifySendCustomData({
|
||||
// customData: "time" + timesc + '@'
|
||||
// })
|
||||
// xBlufi.notifySendCustomData({
|
||||
// customData: "11time" + timesc + '@'
|
||||
// })
|
||||
// if(suitEnabledVoid == true){
|
||||
// xBlufi.notifySendCustomData({
|
||||
// customData: "11dj" + suitVoidMinute * 60 + '@'
|
||||
// })
|
||||
// }
|
||||
// setTimeout(() => {
|
||||
// if(that.ver_data == ''){
|
||||
// uni.showToast({
|
||||
// title: '蓝牙已断开,蓝牙充值失败',
|
||||
// icon: 'none',
|
||||
// duration: 2000
|
||||
// })
|
||||
// }else{
|
||||
// that.zhifuflag = false
|
||||
// uni.reLaunch({
|
||||
// url:'/page_components/eletj?id=' + that.orderno + '&ver_data=' + this.ver_data
|
||||
// })
|
||||
// }
|
||||
// },1000)
|
||||
// },500)
|
||||
// },
|
||||
// fail(err) {
|
||||
// console.error('获取已连接蓝牙设备信息失败:',err)
|
||||
// let that = this
|
||||
// that.ver_data = ''
|
||||
// that.ver_dataflag = 1
|
||||
// uni.showModal({
|
||||
// title: '温馨提示',
|
||||
// content: '设备开启失败,检测到设备蓝牙已断开',
|
||||
// showCancel: false,
|
||||
// success: function(res) {
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}else{
|
||||
uni.showToast({
|
||||
title: '支付失败',
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
});
|
||||
}
|
||||
}else{
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
})
|
||||
}
|
||||
})
|
||||
// }
|
||||
})
|
||||
// 支付成功逻辑
|
||||
uni.setStorageSync('time', that.expireTimeStr)
|
||||
},
|
||||
fail(err) {
|
||||
this.zhifuflag = false
|
||||
setTimeout(() => {
|
||||
this.czflag = false
|
||||
uni.hideLoading()
|
||||
}, 500)
|
||||
// 支付失败逻辑
|
||||
uni.showToast({
|
||||
title: '支付失败',
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
});
|
||||
}
|
||||
})
|
||||
}else{
|
||||
this.zhifuflag = false
|
||||
}
|
||||
})
|
||||
} else if (res.code == 500) {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
});
|
||||
} else {
|
||||
this.czflag = false
|
||||
}
|
||||
})
|
||||
},
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
// })
|
||||
// }else{
|
||||
// uni.showToast({
|
||||
// title: '支付失败',
|
||||
// icon: 'none',
|
||||
// duration: 2000
|
||||
// });
|
||||
// }
|
||||
// }else{
|
||||
// uni.showToast({
|
||||
// title: res.msg,
|
||||
// icon: 'none',
|
||||
// duration: 2000
|
||||
// })
|
||||
// }
|
||||
// })
|
||||
// // }
|
||||
// })
|
||||
// // 支付成功逻辑
|
||||
// uni.setStorageSync('time', that.expireTimeStr)
|
||||
// },
|
||||
// fail(err) {
|
||||
// this.zhifuflag = false
|
||||
// setTimeout(() => {
|
||||
// this.czflag = false
|
||||
// uni.hideLoading()
|
||||
// }, 500)
|
||||
// // 支付失败逻辑
|
||||
// uni.showToast({
|
||||
// title: '支付失败',
|
||||
// icon: 'none',
|
||||
// duration: 2000
|
||||
// });
|
||||
// }
|
||||
// })
|
||||
// }else{
|
||||
// this.zhifuflag = false
|
||||
// }
|
||||
// })
|
||||
// } else if (res.code == 500) {
|
||||
// uni.showToast({
|
||||
// title: res.msg,
|
||||
// icon: 'none',
|
||||
// duration: 2000
|
||||
// });
|
||||
// } else {
|
||||
// this.czflag = false
|
||||
// }
|
||||
// })
|
||||
// },
|
||||
|
||||
|
||||
startLoading() {
|
||||
|
@ -1314,6 +1402,149 @@
|
|||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.youhui{
|
||||
position: fixed;
|
||||
right: 40rpx;
|
||||
bottom: 200rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
width: 680rpx;
|
||||
border: 1px dashed #ccc;
|
||||
padding: 2rpx;
|
||||
box-sizing: border-box;
|
||||
.yh{
|
||||
color: #ef3333;
|
||||
}
|
||||
}
|
||||
.huiyuantc{
|
||||
width: 100%;
|
||||
height: 80vh;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
background-color: #fff;
|
||||
border-radius: 50rpx 50rpx 0 0;
|
||||
padding-top: 50rpx;
|
||||
box-sizing: border-box;
|
||||
.cha{
|
||||
position: absolute;
|
||||
top: 0rpx;
|
||||
right: 30rpx;
|
||||
font-size: 60rpx;
|
||||
font-weight: 600;
|
||||
}
|
||||
.vip_box1 {
|
||||
position: relative;
|
||||
margin-left: 38rpx;
|
||||
width: 680rpx;
|
||||
height: 158rpx;
|
||||
background-image: url('https://lxnapi.ccttiot.com/bike/img/static/uiaiNkMy7221n3bk2ta0');
|
||||
background-size: cover;
|
||||
/* 背景图片等比缩放以覆盖整个容器 */
|
||||
background-position: center;
|
||||
/* 背景图片居中显示 */
|
||||
background-repeat: no-repeat;
|
||||
margin-top: 40rpx;
|
||||
.txt1 {
|
||||
top: 20rpx;
|
||||
left: 171rpx;
|
||||
position: absolute;
|
||||
font-weight: 500;
|
||||
font-size: 39rpx;
|
||||
color: #B07C1E;
|
||||
}
|
||||
|
||||
.txt2 {
|
||||
position: absolute;
|
||||
left: 171rpx;
|
||||
bottom: 20rpx;
|
||||
font-weight: 400;
|
||||
font-size: 25rpx;
|
||||
color: #B07C1E;
|
||||
}
|
||||
|
||||
.btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
position: absolute;
|
||||
top: 18rpx;
|
||||
right: 23rpx;
|
||||
width: 150rpx;
|
||||
height: 43rpx;
|
||||
border-radius: 31rpx 31rpx 31rpx 31rpx;
|
||||
border: 1rpx solid #B07C1E;
|
||||
font-weight: 400;
|
||||
font-size: 25rpx;
|
||||
color: #B07C1E;
|
||||
}
|
||||
}
|
||||
}
|
||||
.fee_box {
|
||||
margin-top: 18rpx;
|
||||
position: fixed;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
bottom: 270rpx;
|
||||
width: 680rpx;
|
||||
height: 288rpx;
|
||||
background-image: url('https://lxnapi.ccttiot.com/bike/img/static/ugciMYClSGgJxP8HYoRU');
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
.auto_box::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
.auto_box {
|
||||
padding-left: 24rpx;
|
||||
display: flex;
|
||||
overflow-x: auto; /* 允许横向滚动 */
|
||||
flex-wrap: nowrap; /* 禁止换行,保持所有元素在一行 */
|
||||
position: absolute;
|
||||
top: 90rpx;
|
||||
width: 100%; /* 根据需要调整宽度 */
|
||||
height: auto; /* 根据内容自动调整高度 */
|
||||
|
||||
.auto_li {
|
||||
position: relative;
|
||||
padding: 24rpx 28rpx;
|
||||
margin-right: 22rpx;
|
||||
width: 408rpx;
|
||||
height: 176rpx;
|
||||
flex-shrink: 0; /* 防止子元素被压缩 */
|
||||
background-image: url('https://lxnapi.ccttiot.com/bike/img/static/ui88NWy9R1j2zFGojdHU');
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
.txt1{
|
||||
width: 100%;
|
||||
font-weight: 600;
|
||||
font-size: 32rpx;
|
||||
color: #495E74;
|
||||
}
|
||||
.txt2{
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #495E74;
|
||||
}
|
||||
.buy_btn{
|
||||
position: absolute;
|
||||
right: 26rpx;
|
||||
bottom: 38rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 132rpx;
|
||||
height: 50rpx;
|
||||
background: #495E74;
|
||||
border-radius: 25rpx 25rpx 25rpx 25rpx;
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
color: #FFF3DB;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.fuwutc{
|
||||
width: 640rpx;
|
||||
height: 400rpx;
|
||||
|
@ -1624,18 +1855,19 @@
|
|||
|
||||
.box {
|
||||
width: 750rpx;
|
||||
height: 71vh;
|
||||
height: 66vh;
|
||||
overflow: scroll;
|
||||
background: #F4F5F7;
|
||||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
||||
padding: 36rpx 54rpx;
|
||||
padding-bottom: 400rpx;
|
||||
box-sizing: border-box;
|
||||
border-radius: 30rpx 30rpx 0 0;
|
||||
|
||||
.tongyi {
|
||||
width: 590rpx;
|
||||
position: fixed;
|
||||
bottom: 50rpx;
|
||||
bottom: 40rpx;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
@click.stop="nav(item)"></image>
|
||||
<image src="https://api.ccttiot.com/smartmeter/img/static/u9IYNLl7G83pOXtQbaYj" mode="aspectFit"
|
||||
@click.stop="btnpag(4,item)"></image>
|
||||
<image src="https://api.ccttiot.com/smartmeter/img/static/u1Gjnomycy9oiRNbmW4F" style="width: 116rpx;" mode="aspectFit"
|
||||
<image src="https://api.ccttiot.com/smartmeter/img/static/uVYNIcmP5ytOhhfpasrt" style="width: 116rpx;" mode="aspectFit"
|
||||
@click.stop="btnpag(5,item)"></image>
|
||||
<image src="https://api.ccttiot.com/smartmeter/img/static/uoyO7psgUNmNuhPDoOmH" mode="aspectFit"
|
||||
@click.stop="btnpag(2,item)"></image>
|
||||
|
@ -187,8 +187,11 @@
|
|||
url:'/page_components/peizhi?obj=' + JSON.stringify(item)
|
||||
})
|
||||
}else if(num == 5){
|
||||
// uni.navigateTo({
|
||||
// url:'/pages/shopewm?storeId=' + item.storeId
|
||||
// })
|
||||
uni.navigateTo({
|
||||
url:'/pages/shopewm?storeId=' + item.storeId
|
||||
url:'/page_geren/buyCard?storeId=' + item.storeId
|
||||
})
|
||||
}
|
||||
},
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
@click="nav"></image>
|
||||
<image src="https://api.ccttiot.com/smartmeter/img/static/u9IYNLl7G83pOXtQbaYj" mode="aspectFit"
|
||||
@click="btnpag(4)"></image>
|
||||
<image src="https://api.ccttiot.com/smartmeter/img/static/u1Gjnomycy9oiRNbmW4F" style="width: 116rpx;" mode="aspectFit"
|
||||
<image src="https://api.ccttiot.com/smartmeter/img/static/uVYNIcmP5ytOhhfpasrt" style="width: 116rpx;" mode="aspectFit"
|
||||
@click="btnpag(5)"></image>
|
||||
<image src="https://api.ccttiot.com/smartmeter/img/static/uoyO7psgUNmNuhPDoOmH" mode="aspectFit"
|
||||
@click="btnpag(2)"></image>
|
||||
|
@ -277,6 +277,10 @@
|
|||
uni.navigateTo({
|
||||
url:'/page_components/peizhi?obj=' + JSON.stringify(this.listobj)
|
||||
})
|
||||
}else if(num == 5){
|
||||
uni.navigateTo({
|
||||
url:'/page_geren/buyCard?storeId=' + item.storeId
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<view class="box">
|
||||
<view class="ul">
|
||||
<view class="name">
|
||||
会员卡名称
|
||||
<text>*</text>会员卡名称
|
||||
</view>
|
||||
<input type="text" v-model="name" placeholder="请输入会员卡名称"/>
|
||||
</view>
|
||||
|
@ -13,47 +13,72 @@
|
|||
<view class="name">
|
||||
会员卡原价/元
|
||||
</view>
|
||||
<input type="text" v-model="yuanjia" placeholder="请输入会员卡原价"/>
|
||||
<input type="number" v-model="yuanjia" placeholder="请输入会员卡原价"/>
|
||||
</view>
|
||||
<view class="ul">
|
||||
<view class="name">
|
||||
会员卡现价/元
|
||||
<text>*</text>会员卡现价/元
|
||||
</view>
|
||||
<input type="text" v-model="xianjia" placeholder="请输入会员卡现价"/>
|
||||
<input type="number" v-model="xianjia" placeholder="请输入会员卡现价"/>
|
||||
</view>
|
||||
<view class="ul">
|
||||
<view class="name">
|
||||
会员卡期限/天
|
||||
<text>*</text>会员卡时长/天
|
||||
</view>
|
||||
<input type="text" v-model="qixian" placeholder="请输入会员卡期限"/>
|
||||
<input type="number" v-model="qixian" placeholder="请输入会员卡时长"/>
|
||||
</view>
|
||||
<view class="ul">
|
||||
<view class="name">
|
||||
会员卡折扣/折
|
||||
<text>*</text>会员卡折扣/折
|
||||
</view>
|
||||
<input type="text" v-model="zhekou" placeholder="请输入会员卡折扣"/>
|
||||
</view>
|
||||
<view class="ul">
|
||||
<view class="name">
|
||||
会员卡使用次数/次
|
||||
<text>*</text>会员卡使用次数/次
|
||||
</view>
|
||||
<input type="text" v-model="shangxian" placeholder="请输入会员卡使用次数"/>
|
||||
<input type="number" v-model="shangxian" placeholder="请输入会员卡使用次数"/>
|
||||
</view>
|
||||
<view class="ul">
|
||||
<view class="ul" @click="show = true">
|
||||
<view class="name">
|
||||
上限次数/次
|
||||
是否上架
|
||||
</view>
|
||||
<view class="sx">
|
||||
<input v-model="day" type="text"/>/天 上限<input v-model="cishu" type="text"/>/次
|
||||
<view class="" style="color: rgb(128, 128, 128);">
|
||||
{{shangjia}}
|
||||
<u-icon name="arrow-right" color="rgb(128, 128, 128)" size="28"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ul" @click="shows = true">
|
||||
<view class="name">
|
||||
使用限制
|
||||
</view>
|
||||
<view class="" style="color: rgb(128, 128, 128);">
|
||||
{{xianzhi}}
|
||||
<u-icon name="arrow-right" color="rgb(128, 128, 128)" size="28"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ul" v-if="xianzhi != '不限制'">
|
||||
<view class="name">
|
||||
频率限制/次
|
||||
</view>
|
||||
<input type="number" v-model="cishu" placeholder="请输入限制次数"/>
|
||||
</view>
|
||||
<view class="ul" style="border: none;">
|
||||
<view class="name">
|
||||
描述
|
||||
</view>
|
||||
<input type="text" v-model="miaoshu" placeholder="请输入描述"/>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<u-select v-model="show" :list="list" @confirm="confirm"></u-select>
|
||||
<u-select v-model="shows" :list="lists" @confirm="confirms"></u-select>
|
||||
|
||||
<view class="anniu">
|
||||
<view class="qx" @click="btnqx">
|
||||
{{deltit}}
|
||||
</view>
|
||||
<view class="qd">
|
||||
<view class="qd" @click="btnadd">
|
||||
{{addtit}}
|
||||
</view>
|
||||
</view>
|
||||
|
@ -78,14 +103,51 @@
|
|||
zhekou:'',
|
||||
shangxian:'',
|
||||
day:'',
|
||||
cishu:''
|
||||
miaoshu:'',
|
||||
cishu:'',
|
||||
show: false,
|
||||
list: [
|
||||
{
|
||||
value: '1',
|
||||
label: '上架'
|
||||
},
|
||||
{
|
||||
value: '2',
|
||||
label: '下架'
|
||||
}
|
||||
],
|
||||
shows: false,
|
||||
lists: [
|
||||
{
|
||||
value: '1',
|
||||
label: '不限制'
|
||||
},
|
||||
{
|
||||
value: '2',
|
||||
label: '每周'
|
||||
},
|
||||
{
|
||||
value: '3',
|
||||
label: '每30天'
|
||||
}
|
||||
],
|
||||
shangjia:'上架',
|
||||
shangjiaid:1,
|
||||
xianzhi:'不限制',
|
||||
xianzhiid:1,
|
||||
storeId:'',
|
||||
id:'',
|
||||
huiyuanobj:{}
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
this.storeId = option.storeId
|
||||
if(option.id){
|
||||
this.tit = '修改会员卡'
|
||||
this.deltit = '删除'
|
||||
this.addtit = '修改'
|
||||
this.id = option.id
|
||||
this.getxq()
|
||||
}else{
|
||||
this.tit = '新增会员卡'
|
||||
this.deltit = '取消'
|
||||
|
@ -93,27 +155,160 @@
|
|||
}
|
||||
},
|
||||
methods: {
|
||||
getQiniuToken() {
|
||||
this.$u.get("/common/qiniu/uploadInfo").then((res) => {
|
||||
// 查询会员卡详情
|
||||
getxq(){
|
||||
this.$u.get(`/mch/vipLevel/${this.id}`).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.token = res.token
|
||||
this.huiyuanobj = res.data
|
||||
this.xianjia = res.data.price
|
||||
this.qixian = res.data.time
|
||||
this.miaoshu = res.data.description
|
||||
this.xianzhiid = res.data.limitType
|
||||
if(res.data.limitType == 1){
|
||||
this.xianzhi = '不限制'
|
||||
}else if(res.data.limitType == 2){
|
||||
this.xianzhi = '每周'
|
||||
}else if(res.data.limitType == 3){
|
||||
this.xianzhi = '每30天'
|
||||
}
|
||||
this.cishu = res.data.limitCount
|
||||
this.name = res.data.name
|
||||
this.yuanjia = res.data.originalPrice
|
||||
this.shangxian = res.data.limitTotal
|
||||
this.mchId = res.data.mchId
|
||||
this.zhekou = res.data.discount
|
||||
this.shangjiaid = res.data.status
|
||||
if(res.data.status == 1){
|
||||
this.shangjia = '上架'
|
||||
}else{
|
||||
this.shangjia = '下架'
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
// 点击是否上架
|
||||
confirm(e){
|
||||
this.shangjia = e[0].label
|
||||
this.shangjiaid = e[0].value
|
||||
},
|
||||
// 点击是否限制
|
||||
confirms(e){
|
||||
this.xianzhi = e[0].label
|
||||
this.xianzhiid = e[0].value
|
||||
},
|
||||
// 点击取消或者删除
|
||||
btnqx(){
|
||||
if(this.deltit == '取消'){
|
||||
uni.navigateBack()
|
||||
}else{
|
||||
|
||||
let that = this
|
||||
uni.showModal({
|
||||
title: '温馨提示',
|
||||
content: '您是否要删除此会员卡?',
|
||||
showCancel: true,
|
||||
success: function(res) {
|
||||
if (res.confirm) {
|
||||
that.$u.delete(`/mch/vipLevel/${that.id}`).then(res =>{
|
||||
if(res.code == 200){
|
||||
uni.showToast({
|
||||
title: '删除成功',
|
||||
icon: 'success',
|
||||
duration: 2000
|
||||
})
|
||||
setTimeout(()=>{
|
||||
uni.navigateBack()
|
||||
},1000)
|
||||
}
|
||||
})
|
||||
} else if (res.cancel) {
|
||||
console.log('取消')
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
// 点击新增或者修改
|
||||
btnadd(){
|
||||
if(this.addtit == '新增'){
|
||||
|
||||
let re = /^\d*\.?\d+$/
|
||||
if(!re.test(this.zhekou)){
|
||||
uni.showToast({
|
||||
title: '请输入整数或者小数',
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
})
|
||||
}else if(this.name.length > 7){
|
||||
uni.showToast({
|
||||
title: '名称过长,字符不能超过七位',
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
})
|
||||
}else if(this.addtit == '新增'){
|
||||
let data = {
|
||||
price:this.xianjia,
|
||||
time:this.qixian,
|
||||
description:this.miaoshu,
|
||||
limitType:this.xianzhiid,
|
||||
limitCount:this.cishu,
|
||||
name:this.name,
|
||||
originalPrice:this.yuanjia,
|
||||
limitTotal:this.shangxian,
|
||||
mchId:this.mchId,
|
||||
discount:this.zhekou,
|
||||
storeId:this.storeId,
|
||||
status:this.shangjiaid
|
||||
}
|
||||
this.$u.post(`/mch/vipLevel`,data).then((res) => {
|
||||
if (res.code == 200) {
|
||||
uni.showToast({
|
||||
title: '新增成功',
|
||||
icon: 'success',
|
||||
duration: 2000
|
||||
})
|
||||
setTimeout(()=>{
|
||||
uni.navigateBack()
|
||||
},1000)
|
||||
}else{
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
})
|
||||
}
|
||||
})
|
||||
}else{
|
||||
|
||||
let data = {
|
||||
id:this.id,
|
||||
price:this.xianjia,
|
||||
time:this.qixian,
|
||||
description:this.miaoshu,
|
||||
limitType:this.xianzhiid,
|
||||
limitCount:this.cishu,
|
||||
name:this.name,
|
||||
originalPrice:this.yuanjia,
|
||||
limitTotal:this.shangxian,
|
||||
mchId:this.mchId,
|
||||
discount:this.zhekou,
|
||||
storeId:this.storeId,
|
||||
status:this.shangjiaid
|
||||
}
|
||||
this.$u.put(`/mch/vipLevel`,data).then((res) => {
|
||||
if (res.code == 200) {
|
||||
uni.showToast({
|
||||
title: '修改成功',
|
||||
icon: 'success',
|
||||
duration: 2000
|
||||
})
|
||||
setTimeout(()=>{
|
||||
uni.navigateBack()
|
||||
},1000)
|
||||
}else{
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -182,6 +377,12 @@
|
|||
}
|
||||
.name{
|
||||
font-size: 28rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text{
|
||||
color: red;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
}
|
||||
input{
|
||||
height: 120rpx;
|
||||
|
|
|
@ -3,37 +3,58 @@
|
|||
<u-navbar title="会员卡列表" :border-bottom="false" :background="bgc" title-color='#000' title-size='36'
|
||||
height='45'></u-navbar>
|
||||
<view class="cont">
|
||||
<view class="card2" v-for="(item,index) in 3" :key="index">
|
||||
<view class="card3" style="margin-top: 20rpx;" @click="btnxq">
|
||||
<view class="" style="font-size: 34rpx;font-weight: 600;">
|
||||
会员卡名称
|
||||
<view class="card2" v-for="(item,index) in huiyuanlist" :key="index">
|
||||
<view class="card3" style="margin-top: 20rpx;" @click="btnxq(item.id)">
|
||||
<view class="" style="font-size: 34rpx;font-weight: 600;display: flex;justify-content: space-between;align-items: center;">
|
||||
<view class="">
|
||||
{{item.name == null ? '--' : item.name}}
|
||||
</view>
|
||||
<view style="font-weight: 400;font-size: 24rpx;color: green;" v-if="item.status == 1">
|
||||
已上架
|
||||
</view>
|
||||
<view style="font-weight: 400;font-size: 24rpx;color: orange;" v-if="item.status == 2">
|
||||
已下架
|
||||
</view>
|
||||
</view>
|
||||
<view class="top">
|
||||
<view class="tit1">
|
||||
20天30次
|
||||
时长{{item.time == null ? '--' :item.time}}天一共{{item.limitTotal == null ? '--' : item.limitTotal}}次
|
||||
</view>
|
||||
<view class="tit2">
|
||||
30<span style="font-size: 28rpx;">元</span>
|
||||
{{item.price == null ? '--' : item.price}}<span style="font-size: 28rpx;">元</span>
|
||||
</view>
|
||||
</view>
|
||||
<view class="middle">
|
||||
<view class="tit3" >
|
||||
8天最多用20次
|
||||
<view class="tit3" v-if="item.limitType == 1">
|
||||
没有限制
|
||||
</view>
|
||||
<view class="tit3" v-if="item.limitType == 2">
|
||||
每周最多用{{item.limitCount == null ? '--' : item.limitCount}}次
|
||||
</view>
|
||||
<view class="tit3" v-if="item.limitType == 3">
|
||||
每30天最多用{{item.limitCount == null ? '--' : item.limitCount}}次
|
||||
</view>
|
||||
<view class="tit4">
|
||||
原价:40元
|
||||
原价:{{item.originalPrice == null ? '--' : item.originalPrice}}元
|
||||
</view>
|
||||
</view>
|
||||
<view class="bot">
|
||||
<view class="bot_left">
|
||||
<view class="txt3">
|
||||
每次享折扣7折
|
||||
每次享折扣{{item.discount == null ? '--' : item.discount}}折
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="miaoshu">
|
||||
描述:{{item.description == null ? '--' : item.description}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view style="width: 100%;text-align: center;margin-top: 30rpx;font-size: 32rpx;color: #ccc;">
|
||||
没有更多会员卡啦...
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="anniu" @click="btnadd">
|
||||
新增会员卡
|
||||
</view>
|
||||
|
@ -47,22 +68,37 @@
|
|||
bgc: {
|
||||
backgroundColor: '#fff'
|
||||
},
|
||||
storeId:'',
|
||||
huiyuanlist:[]
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
if(option.storeId){
|
||||
this.storeId = option.storeId
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
|
||||
this.getlist()
|
||||
},
|
||||
methods: {
|
||||
// 请求店铺会员卡列表
|
||||
getlist(){
|
||||
this.$u.get(`/mch/vipLevel/list?pageNum=1&pageSize=999&storeId=${this.storeId}`).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.huiyuanlist = res.rows
|
||||
}
|
||||
})
|
||||
},
|
||||
// 点击新建会员卡
|
||||
btnadd(){
|
||||
uni.navigateTo({
|
||||
url:'/page_geren/addhuiyuan'
|
||||
url:'/page_geren/addhuiyuan?storeId=' + this.storeId
|
||||
})
|
||||
},
|
||||
// 点击修改
|
||||
btnxq(){
|
||||
btnxq(id){
|
||||
uni.navigateTo({
|
||||
url:'/page_geren/addhuiyuan?id=' + 1
|
||||
url:'/page_geren/addhuiyuan?id=' + id + '&storeId=' + this.storeId
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -263,7 +299,7 @@
|
|||
padding: 20rpx 40rpx;
|
||||
width: 680rpx;
|
||||
margin: auto;
|
||||
height: 240rpx;
|
||||
height: 270rpx;
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0rpx 10rpx 64rpx 0rpx rgba(0,0,0,0.08);
|
||||
border-radius: 20rpx 20rpx 20rpx 20rpx;
|
||||
|
@ -301,6 +337,11 @@
|
|||
text-decoration: line-through;
|
||||
}
|
||||
}
|
||||
.miaoshu{
|
||||
font-size: 24rpx;
|
||||
color: #808080;
|
||||
margin-top: 6rpx;
|
||||
}
|
||||
.bot{
|
||||
margin-top: 10rpx;
|
||||
display: flex;
|
||||
|
@ -350,7 +391,7 @@
|
|||
.card2{
|
||||
margin-top: 16rpx;
|
||||
width: 680rpx;
|
||||
height: 250rpx;
|
||||
height: 290rpx;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,70 +1,92 @@
|
|||
<template>
|
||||
<view class="page">
|
||||
<view class="">
|
||||
<u-navbar title="会员中心" :border-bottom="false" :background="background" title-color='#000' title-size='36'
|
||||
<u-navbar :title="tit" :border-bottom="false" :background="background" title-color='#000' title-size='36'
|
||||
back-icon-color='#000' height='45'></u-navbar>
|
||||
</view>
|
||||
<!-- <view class="vip_box" @click="btnkt(1)">
|
||||
<view class="txt1">会员卡</view>
|
||||
<view class="txt2" > 仅需¥10,可享30天折扣权益
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="vip_box1">
|
||||
<view class="txt1">会员卡</view>
|
||||
<view class="txt2"> 会员卡25天后到期</view>
|
||||
<view class="btn">
|
||||
已开通
|
||||
</view>
|
||||
<view class="btn" v-if="false">
|
||||
未开通
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="vipcard">
|
||||
<view class="card_top">
|
||||
<view class="name">
|
||||
17795402553
|
||||
</view>
|
||||
</view>
|
||||
<view class="card_bot">
|
||||
<view class="txts">
|
||||
开通立享超值会员特权
|
||||
</view>
|
||||
<view class="txts" v-if="flase">
|
||||
会员卡23天后到期
|
||||
</view>
|
||||
<view class="topage" @click="topage">
|
||||
购买记录 >
|
||||
<view class="" style="height: 500rpx;overflow: scroll;" v-if="storeId != ''">
|
||||
<view class="vip_box1" v-for="(item,index) in huiyuanlist" :key="index">
|
||||
<view class="txt1">{{item.vipLevelName == null ? '--' : item.vipLevelName}}</view>
|
||||
<view class="txt2">会员将在{{item.endTime.slice(0,10)}}后到期,剩余次数/{{item.surplusCount}}次</view>
|
||||
<view class="btn">
|
||||
已开通
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<image class="mc" src="https://lxnapi.ccttiot.com/bike/img/static/uCIpavkHbM18al7gpxH8" mode=""></image>
|
||||
<view class="" style="background-color: #fff;">
|
||||
<view class="cont_box">
|
||||
<view class="cont_li" v-for="(item,index) in 3" :key="index" @click="choose(item,index)" :class="chooseidx==index?'act1':''">
|
||||
<view class="tit">
|
||||
会员卡
|
||||
<view class="" style="height: 1400rpx;overflow: scroll;" v-else>
|
||||
<view class="vip_box1" v-for="(item,index) in huiyuanlist" :key="index">
|
||||
<view class="txt1">{{item.vipLevelName == null ? '--' : item.vipLevelName}}</view>
|
||||
<view class="txt2">会员将在{{item.endTime.slice(0,10)}}后到期,剩余次数/{{item.surplusCount}}次</view>
|
||||
<view class="btn">
|
||||
已开通
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="zanwuflag && storeId == '' " style="width: 100%;text-align: center;margin-top: 50rpx;font-size: 32rpx;color: #ccc;">
|
||||
暂无更多会员卡...
|
||||
</view>
|
||||
<!-- -->
|
||||
<view class="" v-if="typeflag">
|
||||
<view class="vipcard">
|
||||
<view class="card_top">
|
||||
<view class="name">
|
||||
购买会员卡
|
||||
</view>
|
||||
<view class="tips">
|
||||
40天享7折
|
||||
</view>
|
||||
<view class="card_bot">
|
||||
<view class="txts">
|
||||
开通立享超值会员特权
|
||||
</view>
|
||||
<view class="money">
|
||||
¥ 36.66
|
||||
<view class="txts" v-if="flase">
|
||||
会员卡23天后到期
|
||||
</view>
|
||||
<view class="tips" style="text-decoration: line-through; ">
|
||||
¥30.66
|
||||
</view>
|
||||
<view class="tips">
|
||||
立省¥6.00
|
||||
<view class="topage" @click="topage">
|
||||
购买记录 >
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="txt">
|
||||
该卡只能用于付费享折扣
|
||||
<view class="" style="background-color: #fff;">
|
||||
<image class="mc" src="https://lxnapi.ccttiot.com/bike/img/static/uCIpavkHbM18al7gpxH8" mode=""></image>
|
||||
<view class="cont_box">
|
||||
<view class="cont_li" v-for="(item,index) in huiyuanzaishoulist" :key="index" @click="choose(item,index)" :class="chooseidx == index ? 'act1' : ''">
|
||||
<view class="tit">
|
||||
{{item.name == null ? '--' : item.name}}
|
||||
</view>
|
||||
<view class="tips">
|
||||
{{item.time == null ? '--' :item.time}}天享{{item.discount == null ? '--' : item.discount}}折
|
||||
</view>
|
||||
<view class="tips">
|
||||
<view class="" v-if="item.limitType == 1">
|
||||
没有限制
|
||||
</view>
|
||||
<view class="" v-if="item.limitType == 2">
|
||||
每周最多用{{item.limitCount == null ? '--' : item.limitCount}}次
|
||||
</view>
|
||||
<view class="" v-if="item.limitType == 3">
|
||||
每30天最多用{{item.limitCount == null ? '--' : item.limitCount}}次
|
||||
</view>
|
||||
</view>
|
||||
<view class="tips">
|
||||
总共可用{{item.limitTotal == null ? '--' : item.limitTotal}}/次
|
||||
</view>
|
||||
<view class="money">
|
||||
¥ {{item.price == null ? '--' : item.price}}
|
||||
</view>
|
||||
<view class="tips" style="text-decoration: line-through; ">
|
||||
¥{{item.originalPrice == null ? '--' : item.originalPrice}}
|
||||
</view>
|
||||
<view class="tips">
|
||||
立省¥{{Number(item.originalPrice) - Number(item.price)}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="txt">
|
||||
该卡只能用于付费享折扣
|
||||
</view>
|
||||
</view>
|
||||
<view class="pay_btn" @click="btnzf">
|
||||
¥{{price}}立即开通
|
||||
</view>
|
||||
</view>
|
||||
<view class="pay_btn" @click="buy()">
|
||||
¥38.88立即开通
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
@ -80,15 +102,69 @@ export default {
|
|||
userinfo:{},
|
||||
chooseInfo:{},
|
||||
chooseidx:0,
|
||||
typeflag:false,
|
||||
tit:'会员中心',
|
||||
huiyuanlist:[],
|
||||
zanwuflag:false,
|
||||
storeId:'',
|
||||
huiyuanzaishoulist:[],
|
||||
price:'',
|
||||
channelId:'',
|
||||
mchid:'',
|
||||
zfobj:{}
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
onLoad(option) {
|
||||
if(option.storeId){
|
||||
this.typeflag = true
|
||||
this.storeId = option.storeId
|
||||
this.tit = '购买会员'
|
||||
this.getlist()
|
||||
this.getzaishou()
|
||||
}else{
|
||||
this.typeflag = false
|
||||
this.tit = '会员中心'
|
||||
this.getlist()
|
||||
}
|
||||
this.getinfo()
|
||||
},
|
||||
onShow() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
// 根据店铺id查询在售会员列表
|
||||
getzaishou(){
|
||||
this.$u.get(`/app/vipLevel/list?pageNum=1&pageSize=99&storeId=${this.storeId}`).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.huiyuanzaishoulist = res.rows
|
||||
this.price = this.huiyuanzaishoulist[0].price
|
||||
this.mchid = this.huiyuanzaishoulist[0].mchId
|
||||
this.zfobj = this.huiyuanzaishoulist[0]
|
||||
this.getzfqd()
|
||||
}
|
||||
})
|
||||
},
|
||||
// 请求个人会员列表
|
||||
getlist(){
|
||||
this.$u.get(`/app/vip/list?pageNum=1&pageSize=999&orderByColumn=createTime&isAsc=desc&inValid=true`).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.huiyuanlist = res.rows
|
||||
if(res.rows != ''){
|
||||
this.zanwuflag = false
|
||||
}else{
|
||||
this.zanwuflag = true
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
// 请求个人信息
|
||||
getinfo(){
|
||||
this.$u.get("/app/user/userInfo").then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.userinfo = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
// 点击开通会员
|
||||
btnkt(num){
|
||||
if(num == 1){ //月卡开通
|
||||
|
@ -101,6 +177,7 @@ export default {
|
|||
})
|
||||
}
|
||||
},
|
||||
// 点击跳转到购买记录
|
||||
topage(){
|
||||
uni.navigateTo({
|
||||
url:'/page_geren/vip_his'
|
||||
|
@ -112,42 +189,60 @@ export default {
|
|||
url:'/page_geren/buyCard'
|
||||
})
|
||||
},
|
||||
// 点击切换高亮
|
||||
choose(itm,idx){
|
||||
this.chooseInfo=itm
|
||||
this.chooseidx=idx
|
||||
this.price = itm.price
|
||||
this.zfobj = itm
|
||||
this.chooseInfo = itm
|
||||
this.chooseidx = idx
|
||||
},
|
||||
buy(){
|
||||
// 获取支付渠道
|
||||
getzfqd(){
|
||||
this.$u.get(`/app/channel/recharge/enabledList?mchId=` + this.mchid).then(res =>{
|
||||
if(res.code == 200){
|
||||
this.channelId = res.data[0].channelId
|
||||
}
|
||||
})
|
||||
},
|
||||
// 点击支付购买会员
|
||||
btnzf(){
|
||||
let data={
|
||||
userId:this.userinfo.userId,
|
||||
couponId:this.chooseInfo.couponId
|
||||
amount:this.price,
|
||||
channelId:this.channelId,
|
||||
levelId: this.zfobj.id,
|
||||
levelTime: this.zfobj.time,
|
||||
levelPrice: this.price,
|
||||
levelLimitType: this.zfobj.limitType,
|
||||
levelLimitCount: this.zfobj.limitCount,
|
||||
levelLimitTotal: this.zfobj.limitTotal,
|
||||
levelDiscount: this.zfobj.discount,
|
||||
levelStoreId: this.storeId
|
||||
}
|
||||
let that=this
|
||||
that.$u.get("/appVerify/coupon/buy?",data ).then((res) => {
|
||||
let that = this
|
||||
that.$u.post("/app/vipOrder",data).then((res) => {
|
||||
if (res.code == 200) {
|
||||
uni.requestPayment({
|
||||
provider: 'wxpay',
|
||||
timeStamp: res.data.timeStamp,
|
||||
nonceStr: res.data.nonceStr,
|
||||
package: res.data.packageVal,
|
||||
signType: res.data.signType,
|
||||
paySign: res.data.paySign,
|
||||
success(res) {
|
||||
// 支付成功逻辑
|
||||
setTimeout(()=>{
|
||||
|
||||
},500)
|
||||
timeStamp: res.data.payParams.timeStamp,
|
||||
nonceStr: res.data.payParams.nonceStr,
|
||||
package: res.data.payParams.packageVal,
|
||||
signType: res.data.payParams.signType,
|
||||
paySign: res.data.payParams.paySign,
|
||||
success(ress) {
|
||||
// 刷新支付接口
|
||||
that.$u.put(`/app/vipOrder/refreshPayResult?orderNo=${res.data.orderNo}`).then(res =>{})
|
||||
uni.navigateBack()
|
||||
},
|
||||
fail(err) {
|
||||
// 支付失败逻辑
|
||||
uni.showToast({
|
||||
title: '支付失败',
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
});
|
||||
})
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
});
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
|
@ -316,11 +411,10 @@ export default {
|
|||
}
|
||||
.vipcard {
|
||||
padding: 36rpx ;
|
||||
position: fixed;
|
||||
top: 428rpx;
|
||||
left: 38rpx;
|
||||
width: 680rpx;
|
||||
height: 244rpx;
|
||||
margin: auto;
|
||||
margin-top: 30rpx;
|
||||
z-index: 1;
|
||||
background-image: url('https://lxnapi.ccttiot.com/bike/img/static/u78FEc5oHRKzdvopQpZE');
|
||||
background-size: cover;
|
||||
|
@ -382,7 +476,7 @@ export default {
|
|||
position: fixed;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
bottom: 100rpx;
|
||||
bottom: 30rpx;
|
||||
}
|
||||
.backimg {
|
||||
position: fixed;
|
||||
|
@ -393,29 +487,26 @@ export default {
|
|||
z-index: -1; // 确保背景图片在所有内容之下
|
||||
}
|
||||
.txt{
|
||||
margin: 56rpx 48rpx;
|
||||
margin: 40rpx 48rpx;
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #64B6A7;
|
||||
padding-bottom: 50rpx;
|
||||
padding-bottom: 20rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.cont_box {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
padding: 0 38rpx;
|
||||
margin-top: 280rpx;
|
||||
padding-top: 50rpx;
|
||||
box-sizing: border-box;
|
||||
z-index: 10;
|
||||
overflow-x: auto; // 允许横向滚动
|
||||
white-space: nowrap; // 保持内容不换行
|
||||
-webkit-overflow-scrolling: touch; // 使滚动更流畅
|
||||
|
||||
// 隐藏横向滚动条
|
||||
::-webkit-scrollbar {
|
||||
display: none; // 针对 WebKit 浏览器 (如 Safari 和 Chrome)
|
||||
height: 0; // 设定横向滚动条高度为 0
|
||||
display: none;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
scrollbar-width: none; // 针对 Firefox
|
||||
|
@ -424,8 +515,8 @@ export default {
|
|||
background: #FFFBF1;
|
||||
}
|
||||
.cont_li {
|
||||
width: 218rpx;
|
||||
height: 256rpx;
|
||||
width: 230rpx;
|
||||
height: 330rpx;
|
||||
background: rgba(255, 224, 158, 0.15) #FFFFFF;
|
||||
border-radius: 20rpx;
|
||||
border: 1rpx solid rgba(176, 124, 30, 0.56);
|
||||
|
@ -438,6 +529,7 @@ export default {
|
|||
font-weight: 500;
|
||||
font-size: 32rpx;
|
||||
color: #B07C1E;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
.money{
|
||||
width: 100%;
|
||||
|
@ -465,12 +557,11 @@ export default {
|
|||
|
||||
|
||||
.mc {
|
||||
position: fixed;
|
||||
top: 611rpx;
|
||||
left: 0rpx;
|
||||
width: 750rpx;
|
||||
height: 107.29rpx;
|
||||
height: 40rpx;
|
||||
z-index: 2;
|
||||
position: relative;
|
||||
top: -40rpx;
|
||||
}
|
||||
}
|
||||
.page {
|
||||
|
|
|
@ -96,10 +96,10 @@
|
|||
<image src="https://api.ccttiot.com/smartmeter/img/static/uAjP0V10qIEJn4ruztGa" mode="aspectFit"></image>
|
||||
<view class="txt">代理入口</view>
|
||||
</view>
|
||||
<view style="margin-top:40rpx" class="botcard" @click="btnhuiyuan">
|
||||
<!-- <view style="margin-top:40rpx" class="botcard" @click="btnhuiyuan">
|
||||
<image src="https://api.ccttiot.com/smartmeter/img/static/uAjP0V10qIEJn4ruztGa" mode="aspectFit"></image>
|
||||
<view class="txt">会员卡</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<view style="margin-top:40rpx" class="botcard" @click="btntuichu">
|
||||
<image src="https://api.ccttiot.com/smartmeter/img/static/uSBN3RkeyeJLJev5Sk2F" mode="aspectFit"></image>
|
||||
<view class="txt">退出登录</view>
|
||||
|
|
|
@ -61,9 +61,8 @@
|
|||
<!-- 我的订单 -->
|
||||
</view>
|
||||
<view class="gr" @click="btngeren">
|
||||
<!-- <image src="https://api.ccttiot.com/smartmeter/img/static/u8rWtdPtHabALkII23Zr" mode="aspectFit"
|
||||
style="width: 96rpx;height:94rpx;"></image> -->
|
||||
<u-icon name="account" color="#000" size="38"></u-icon>
|
||||
<image src="https://api.ccttiot.com/smartmeter/img/static/u7l3mQi3FG22CShvxBHp" mode="aspectFit"
|
||||
style="width: 96rpx;height:94rpx;"></image>
|
||||
</view>
|
||||
<view class="gr" @click="btnindex(3)">
|
||||
<image src="https://api.ccttiot.com/smartmeter/img/static/uphoDfOVnT6VEyj6glfF" mode="aspectFit"
|
||||
|
|
Loading…
Reference in New Issue
Block a user