更改首页
This commit is contained in:
@@ -63,6 +63,7 @@ class webSocketUtils {
|
|||||||
this.canReconnect = true;
|
this.canReconnect = true;
|
||||||
clearInterval(this.heartbeatInterval);
|
clearInterval(this.heartbeatInterval);
|
||||||
clearInterval(this.reconnectTimeOut);
|
clearInterval(this.reconnectTimeOut);
|
||||||
|
try {
|
||||||
if (this.connectNum <= 10) {
|
if (this.connectNum <= 10) {
|
||||||
// uni.showLoading({
|
// uni.showLoading({
|
||||||
// title: `网络连接失败,正尝试第${this.connectNum}次连接`,
|
// title: `网络连接失败,正尝试第${this.connectNum}次连接`,
|
||||||
@@ -91,6 +92,9 @@ class webSocketUtils {
|
|||||||
uni.hideLoading()
|
uni.hideLoading()
|
||||||
}, 1000)
|
}, 1000)
|
||||||
}
|
}
|
||||||
|
} catch (e) {
|
||||||
|
//TODO handle the exception
|
||||||
|
}
|
||||||
});
|
});
|
||||||
// 这里仅是事件监听【如果socket关闭了会执行】
|
// 这里仅是事件监听【如果socket关闭了会执行】
|
||||||
this.socketTask.onClose(() => {
|
this.socketTask.onClose(() => {
|
||||||
|
|||||||
181
components/l-barrage/l-barrage.vue
Normal file
181
components/l-barrage/l-barrage.vue
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
<template>
|
||||||
|
<view class="l-barrage">
|
||||||
|
<block v-for="(item,index) in items" :key="index">
|
||||||
|
<!-- #ifdef H5 -->
|
||||||
|
<text v-if="item.display" class="aon" :style="{top: `${item.top}%`,color: item.color}">
|
||||||
|
{{item.text}}
|
||||||
|
</text>
|
||||||
|
<!-- #endif -->
|
||||||
|
|
||||||
|
<!-- #ifndef H5 -->
|
||||||
|
<!-- <text v-if="item.display" class="aon"
|
||||||
|
:style="{top: `${item.top}%`,color: item.color,
|
||||||
|
animation: `mymove ${Number(item.time)}s linear forwards`
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
{{item.text}}
|
||||||
|
</text> -->
|
||||||
|
<view v-if="item.display" class="aon"
|
||||||
|
style=" display: flex;justify-content: center;align-items: center; background-color: #000; padding:10rpx; border-radius: 10rpx;"
|
||||||
|
:style="{top: `${item.top}%`,
|
||||||
|
animation: `mymove ${Number(item.time)}s linear forwards`
|
||||||
|
}">
|
||||||
|
<image style="width: 50rpx; height: 50rpx;border-radius: 50%;" :src="avatar"
|
||||||
|
mode="aspectFill"></image>
|
||||||
|
<text style="color: #fff;">
|
||||||
|
{{item.text}}
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
|
<!-- #endif -->
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
let cycle;
|
||||||
|
|
||||||
|
// 弹幕字体颜色
|
||||||
|
function getRandomColor() {
|
||||||
|
let rgb = []
|
||||||
|
for (let i = 0; i < 3; ++i) {
|
||||||
|
let color = Math.floor(Math.random() * 256).toString(16)
|
||||||
|
color = color.length == 1 ? '0' + color : color
|
||||||
|
rgb.push(color)
|
||||||
|
}
|
||||||
|
return '#' + rgb.join('')
|
||||||
|
}
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'l-barrage',
|
||||||
|
props: {
|
||||||
|
minTime: {
|
||||||
|
type: Number,
|
||||||
|
default: 4
|
||||||
|
},
|
||||||
|
maxTime: {
|
||||||
|
type: Number,
|
||||||
|
default: 9
|
||||||
|
},
|
||||||
|
minTop: {
|
||||||
|
type: Number,
|
||||||
|
default: 8
|
||||||
|
},
|
||||||
|
maxTop: {
|
||||||
|
type: Number,
|
||||||
|
default: 16
|
||||||
|
},
|
||||||
|
avatar:{
|
||||||
|
type:String,
|
||||||
|
default:'@/static/1.gif'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
items: [],
|
||||||
|
userInfo: uni.cache.get('userInfo'), //个人信息
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
add(text = '', time = Math.ceil(Math.floor(Math.random() * (this.maxTime - this.minTime + 1) + this
|
||||||
|
.minTime))) {
|
||||||
|
this.items.push({
|
||||||
|
text,
|
||||||
|
time,
|
||||||
|
top: Math.ceil(Math.random() * (this.maxTop - this.minTop + 1) + this.minTop),
|
||||||
|
color: getRandomColor(),
|
||||||
|
display: 1,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
start(items = []) {
|
||||||
|
this.items = [];
|
||||||
|
cycle && (clearInterval(cycle));
|
||||||
|
let i = 0,
|
||||||
|
len = items.length;
|
||||||
|
|
||||||
|
cycle = setInterval(() => {
|
||||||
|
let time = 5;
|
||||||
|
// #ifndef H5
|
||||||
|
time = Math.ceil(Math.floor(Math.random() * (this.maxTime - this.minTime + 1) + this.minTime));
|
||||||
|
// #endif
|
||||||
|
|
||||||
|
if (i < len) {
|
||||||
|
this.add(items[i], time);
|
||||||
|
i++;
|
||||||
|
} else {
|
||||||
|
clearInterval(cycle);
|
||||||
|
setTimeout(() => {
|
||||||
|
this.$emit("end", {});
|
||||||
|
}, time * 1000)
|
||||||
|
}
|
||||||
|
}, 500)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.aon {
|
||||||
|
position: fixed;
|
||||||
|
white-space: nowrap;
|
||||||
|
|
||||||
|
animation: mymove 5s linear forwards;
|
||||||
|
animation-timing-function: linear;
|
||||||
|
-webkit-animation-timing-function: linear;
|
||||||
|
animation-fill-mode: forwards;
|
||||||
|
}
|
||||||
|
|
||||||
|
.l-barrage {
|
||||||
|
z-index: 99;
|
||||||
|
width: 100%;
|
||||||
|
position: fixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes mymove {
|
||||||
|
from {
|
||||||
|
left: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
left: -200%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@-moz-keyframes mymove
|
||||||
|
|
||||||
|
/* Firefox */
|
||||||
|
{
|
||||||
|
from {
|
||||||
|
left: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
left: -200%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes mymove
|
||||||
|
|
||||||
|
/* Safari and Chrome */
|
||||||
|
{
|
||||||
|
from {
|
||||||
|
left: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
left: -200%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@-o-keyframes mymove
|
||||||
|
|
||||||
|
/* Opera */
|
||||||
|
{
|
||||||
|
from {
|
||||||
|
left: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
left: -200%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
# 测试发现h5不支持
|
|
||||||
## 如何使用
|
|
||||||
```
|
|
||||||
<template>
|
|
||||||
<view class="barrage-test">
|
|
||||||
<vastwu-barrage width="750rpx" height="1300rpx" ref="vBarrage"></vastwu-barrage>
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
<script>
|
|
||||||
const list = ['模拟弹幕效果','宽度如要修改请留意动画是从750rpx到-100%','高度默认100%','随机颜色','随机速度','图标可设置','图标大小可控','可自定义高度轨道','高度轨道数组多长,一屏幕就能播多少列','高度不够不会显示','欢迎使用','不会重叠']
|
|
||||||
import vastwuBarrage from '@/components/vastwu-barrage/vastwu-barrage.vue'
|
|
||||||
export default {
|
|
||||||
components:{vastwuBarrage},
|
|
||||||
data() {
|
|
||||||
return {}
|
|
||||||
},
|
|
||||||
onLoad() {
|
|
||||||
this.$refs.vBarrage.init(list)
|
|
||||||
},
|
|
||||||
methods: {}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.barrage-test{
|
|
||||||
background-color: #C0C0C0
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
```
|
|
||||||
|
|
||||||
## 参数说明
|
|
||||||
|参数|类型|默认|说明|
|
|
||||||
|:-|:-:|-:|-:|
|
|
||||||
|trackList|Array|[0,100,200,300,400,500,600,700,800,900,1000]|自定义弹幕轨道,值为距离容器顶部的距离,可根据图标高度自行调整|
|
|
||||||
|icon|String||默认图标|
|
|
||||||
|iconWidth|String|62rpx|图标宽度|
|
|
||||||
|iconHeight|String|'86rpx'|图标高度|
|
|
||||||
|minTime|Number|7|最短过渡时间|
|
|
||||||
|maxTime|Number|10|最长过渡时间|
|
|
||||||
|width|String|'100%'|容器宽度|
|
|
||||||
|height|String|'100%'|容器高度|
|
|
||||||
@@ -16,10 +16,10 @@ const baseUrlwws = 'ws://cashier.sxczgkj.cn/cashierService'
|
|||||||
// #endif
|
// #endif
|
||||||
|
|
||||||
// #ifdef APP || MP-WEIXIN
|
// #ifdef APP || MP-WEIXIN
|
||||||
const baseUrl = debug ? proxyApi : 'https://cashier.sxczgkj.cn/cashierService' // 线上
|
// const baseUrl = debug ? proxyApi : 'https://cashier.sxczgkj.cn/cashierService' // 线上、、
|
||||||
const baseUrlwws = debug ? proxyApiwws : 'wss://cashier.sxczgkj.cn/netty' // 线上
|
// const baseUrlwws = debug ? proxyApiwws : 'wss://cashier.sxczgkj.cn/netty' // 线上
|
||||||
// const baseUrl = 'https://cashier.sxczgkj.cn/cashierService' // 线上
|
const baseUrl = 'https://cashier.sxczgkj.cn/cashierService' // 线上
|
||||||
// const baseUrlwws = 'wss://cashier.sxczgkj.cn/netty' // 线上/
|
const baseUrlwws = 'wss://cashier.sxczgkj.cn/netty' // 线上/
|
||||||
// #endif
|
// #endif
|
||||||
|
|
||||||
// import VConsole from "./vConsole.js"
|
// import VConsole from "./vConsole.js"
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"devDependencies": {
|
|
||||||
"sass": "^1.69.5",
|
|
||||||
"sass-loader": "^13.3.2"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"lodash": "^4.17.21"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -94,6 +94,12 @@
|
|||||||
"navigationBarTitleText": "订单详情"
|
"navigationBarTitleText": "订单详情"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/order_detail/indexs",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "订单详情"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "pages/order/successful",
|
"path": "pages/order/successful",
|
||||||
"style": {
|
"style": {
|
||||||
|
|||||||
@@ -1,266 +0,0 @@
|
|||||||
<template>
|
|
||||||
<view>
|
|
||||||
<view class="banner-wrap">
|
|
||||||
<u-swiper :list="banners" height="440" radius="0" :indicator="banners.length > 1"
|
|
||||||
imgMode="widthFix"></u-swiper>
|
|
||||||
</view>
|
|
||||||
<view class="container">
|
|
||||||
<view class="user-info">
|
|
||||||
<view class="top">
|
|
||||||
<view class="col">
|
|
||||||
<view style="width: 36px; height: 36px;border-radius: 10rpx;">
|
|
||||||
<button open-type="chooseAvatar" @chooseavatar='onChooseAvatar'
|
|
||||||
style="padding: 0;margin: 0; width: 36px; height: 36px;border-radius: 10rpx;">
|
|
||||||
<image style="width: 36px; height: 36px;" v-if="userInfo.avatar" :src="userInfo.avatar" mode="aspectFill">
|
|
||||||
</image>
|
|
||||||
<image style="width: 36px; height: 36px;" v-else src="@/static/avatar.png" mode="aspectFill">
|
|
||||||
</image>
|
|
||||||
</button>
|
|
||||||
</view>
|
|
||||||
<text class="t">{{userInfo.nickName}}</text>
|
|
||||||
</view>
|
|
||||||
<navigator class="ewm-wrap" url="/pages/pay_code/pay_code" hover-class="none">
|
|
||||||
<image class="ewm" src="https://czg-qr-order.oss-cn-beijing.aliyuncs.com/drder/ewm.png" mode="aspectFit"></image>
|
|
||||||
<text class="t">会员码</text>
|
|
||||||
</navigator>
|
|
||||||
</view>
|
|
||||||
<view class="bottom">
|
|
||||||
<view class="col">
|
|
||||||
<text class="t1 num">{{shopUser.amount || '0'}}</text>
|
|
||||||
<text class="t2">余额</text>
|
|
||||||
</view>
|
|
||||||
<view class="col">
|
|
||||||
<text class="t1 num">{{shopUser.levelConsume || '0'}}</text>
|
|
||||||
<text class="t2">积分</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="menu-wrap">
|
|
||||||
<view class="top-wrap">
|
|
||||||
<view class="item" @click="scanCodehandle">
|
|
||||||
<image class="bg" src="../../static/index_m2.png" mode="widthFix"></image>
|
|
||||||
<view class="btn">
|
|
||||||
<text class="t">扫码点餐</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="item" @click="memberindex">
|
|
||||||
<image class="bg" src="../../static/index_m1.png" mode="widthFix"></image>
|
|
||||||
<view class="btn">
|
|
||||||
<text class="t">会员充值</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="footer-banner">
|
|
||||||
<u-swiper :list="footerBanners" radius="20" height="160" :indicator="banners.length > 1"
|
|
||||||
imgMode="widthFix"></u-swiper>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import uploadImage from "@/js_sdk/yushijie-ossutil/ossutil/uploadFile.js";
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
banners: [require('@/static/banner1.png')],
|
|
||||||
footerBanners: [require('@/static/footer_banner1.png')],
|
|
||||||
userInfo: {},
|
|
||||||
shopInfo:{}
|
|
||||||
};
|
|
||||||
},
|
|
||||||
onLoad() {
|
|
||||||
// #ifdef MP-WEIXIN
|
|
||||||
if (!uni.cache.get('token')) {
|
|
||||||
uni.reLaunch({
|
|
||||||
url: '/pages/login/login'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// #endif
|
|
||||||
},
|
|
||||||
onShow() {
|
|
||||||
if (uni.cache.get('token')) {
|
|
||||||
this.loginwxuserInfo()
|
|
||||||
}else{
|
|
||||||
uni.reLaunch({
|
|
||||||
url: '/pages/login/login'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
async loginwxuserInfo() {
|
|
||||||
let res = await this.api.loginwxuserInfo({
|
|
||||||
userId: uni.cache.get('userInfo').id,
|
|
||||||
shopId: uni.cache.get('shopUser')
|
|
||||||
})
|
|
||||||
if (res.code == 0) {
|
|
||||||
uni.cache.set('userInfo', res.data.userInfo);
|
|
||||||
uni.cache.set('shopUser', res.data.shopUser);
|
|
||||||
uni.cache.set('shopInfo', res.data.shopInfo);
|
|
||||||
this.shopUser = uni.cache.get('shopUser')
|
|
||||||
this.userInfo = uni.cache.get('userInfo')
|
|
||||||
this.shopInfo = uni.cache.get('shopInfo')
|
|
||||||
}
|
|
||||||
},
|
|
||||||
scanCodehandle() {
|
|
||||||
uni.scanCode({
|
|
||||||
success: (res) => {
|
|
||||||
let tableCode = this.getQueryString(decodeURIComponent(res.result), 'code')
|
|
||||||
if (tableCode) {
|
|
||||||
uni.pro.navigateTo('order_food/order_food', {
|
|
||||||
tableCode: tableCode,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
},
|
|
||||||
memberindex() {
|
|
||||||
uni.pro.navigateTo('member/index')
|
|
||||||
},
|
|
||||||
getQueryString(url, name) { //解码
|
|
||||||
var reg = new RegExp('(^|&|/?)' + name + '=([^&|/?]*)(&|/?|$)', 'i')
|
|
||||||
var r = url.substr(1).match(reg)
|
|
||||||
if (r != null) {
|
|
||||||
return r[2]
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
},
|
|
||||||
|
|
||||||
// / 更换头像
|
|
||||||
onChooseAvatar(e) {
|
|
||||||
uni.showLoading({
|
|
||||||
title: '上传中',
|
|
||||||
mask: true
|
|
||||||
})
|
|
||||||
console.log(e.detail.avatarUrl)
|
|
||||||
let file = e.detail.avatarUrl;
|
|
||||||
uploadImage(file, 'avatar',
|
|
||||||
result => {
|
|
||||||
//将上传后的图片以对象(官方要求的格式)的形式存入uni-file-picker的value值imageValue(imageValue值的结构为数组包对象)用于图片回显
|
|
||||||
// let objAge = {
|
|
||||||
// 'url': result,
|
|
||||||
// 'extname': 'png',
|
|
||||||
// 'name': 'imgss.png'
|
|
||||||
// };
|
|
||||||
// this.userlist.avatar.push(objAge)
|
|
||||||
this.userInfo.avatar = result
|
|
||||||
console.log(this.userInfo.avatar)
|
|
||||||
uni.hideLoading()
|
|
||||||
}, result => {
|
|
||||||
uni.hideLoading()
|
|
||||||
})
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
.container {
|
|
||||||
padding: 40upx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.user-info {
|
|
||||||
background-color: #fff;
|
|
||||||
padding: 40upx;
|
|
||||||
border-radius: 20upx;
|
|
||||||
|
|
||||||
.top {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
border-bottom: 1upx solid #ececec;
|
|
||||||
padding-bottom: 42upx;
|
|
||||||
|
|
||||||
.col {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
.t {
|
|
||||||
margin-left: 20upx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.ewm-wrap {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
.ewm {
|
|
||||||
$size: 50upx;
|
|
||||||
width: $size;
|
|
||||||
height: $size;
|
|
||||||
}
|
|
||||||
|
|
||||||
.t {
|
|
||||||
font-size: 20upx;
|
|
||||||
padding-top: 8upx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.bottom {
|
|
||||||
padding-top: 40upx;
|
|
||||||
display: flex;
|
|
||||||
|
|
||||||
.col {
|
|
||||||
flex: 1;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
flex-direction: column;
|
|
||||||
|
|
||||||
.t1 {
|
|
||||||
font-size: 38upx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-wrap {
|
|
||||||
padding: 40upx 0 0 0;
|
|
||||||
$gap: 20upx;
|
|
||||||
|
|
||||||
.top-wrap {
|
|
||||||
display: flex;
|
|
||||||
gap: $gap;
|
|
||||||
|
|
||||||
.item {
|
|
||||||
flex: auto;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
flex-direction: column;
|
|
||||||
background-color: #fff;
|
|
||||||
border-radius: 20upx;
|
|
||||||
position: relative;
|
|
||||||
|
|
||||||
.bg {
|
|
||||||
width: 100%;
|
|
||||||
height: auto;
|
|
||||||
border-radius: $gap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn {
|
|
||||||
margin-top: $gap;
|
|
||||||
padding: $gap $gap * 2;
|
|
||||||
border-radius: 100upx;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
font-size: 32upx;
|
|
||||||
background-color: #fff;
|
|
||||||
box-shadow: 0 12upx 12upx rgba(0, 0, 0, 0.05);
|
|
||||||
position: absolute;
|
|
||||||
bottom: $gap * 2;
|
|
||||||
left: 50%;
|
|
||||||
transform: translateX(-50%);
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer-banner {
|
|
||||||
padding-top: 20upx;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="content">
|
<view class="content">
|
||||||
|
<view v-if="showindex">
|
||||||
<!-- 导航栏 -->
|
<!-- 导航栏 -->
|
||||||
<view class="navbar" :class="{active:opacity}">
|
<view class="navbar" :class="{active:opacity}">
|
||||||
<!-- #ifndef APP-PLUS || MP-WEIXIN -->
|
<!-- #ifndef APP-PLUS || MP-WEIXIN -->
|
||||||
@@ -23,15 +24,16 @@
|
|||||||
size="16"></u-icon>
|
size="16"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
<view class="navbar_tow_tow flex-start">
|
<view class="navbar_tow_tow flex-start">
|
||||||
<input type="text" class="navbar_tow_towinput" v-model="keyword" placeholder="请输入关键字" />
|
<input type="text" class="navbar_tow_towinput" v-model="keyword"
|
||||||
|
placeholder="请输入关键字" />
|
||||||
<view class="navbar_tow_towview">搜索</view>
|
<view class="navbar_tow_towview">搜索</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 吸顶 -->
|
<!-- 吸顶 -->
|
||||||
<view v-if="isFixedTop" class="fourcontent flex-between">
|
<view v-if="isFixedTop" class="fourcontent flex-between">
|
||||||
<view class="fourcontent_item flex-start" v-for="(item,index) in hometoplist.menu" :key="index"
|
<view class="fourcontent_item flex-start" v-for="(item,index) in hometoplist.menu"
|
||||||
@click="viewHistory(item,index)"
|
:key="index" @click="viewHistory(item,index)"
|
||||||
:class="!item.isChild && viewHistoryindex == index ? 'fourcontent_itemactev':''">
|
:class="!item.isChild && viewHistoryindex == index ? 'fourcontent_itemactev':''">
|
||||||
<text>{{item.name}}</text>
|
<text>{{item.name}}</text>
|
||||||
<u-icon v-if="item.isChild" style="margin-left: 8rpx;" name="arrow-down-fill"
|
<u-icon v-if="item.isChild" style="margin-left: 8rpx;" name="arrow-down-fill"
|
||||||
@@ -53,8 +55,8 @@
|
|||||||
<view class="fourcontent">
|
<view class="fourcontent">
|
||||||
<!-- 用于防止榻卸 -->
|
<!-- 用于防止榻卸 -->
|
||||||
<view class="flex-between" style="flex-wrap: inherit;" v-if="!isFixedTop">
|
<view class="flex-between" style="flex-wrap: inherit;" v-if="!isFixedTop">
|
||||||
<view class="fourcontent_item flex-start" v-for="(item,index) in hometoplist.menu" :key="index"
|
<view class="fourcontent_item flex-start" v-for="(item,index) in hometoplist.menu"
|
||||||
@click="viewHistory(item,index)"
|
:key="index" @click="viewHistory(item,index)"
|
||||||
:class="!item.isChild && viewHistoryindex == index ? 'fourcontent_itemactev':''">
|
:class="!item.isChild && viewHistoryindex == index ? 'fourcontent_itemactev':''">
|
||||||
<text style="margin-right: 10rpx;">{{item.name}}</text>
|
<text style="margin-right: 10rpx;">{{item.name}}</text>
|
||||||
<u-icon v-if="item.isChild" style="margin-left: 10rpx;" name="arrow-down-fill"
|
<u-icon v-if="item.isChild" style="margin-left: 10rpx;" name="arrow-down-fill"
|
||||||
@@ -129,7 +131,8 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="indexboxitemleftthere_countdown flex-between">
|
<view class="indexboxitemleftthere_countdown flex-between">
|
||||||
<text class="indexboxitemleftthere_countdowntext">共省{{item.save}}元</text>
|
<text
|
||||||
|
class="indexboxitemleftthere_countdowntext">共省{{item.save}}元</text>
|
||||||
<view class="indexboxitemleftthere_countdowntexts">
|
<view class="indexboxitemleftthere_countdowntexts">
|
||||||
<uni-countdown @timeup="updateCity" :show-day="false"
|
<uni-countdown @timeup="updateCity" :show-day="false"
|
||||||
:day="item.end_times.d" :hour="item.end_times.h"
|
:day="item.end_times.d" :hour="item.end_times.h"
|
||||||
@@ -174,8 +177,8 @@
|
|||||||
<view class="navbar_tow_one flex-start" @click="uindexlist">
|
<view class="navbar_tow_one flex-start" @click="uindexlist">
|
||||||
<text class="textnth-childone">{{NAME}}</text>
|
<text class="textnth-childone">{{NAME}}</text>
|
||||||
<text class="textnth-childtow">{{form.address}}</text>
|
<text class="textnth-childtow">{{form.address}}</text>
|
||||||
<u-icon style="margin-left: 8rpx;" name="arrow-down-fill" color="#333333"
|
<u-icon style="margin-left: 8rpx;" name="arrow-down-fill"
|
||||||
size="16"></u-icon>
|
color="#333333" size="16"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
<view class="navbar_tow_tow flex-start">
|
<view class="navbar_tow_tow flex-start">
|
||||||
<input type="text" class="navbar_tow_towinput" v-model="keyword"
|
<input type="text" class="navbar_tow_towinput" v-model="keyword"
|
||||||
@@ -186,20 +189,23 @@
|
|||||||
</view>
|
</view>
|
||||||
<!-- 吸顶 -->
|
<!-- 吸顶 -->
|
||||||
<view class="fourcontent flex-between">
|
<view class="fourcontent flex-between">
|
||||||
<view class="fourcontent_item flex-start" v-for="(item,index) in hometoplist.menu"
|
<view class="fourcontent_item flex-start"
|
||||||
:key="index" @click="viewHistory(item,index)"
|
v-for="(item,index) in hometoplist.menu" :key="index"
|
||||||
|
@click="viewHistory(item,index)"
|
||||||
:class="!item.isChild && viewHistoryindex == index ? 'fourcontent_itemactev':''">
|
:class="!item.isChild && viewHistoryindex == index ? 'fourcontent_itemactev':''">
|
||||||
<text>{{item.name}}</text>
|
<text>{{item.name}}</text>
|
||||||
<u-icon v-if="item.isChild" style="margin-left: 10rpx;" name="arrow-down-fill"
|
<u-icon v-if="item.isChild" style="margin-left: 10rpx;"
|
||||||
color="#333333" size="16"></u-icon>
|
name="arrow-down-fill" color="#333333" size="16"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 显示下拉字段 -->
|
<!-- 显示下拉字段 -->
|
||||||
|
|
||||||
<view class="sixcontent" v-if="clickhometoplistmenulist.quilt == '1' ">
|
<view class="sixcontent" v-if="clickhometoplistmenulist.quilt == '1' ">
|
||||||
<view class="sixcontentitemP flex-start" style="padding-bottom:0 ;">
|
<view class="sixcontentitemP flex-start" style="padding-bottom:0 ;">
|
||||||
<category style="width: 100%;" :categoryList="clickhometoplistmenulist.detail"
|
<category style="width: 100%;"
|
||||||
:subCategoryList="subCategoryList" @categoryMainClick="categoryMainClick"
|
:categoryList="clickhometoplistmenulist.detail"
|
||||||
|
:subCategoryList="subCategoryList"
|
||||||
|
@categoryMainClick="categoryMainClick"
|
||||||
@categorySubClick="categorySubClick">
|
@categorySubClick="categorySubClick">
|
||||||
</category>
|
</category>
|
||||||
</view>
|
</view>
|
||||||
@@ -218,6 +224,9 @@
|
|||||||
</view>
|
</view>
|
||||||
</u-popup>
|
</u-popup>
|
||||||
|
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<indexs v-if="!showindex" :usershopUserinfo='usershopUserinfo'></indexs>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@@ -228,6 +237,7 @@
|
|||||||
import advertisement from './components/advertisement.vue'
|
import advertisement from './components/advertisement.vue'
|
||||||
import customSwiper from '@/components/blackmonth-swiper/index'
|
import customSwiper from '@/components/blackmonth-swiper/index'
|
||||||
import category from '@/components/qiyue-category/qiyue-category.vue';
|
import category from '@/components/qiyue-category/qiyue-category.vue';
|
||||||
|
import indexs from './indexs.vue';
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
swipers,
|
swipers,
|
||||||
@@ -236,10 +246,12 @@
|
|||||||
productlist,
|
productlist,
|
||||||
advertisement,
|
advertisement,
|
||||||
category,
|
category,
|
||||||
customSwiper
|
customSwiper,
|
||||||
|
indexs
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
showindex: false,
|
||||||
NAME: uni.cache.get('NAME'),
|
NAME: uni.cache.get('NAME'),
|
||||||
timersetInterval: '0', //定时器
|
timersetInterval: '0', //定时器
|
||||||
isFixedTop: false, //吸顶是否显示
|
isFixedTop: false, //吸顶是否显示
|
||||||
@@ -276,7 +288,9 @@
|
|||||||
clickdetailtowlist: [],
|
clickdetailtowlist: [],
|
||||||
// 二级菜单
|
// 二级菜单
|
||||||
categoryList: [],
|
categoryList: [],
|
||||||
subCategoryList: [] //二级菜单数据
|
subCategoryList: [], //二级菜单数据
|
||||||
|
// 登录后店铺信息
|
||||||
|
usershopUserinfo:{}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -314,7 +328,19 @@
|
|||||||
onReachBottom() {
|
onReachBottom() {
|
||||||
this.onLoadhome()
|
this.onLoadhome()
|
||||||
},
|
},
|
||||||
onShow() {
|
async onShow() {
|
||||||
|
// 判断显示那个页面
|
||||||
|
if (uni.cache.get('shopUser') && uni.cache.get('token')) {
|
||||||
|
this.showindex = false
|
||||||
|
uni.cache.set('types', 'index');
|
||||||
|
let res = await this.api.shopUserInfo({
|
||||||
|
"shopId": uni.cache.get('shopUser'),
|
||||||
|
"userId": uni.cache.get('userInfo').id,
|
||||||
|
})
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.usershopUserinfo = res.data
|
||||||
|
}
|
||||||
|
} else {
|
||||||
uni.getLocation({
|
uni.getLocation({
|
||||||
type: 'wgs84',
|
type: 'wgs84',
|
||||||
success: async (res) => {
|
success: async (res) => {
|
||||||
@@ -338,7 +364,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
fail: async (err) => {
|
fail: async (err) => {
|
||||||
console.log(err, '获取错误')
|
console.log(err, '获取错误') //测试用于app
|
||||||
let successres = await this.api.geocodelocation({
|
let successres = await this.api.geocodelocation({
|
||||||
lng: '',
|
lng: '',
|
||||||
lat: '',
|
lat: '',
|
||||||
@@ -346,8 +372,6 @@
|
|||||||
if (successres.code == 0) {
|
if (successres.code == 0) {
|
||||||
console.log(successres.data.addressComponent.streetNumber.location.split(','))
|
console.log(successres.data.addressComponent.streetNumber.location.split(','))
|
||||||
let res = successres.data.addressComponent.streetNumber.location.split(',')
|
let res = successres.data.addressComponent.streetNumber.location.split(',')
|
||||||
// this.form.lng = res[0]
|
|
||||||
// this.form.lat = res[1]
|
|
||||||
let datastorage = {
|
let datastorage = {
|
||||||
country: successres.data.addressComponent.country, // "中国"
|
country: successres.data.addressComponent.country, // "中国"
|
||||||
province: successres.data.addressComponent.province, //province: "陕西省"
|
province: successres.data.addressComponent.province, //province: "陕西省"
|
||||||
@@ -363,7 +387,8 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
this.showindex = true
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
closeproductlist() {
|
closeproductlist() {
|
||||||
|
|||||||
273
pages/index/indexs.vue
Normal file
273
pages/index/indexs.vue
Normal file
@@ -0,0 +1,273 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<u-swiper :list="banners" height="460" radius="0" :indicator="banners.length > 1" imgMode="widthFix"></u-swiper>
|
||||||
|
<view class="container">
|
||||||
|
<view class="after"></view>
|
||||||
|
<view class="onecontent flex-between">
|
||||||
|
<view class="onecontentone flex-start">
|
||||||
|
<image :src="userInfo.headImg" mode="aspectFill">
|
||||||
|
<text>{{userInfo.nickName || '无'}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="onecontenttow flex-start">
|
||||||
|
<view class="onecontenttowring flex-colum" @click="memberindex(0)">
|
||||||
|
<text class="onecontenttowringone">{{usershopUserinfo.amount || '0.00'}}</text>
|
||||||
|
<text class="onecontenttowringtow">余额</text>
|
||||||
|
</view>
|
||||||
|
<!-- <view class="onecontenttowring flex-colum">
|
||||||
|
<text class="onecontenttowringone">282</text>
|
||||||
|
<text class="onecontenttowringtow">积分</text>
|
||||||
|
</view> -->
|
||||||
|
<view class="onecontenttowring flex-colum" @click="memberindex(1)">
|
||||||
|
<image class="onecontenttowringone image"
|
||||||
|
src="https://czg-qr-order.oss-cn-beijing.aliyuncs.com/index/rwm.png" mode="aspectFill">
|
||||||
|
</image>
|
||||||
|
<text class="onecontenttowringtow">会员码</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="towcontent flex-between">
|
||||||
|
<view class="towcontentitem flex-colum" @click="scanCodehandle(0)">
|
||||||
|
<image src="https://czg-qr-order.oss-cn-beijing.aliyuncs.com/index/Instore.png" mode="widthFix"
|
||||||
|
style="width: 86.88rpx; height: 140.94rpx;"></image>
|
||||||
|
<text class="towcontentitemtext">店内就餐</text>
|
||||||
|
</view>
|
||||||
|
<view class="towcontentitem flex-colum" @click="scanCodehandle(1)">
|
||||||
|
<image src="https://czg-qr-order.oss-cn-beijing.aliyuncs.com/index/takeaway.png" mode="widthFix"
|
||||||
|
style="width: 128.05rpx; height: 120.41rpx;"></image>
|
||||||
|
<text class="towcontentitemtext">点个外卖</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="footer-banner">
|
||||||
|
<!-- <u-swiper :list="footerBanners" radius="20" height="274" :indicator="banners.length > 1"
|
||||||
|
imgMode="widthFix"></u-swiper> -->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import uploadImage from "@/js_sdk/yushijie-ossutil/ossutil/uploadFile.js";
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
banners: ['https://czg-qr-order.oss-cn-beijing.aliyuncs.com/index/banner1.png'],
|
||||||
|
footerBanners: ['https://czg-qr-order.oss-cn-beijing.aliyuncs.com/index/footer_banner1.png'],
|
||||||
|
userInfo: uni.cache.get('userInfo'),
|
||||||
|
};
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
usershopUserinfo: {
|
||||||
|
type: Object,
|
||||||
|
default () {
|
||||||
|
return {
|
||||||
|
amount:'',
|
||||||
|
shopName: ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
scanCodehandle(i) {
|
||||||
|
if (i == 0) {
|
||||||
|
uni.scanCode({
|
||||||
|
success: (res) => {
|
||||||
|
let tableCode = this.getQueryString(decodeURIComponent(res.result), 'code')
|
||||||
|
uni.cache.set('tableCode', tableCode)
|
||||||
|
if (tableCode) {
|
||||||
|
uni.pro.navigateTo('order_food/order_food')
|
||||||
|
}
|
||||||
|
// let tableCode = this.getQueryString(decodeURIComponent(res.result), 'code')
|
||||||
|
// if (tableCode) {
|
||||||
|
// uni.pro.navigateTo('order_food/order_food', {
|
||||||
|
// tableCode: tableCode,
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// uni.navigateTo({
|
||||||
|
// url:'/pages/order_food/order_food'
|
||||||
|
// })
|
||||||
|
} else {
|
||||||
|
uni.showToast({
|
||||||
|
title: '此店铺暂未开通外卖',
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
memberindex(i) {
|
||||||
|
if (i == 0) {
|
||||||
|
uni.pro.navigateTo('member/memberdetails', {
|
||||||
|
shopId_id: uni.cache.get('shopUser'),
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
// uni.pro.navigateTo('pay_code/pay_code?shopInfo=', {
|
||||||
|
// shopName: this.usershopUserinfo.shopName,
|
||||||
|
// amount: this.usershopUserinfo.amount,
|
||||||
|
// shopId: uni.cache.get('shopUser')
|
||||||
|
// })
|
||||||
|
let data = {
|
||||||
|
shopName: this.usershopUserinfo.shopName,
|
||||||
|
amount: this.usershopUserinfo.amount,
|
||||||
|
shopId: uni.cache.get('shopUser')
|
||||||
|
}
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/pay_code/pay_code?shopInfo=' + JSON.stringify(data)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
getQueryString(url, name) { //解码
|
||||||
|
var reg = new RegExp('(^|&|/?)' + name + '=([^&|/?]*)(&|/?|$)', 'i')
|
||||||
|
var r = url.substr(1).match(reg)
|
||||||
|
if (r != null) {
|
||||||
|
return r[2]
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
|
||||||
|
// / 更换头像
|
||||||
|
onChooseAvatar(e) {
|
||||||
|
uni.showLoading({
|
||||||
|
title: '上传中',
|
||||||
|
mask: true
|
||||||
|
})
|
||||||
|
console.log(e.detail.avatarUrl)
|
||||||
|
let file = e.detail.avatarUrl;
|
||||||
|
uploadImage(file, 'avatar',
|
||||||
|
result => {
|
||||||
|
//将上传后的图片以对象(官方要求的格式)的形式存入uni-file-picker的value值imageValue(imageValue值的结构为数组包对象)用于图片回显
|
||||||
|
// let objAge = {
|
||||||
|
// 'url': result,
|
||||||
|
// 'extname': 'png',
|
||||||
|
// 'name': 'imgss.png'
|
||||||
|
// };
|
||||||
|
// this.userlist.avatar.push(objAge)
|
||||||
|
this.userInfo.avatar = result
|
||||||
|
console.log(this.userInfo.avatar)
|
||||||
|
uni.hideLoading()
|
||||||
|
}, result => {
|
||||||
|
uni.hideLoading()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
page {
|
||||||
|
background: #F6F8FA;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
border-radius: 0 0 0 40rpx;
|
||||||
|
position: relative;
|
||||||
|
padding: 0 28rpx;
|
||||||
|
|
||||||
|
.after {
|
||||||
|
position: absolute;
|
||||||
|
top:46rpx;
|
||||||
|
right: 0;
|
||||||
|
width: 40rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
line-height: 40rpx;
|
||||||
|
text-align: center;
|
||||||
|
background-image: radial-gradient(160rpx at 0px 0px, rgba(0, 0, 0, 0) 40rpx, #f9f9f9 40rpx);
|
||||||
|
}
|
||||||
|
|
||||||
|
.onecontent {
|
||||||
|
width: 100%;
|
||||||
|
margin-top: -86rpx;
|
||||||
|
position: relative;
|
||||||
|
height: 172rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
box-shadow: 0rpx 6rpx 12rpx 2rpx rgba(0, 0, 0, 0.16);
|
||||||
|
border-radius: 14rpx;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
|
||||||
|
.onecontentone {
|
||||||
|
image {
|
||||||
|
width: 108rpx;
|
||||||
|
height: 108rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border: 2rpx solid #707070;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
text {
|
||||||
|
margin-left: 12rpx;
|
||||||
|
width: 146rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.onecontenttow {
|
||||||
|
.onecontenttowring {
|
||||||
|
margin-left: 32rpx;
|
||||||
|
height: 110rpx;
|
||||||
|
justify-content: flex-end;
|
||||||
|
|
||||||
|
.onecontenttowringone {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image {
|
||||||
|
width: 42rpx;
|
||||||
|
height: 42rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.onecontenttowringtow {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.towcontent {
|
||||||
|
margin-top: 48rpx;
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
background: #FFFFFF;
|
||||||
|
box-shadow: 0rpx 6rpx 12rpx 2rpx rgba(0, 0, 0, 0.16);
|
||||||
|
border-radius: 14rpx 14rpx 14rpx 14rpx;
|
||||||
|
height: 314rpx;
|
||||||
|
padding: 0 90rpx 0 120rpx;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
position: absolute;
|
||||||
|
content: '';
|
||||||
|
display: inline-block;
|
||||||
|
height: 188rpx;
|
||||||
|
width: 2rpx;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -1rpx;
|
||||||
|
background: #D8D8D8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.towcontentitem {
|
||||||
|
.towcontentitemtext {
|
||||||
|
margin-top: 26rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-banner {
|
||||||
|
margin-top: 48upx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
605
pages/order/order_detail - 副本.vue
Normal file
605
pages/order/order_detail - 副本.vue
Normal file
@@ -0,0 +1,605 @@
|
|||||||
|
<template>
|
||||||
|
<view class="container">
|
||||||
|
<view class="card">
|
||||||
|
<view class="head">
|
||||||
|
<text class="title">
|
||||||
|
<text>{{listinfo.name}}</text>
|
||||||
|
</text>
|
||||||
|
<text class="status" v-if="listinfo.status == 'unpaid' || listinfo.status == 'paying'">
|
||||||
|
<text> 待支付 </text>
|
||||||
|
</text>
|
||||||
|
<text class="status" v-if="listinfo.status == 'unsend'">
|
||||||
|
<text>待发货</text>
|
||||||
|
</text>
|
||||||
|
<text class="status" v-if="listinfo.status == 'closed'">
|
||||||
|
<text>订单完成</text>
|
||||||
|
</text>
|
||||||
|
<text class="status" v-if="listinfo.status == 'send'">
|
||||||
|
<text> 已发</text>
|
||||||
|
</text>
|
||||||
|
<text class="status" v-if="listinfo.status == 'refunding'">
|
||||||
|
<text>申请退单</text>
|
||||||
|
</text>
|
||||||
|
<text class="status" v-if="listinfo.status == 'refund'">
|
||||||
|
<text>退单</text>
|
||||||
|
</text>
|
||||||
|
<text class="status" v-if="listinfo.status == 'cancelled'">
|
||||||
|
<text>已取消</text>
|
||||||
|
</text>
|
||||||
|
<text class="status" v-if="listinfo.status == 'merge'">
|
||||||
|
<text>合台</text>
|
||||||
|
</text>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<view class="tag-wrap">
|
||||||
|
<text class="tag" v-if="listinfo.sendType == 'post'">快递</text>
|
||||||
|
<text class="tag" v-if="listinfo.sendType == 'takeaway'">外卖</text>
|
||||||
|
<text class="tag" v-if="listinfo.sendType == 'takeself'">自提</text>
|
||||||
|
<text class="tag" v-if="listinfo.sendType == 'table'">堂食</text>
|
||||||
|
</view>
|
||||||
|
<view v-if="listinfo.tableName">
|
||||||
|
桌号:{{listinfo.tableName}}
|
||||||
|
</view>
|
||||||
|
<view class="number-wrap" style="margin-top: 20rpx;"
|
||||||
|
v-if="listinfo.status != 'unpaid' && listinfo.status != 'paying'&& listinfo.status != 'cancelled'">
|
||||||
|
<text class="t">取餐号</text>
|
||||||
|
<text class="number">{{listinfo.outNumber}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="card">
|
||||||
|
<view class="head border" style="position: relative;">
|
||||||
|
<text class="title">
|
||||||
|
<text>点单详情</text>
|
||||||
|
</text>
|
||||||
|
|
||||||
|
<view style="display: flex;align-items: center;"
|
||||||
|
v-if="listinfo.status == 'unpaid' || listinfo.status == 'paying'">
|
||||||
|
<!-- <text style="font-size:24rpx;">支付时间:</text> -->
|
||||||
|
<uni-countdown :show-day="false" color="#ff0000" border-color="#00B26A" splitorColor="#000"
|
||||||
|
:font-size="14" :hour="0" :minute="listinfo.expiredMinutes" :second="listinfo.expiredSeconds" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="shop-info">
|
||||||
|
<view class="item" v-for="(item,index) in listinfo.details" :key="index">
|
||||||
|
<view class="cover">
|
||||||
|
<c-image width="120" height="120" radius="16" :src='item.productImg'></c-image>
|
||||||
|
</view>
|
||||||
|
<view class="info">
|
||||||
|
<text>{{item.productName}}</text>
|
||||||
|
<text class="n" v-if="item.productSkuName">{{item.productSkuName}}</text>
|
||||||
|
<text class="n">x{{item.num}}</text>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="price">
|
||||||
|
<text class="i">¥</text>
|
||||||
|
<text class="num">{{item.priceAmount}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="total-wrap">
|
||||||
|
<view class="price">
|
||||||
|
<text>合计:</text>
|
||||||
|
<text class="i">¥</text>
|
||||||
|
<text class="num">{{listinfo.payAmount}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="card">
|
||||||
|
<view class="head border">
|
||||||
|
<text class="title">订单信息</text>
|
||||||
|
</view>
|
||||||
|
<view class="order-info">
|
||||||
|
<view class="row" @click="copyHandle(listinfo.orderNo)">
|
||||||
|
<text class="t">订单信息:</text>
|
||||||
|
<text class="info">{{listinfo.orderNo}}(点击复制)</text>
|
||||||
|
</view>
|
||||||
|
<view class="row">
|
||||||
|
<text class="t">创建时间:</text>
|
||||||
|
<text class="info">{{$u.timeFormat(listinfo.time, 'yyyy-mm-dd hh:MM:ss')}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="card" style="padding-bottom: 20rpx;" v-if="listinfo.shopQrcode">
|
||||||
|
<image :src="listinfo.shopQrcode" show-menu-by-longpress="true" style="width: 100%;" mode="widthFix">
|
||||||
|
</image>
|
||||||
|
</view>
|
||||||
|
<view class="payType" v-if="listinfo.status == 'unpaid' || listinfo.status == 'paying'">
|
||||||
|
<view class="">
|
||||||
|
支付方式
|
||||||
|
</view>
|
||||||
|
<view class="">
|
||||||
|
<u-radio-group v-model="radiovalue" iconPlacement="right" @change="groupChange" :size="28"
|
||||||
|
placement="column">
|
||||||
|
<u-radio activeColor="#ffd158" name="1">
|
||||||
|
<view class="dfs">
|
||||||
|
<image style="width:44rpx;height:44rpx"
|
||||||
|
src="https://czg-qr-order.oss-cn-beijing.aliyuncs.com/drder/balance.png" mode="">
|
||||||
|
</image>
|
||||||
|
<text style="font-size: 28rpx;margin-left: 16rpx;">
|
||||||
|
微信支付
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
|
</u-radio>
|
||||||
|
<view style="margin: 22rpx 0;width: 100%;height: 2rpx;background-color: #E5E5E5;">
|
||||||
|
</view>
|
||||||
|
<u-radio activeColor="#ffd158" name="2">
|
||||||
|
<view class="dfs">
|
||||||
|
<image style="width:44rpx;height:44rpx"
|
||||||
|
src="https://czg-qr-order.oss-cn-beijing.aliyuncs.com/drder/wechat.png" mode="">
|
||||||
|
</image>
|
||||||
|
<text style="font-size: 28rpx;margin-left: 16rpx;">
|
||||||
|
会员卡支付</text>
|
||||||
|
</view>
|
||||||
|
</u-radio>
|
||||||
|
</u-radio-group>
|
||||||
|
<view style="font-weight: 400;font-size: 24rpx;color: #333333;margin-left: 60rpx;">
|
||||||
|
会员卡余额{{ amountVIP?amountVIP.amount:0}} <text
|
||||||
|
style="font-weight: 500;font-size: 28rpx;margin-left: 16rpx;color: #FF4C11;"
|
||||||
|
@click="goRecharge">去充值</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view :style="{height:height}">
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<view class="fixedview">
|
||||||
|
<view class="flex-between" v-if="listinfo.status == 'unpaid' || listinfo.status == 'paying'">
|
||||||
|
<view class="fixedview_one flex-start">
|
||||||
|
<view class="fixedview_oneone">
|
||||||
|
实付金额:
|
||||||
|
</view>
|
||||||
|
<view class="fixedview_onetow">
|
||||||
|
<text>¥</text>{{listinfo.payAmount}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="fixedview_tow" @tap="$u.debounce(showpopupclickddes,500)">
|
||||||
|
立即付款
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 支付密码 -->
|
||||||
|
<payPassword ref="payPwd" @accountPayevent="accountPayevent" v-if="ispws"></payPassword>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import payPassword from '@/components/payPassword.vue'
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
payPassword
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
height: '',
|
||||||
|
pay_type: 1,
|
||||||
|
orderId: '',
|
||||||
|
listinfo: {},
|
||||||
|
radiovalue: '1', //选择支付方式
|
||||||
|
ispws: false,
|
||||||
|
srcimge: 'https://czg-qr-order.oss-cn-beijing.aliyuncs.com/wx.jpg'
|
||||||
|
};
|
||||||
|
},
|
||||||
|
async onLoad(e) {
|
||||||
|
console.log(e)
|
||||||
|
this.orderId = e.orderId
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
this.orderorderInfo()
|
||||||
|
},
|
||||||
|
onUnload() {
|
||||||
|
uni.switchTab({
|
||||||
|
url: '/pages/order/order'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
groupChange(n) { //选择支付方式
|
||||||
|
this.radiovalue = n
|
||||||
|
},
|
||||||
|
mountedcreateSelectorQuery() {
|
||||||
|
//#ifdef MP-WEIXIN || H5
|
||||||
|
var query = uni.createSelectorQuery().in(this).select('.fixedview')
|
||||||
|
query.boundingClientRect(ele => {
|
||||||
|
var that = this;
|
||||||
|
console.log(ele, 111)
|
||||||
|
that.height = (ele.height) + "px"
|
||||||
|
that = null;
|
||||||
|
// uni.getSystemInfo({
|
||||||
|
// success(res) {
|
||||||
|
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
}).exec();
|
||||||
|
//#endif
|
||||||
|
//#ifdef MP-ALIPAY
|
||||||
|
my.createSelectorQuery().selectAll('.fixedview').boundingClientRect().exec(ele => {
|
||||||
|
var nodeData = ele[0]
|
||||||
|
var that = this;
|
||||||
|
that.height = (nodeData.height) + "px";
|
||||||
|
that = null;
|
||||||
|
})
|
||||||
|
//#endif
|
||||||
|
},
|
||||||
|
async paymodfiyOrderInfo() {
|
||||||
|
let res = await this.api.paymodfiyOrderInfo({
|
||||||
|
orderId: this.listinfo.orderId,
|
||||||
|
})
|
||||||
|
},
|
||||||
|
showpopupclickddes() {
|
||||||
|
// radiovalue为1是微信支付
|
||||||
|
if (this.radiovalue == 1) {
|
||||||
|
this.showpopupclick() //微信支付
|
||||||
|
} else {
|
||||||
|
// 先判断是否设置支付密码。0是没设置。没设置的情况下跳转到设置页面。有的话输入支付密码
|
||||||
|
// console.log(isPwd,'是否设置了支付密码')
|
||||||
|
if (uni.cache.get('userInfo').isPwd == 0) {
|
||||||
|
uni.pro.navigateTo('/pages/user/repairpassword', {
|
||||||
|
shopId_id: uni.cache.get('shopUser')
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.ispws = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.payPwd.onPayUp();
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async showpopupclick() {
|
||||||
|
let res = await this.api.payorderPay({
|
||||||
|
orderId: this.orderId,
|
||||||
|
}) //判断是否支付成功
|
||||||
|
if (res.code == 0) {
|
||||||
|
uni.showLoading({
|
||||||
|
title: '加载中',
|
||||||
|
mask: true
|
||||||
|
})
|
||||||
|
// #ifdef MP-WEIXIN
|
||||||
|
uni.requestPayment({
|
||||||
|
provider: 'wxpay', //支付类型-固定值
|
||||||
|
partnerid: res.data.appId, // 微信支付商户号
|
||||||
|
timeStamp: res.data.timeStamp, // 时间戳(单位:秒)
|
||||||
|
nonceStr: res.data.nonceStr, // 随机字符串
|
||||||
|
package: res.data.package, // 固定值
|
||||||
|
signType: res.data.signType, //固定值
|
||||||
|
paySign: res.data.paySign, //签名
|
||||||
|
success: (res) => {
|
||||||
|
uni.showToast({
|
||||||
|
title: "支付成功"
|
||||||
|
})
|
||||||
|
setTimeout(res => {
|
||||||
|
uni.hideLoading()
|
||||||
|
uni.switchTab({
|
||||||
|
url: '/pages/order/order'
|
||||||
|
});
|
||||||
|
}, 500)
|
||||||
|
this.paymodfiyOrderInfo()
|
||||||
|
},
|
||||||
|
fail: (err) => {
|
||||||
|
uni.showToast({
|
||||||
|
icon: 'none',
|
||||||
|
title: '支付失败'
|
||||||
|
})
|
||||||
|
setTimeout(res => {
|
||||||
|
uni.hideLoading()
|
||||||
|
uni.switchTab({
|
||||||
|
url: '/pages/order/order'
|
||||||
|
});
|
||||||
|
}, 500)
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// #endif
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 余额支付
|
||||||
|
async accountPayevent(pwd) {
|
||||||
|
this.ispws = false
|
||||||
|
let res = await this.api.accountPay({
|
||||||
|
orderId: this.listinfoid,
|
||||||
|
memberId: this.amountVIP.id,
|
||||||
|
// remark: this.remark,
|
||||||
|
pwd
|
||||||
|
})
|
||||||
|
if (res.code == 0) {
|
||||||
|
// data ->1 支付成功
|
||||||
|
// ->2 余额不足
|
||||||
|
// ->3 未设置支付密码,
|
||||||
|
// ->4 不是会员,
|
||||||
|
if (res.data == 1) {
|
||||||
|
this.showToastUppop('支付成功')
|
||||||
|
let _this = this
|
||||||
|
|
||||||
|
uni.requestSubscribeMessage({
|
||||||
|
tmplIds: ['z0fUG7-jhSfYCrw6poOvSRzh4_hgnPkm_5C7E5s5bCQ'],
|
||||||
|
complete() {
|
||||||
|
uni.redirectTo({
|
||||||
|
url: '/pages/order/order_detail?orderId=' + _this
|
||||||
|
.listinfoid
|
||||||
|
});
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
} else if (res.data == 2) {
|
||||||
|
this.showToastUppop('余额不足')
|
||||||
|
setTimeout(() => {
|
||||||
|
// 去充值
|
||||||
|
this.goRecharge()
|
||||||
|
}, 1500)
|
||||||
|
} else if (res.data == 3) {
|
||||||
|
this.showToastUppop('未设置支付密码')
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.pro.navigateTo('/pages/user/repairpassword', {
|
||||||
|
shopId_id: uni.cache.get('shopUser')
|
||||||
|
})
|
||||||
|
}, 1500)
|
||||||
|
|
||||||
|
} else if (res.data == 4) {
|
||||||
|
this.showToastUppop('非会员请充值')
|
||||||
|
setTimeout(() => {
|
||||||
|
// 去充值
|
||||||
|
this.goRecharge()
|
||||||
|
}, 1500)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
showToastUppop(title) {
|
||||||
|
uni.showToast({
|
||||||
|
icon: 'none',
|
||||||
|
title,
|
||||||
|
success: () => {
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async orderorderInfo() {
|
||||||
|
let res = await this.api.orderorderInfo({
|
||||||
|
orderId: this.orderId
|
||||||
|
})
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.listinfo = res.data
|
||||||
|
this.mountedcreateSelectorQuery()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
copyHandle(e) {
|
||||||
|
uni.setClipboardData({
|
||||||
|
data: e,
|
||||||
|
success() {
|
||||||
|
uni.showToast({
|
||||||
|
title: '复制成功',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
clickselect(b) {
|
||||||
|
this.pay_type = b
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.container {
|
||||||
|
padding: 28upx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.payType {
|
||||||
|
padding: 32rpx 34rpx;
|
||||||
|
margin-top: 48rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
|
||||||
|
>view:first-child {
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
>view:last-child {
|
||||||
|
margin-top: 32rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dfs {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.card {
|
||||||
|
background-color: #fff;
|
||||||
|
border-radius: 20upx;
|
||||||
|
padding: 28upx;
|
||||||
|
margin-bottom: 28upx;
|
||||||
|
|
||||||
|
.head {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
&.border {
|
||||||
|
padding-bottom: 28upx;
|
||||||
|
border-bottom: 1upx solid #fafafa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status {
|
||||||
|
color: #ff0000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag-wrap {
|
||||||
|
padding: 20upx 0;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.tag {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
padding: 0 10upx;
|
||||||
|
color: $color-priamry;
|
||||||
|
border: 1px solid $color-priamry;
|
||||||
|
font-size: 24upx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.number-wrap {
|
||||||
|
background-color: #fafafa;
|
||||||
|
border-radius: 16upx;
|
||||||
|
padding: 28upx 0;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.number {
|
||||||
|
font-size: 42upx;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.price {
|
||||||
|
.i {
|
||||||
|
font-size: 20upx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.num {
|
||||||
|
font-size: 38upx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.shop-info {
|
||||||
|
padding: 28upx 0;
|
||||||
|
|
||||||
|
.item:nth-child(1) {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item {
|
||||||
|
margin-top: 16rpx;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.info {
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding-left: 28upx;
|
||||||
|
|
||||||
|
.n {
|
||||||
|
font-size: 24upx;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.total-wrap {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
padding-top: 28upx;
|
||||||
|
border-top: 1upx solid #fafafa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.order-info {
|
||||||
|
.row {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding-top: 28upx;
|
||||||
|
|
||||||
|
.t {
|
||||||
|
font-size: 24upx;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
font-size: 24upx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sixcontent {
|
||||||
|
width: 100%;
|
||||||
|
background: #FFFFFF;
|
||||||
|
padding: 32rpx;
|
||||||
|
margin-top: 32rpx;
|
||||||
|
border-radius: 12rpx;
|
||||||
|
|
||||||
|
.sixcontentone {
|
||||||
|
padding-bottom: 28rpx;
|
||||||
|
border-bottom: 1px solid #F7F7F7;
|
||||||
|
|
||||||
|
.sixcontent_one {
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sixcontenttow {
|
||||||
|
.sixcontenttowitem {
|
||||||
|
margin-top: 16rpx;
|
||||||
|
|
||||||
|
.sixcontenttowitemone {
|
||||||
|
image {
|
||||||
|
margin-left: 24rpx;
|
||||||
|
width: 31.37rpx;
|
||||||
|
height: 27.34rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sixcontenttowitemonetext {
|
||||||
|
margin-left: 14rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.fixedview {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
.flex-between {
|
||||||
|
width: 100%;
|
||||||
|
padding: 24rpx 28rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
|
||||||
|
.fixedview_one {
|
||||||
|
.fixedview_oneone {
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-family: SourceHanSansCN-Bold-, SourceHanSansCN-Bold;
|
||||||
|
font-weight: normal;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fixedview_onetow {
|
||||||
|
font-size: 44rpx;
|
||||||
|
font-family: SourceHanSansCN-Bold-, SourceHanSansCN-Bold;
|
||||||
|
font-weight: normal;
|
||||||
|
color: #F45C4C;
|
||||||
|
font-weight: bold;
|
||||||
|
|
||||||
|
text {
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.fixedview_tow {
|
||||||
|
background: red;
|
||||||
|
border-radius: 34rpx;
|
||||||
|
padding: 10rpx 44rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-family: PingFang SC-Bold, PingFang SC;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -37,8 +37,10 @@
|
|||||||
<text class="tag" v-if="listinfo.sendType == 'takeself'">自提</text>
|
<text class="tag" v-if="listinfo.sendType == 'takeself'">自提</text>
|
||||||
<text class="tag" v-if="listinfo.sendType == 'table'">堂食</text>
|
<text class="tag" v-if="listinfo.sendType == 'table'">堂食</text>
|
||||||
</view>
|
</view>
|
||||||
<view v-if="listinfo.tableName" style="display: flex;align-items: center;"> 桌码: <view style="padding: 12rpx 16rpx;background-color: #faf2b6;border-radius: 12rpx;"> {{listinfo.tableName}}</view></view>
|
<view v-if="listinfo.tableName">
|
||||||
<view class="number-wrap"
|
桌号:{{listinfo.tableName}}
|
||||||
|
</view>
|
||||||
|
<view class="number-wrap" style="margin-top: 20rpx;"
|
||||||
v-if="listinfo.status != 'unpaid' && listinfo.status != 'paying'&& listinfo.status != 'cancelled'">
|
v-if="listinfo.status != 'unpaid' && listinfo.status != 'paying'&& listinfo.status != 'cancelled'">
|
||||||
<text class="t">取餐号</text>
|
<text class="t">取餐号</text>
|
||||||
<text class="number">{{listinfo.outNumber}}</text>
|
<text class="number">{{listinfo.outNumber}}</text>
|
||||||
@@ -278,7 +280,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.tag-wrap {
|
.tag-wrap {
|
||||||
padding: 28upx 0;
|
padding: 20upx 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
.tag {
|
.tag {
|
||||||
|
|||||||
@@ -1,59 +1,14 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="container">
|
<view class="container">
|
||||||
<view class="card" v-if="listinfo.tableName">
|
|
||||||
<view class="head">
|
|
||||||
<text class="title">
|
|
||||||
<text>{{listinfo.tableName || '空'}}</text>
|
|
||||||
</text>
|
|
||||||
<text class="status" v-if="listinfo.status == 'unpaid'">
|
|
||||||
<text>待支付</text>
|
|
||||||
</text>
|
|
||||||
<text class="status" v-if="listinfo.status == 'unsend'">
|
|
||||||
<text>待发货</text>
|
|
||||||
</text>
|
|
||||||
<text class="status" v-if="listinfo.status == 'closed'">
|
|
||||||
<text>订单完成</text>
|
|
||||||
</text>
|
|
||||||
<text class="status" v-if="listinfo.status == 'send'">
|
|
||||||
<text>已发</text>
|
|
||||||
</text>
|
|
||||||
<text class="status" v-if="listinfo.status == 'refunding'">
|
|
||||||
<text>申请退单</text>
|
|
||||||
</text>
|
|
||||||
<text class="status" v-if="listinfo.status == 'refund'">
|
|
||||||
<text>退单</text>
|
|
||||||
</text>
|
|
||||||
<text class="status" v-if="listinfo.status == 'cancelled'">
|
|
||||||
<text>取消订单</text>
|
|
||||||
</text>
|
|
||||||
<text class="status" v-if="listinfo.status == 'merge'">
|
|
||||||
<text>合台</text>
|
|
||||||
</text>
|
|
||||||
</view>
|
|
||||||
<view class="tag-wrap">
|
|
||||||
<text class="tag" v-if="listinfo.sendType == 'post'">快递</text>
|
|
||||||
<text class="tag" v-if="listinfo.sendType == 'takeaway'">外卖</text>
|
|
||||||
<text class="tag" v-if="listinfo.sendType == 'takeself'">自提</text>
|
|
||||||
<text class="tag" v-if="listinfo.sendType == 'table'">堂食</text>
|
|
||||||
</view>
|
|
||||||
<view class="number-wrap" v-if="listinfo.status != 'unpaid'">
|
|
||||||
<text class="t">取餐号</text>
|
|
||||||
<text class="number">{{listinfo.tableName || '空'}}</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="card">
|
<view class="card">
|
||||||
<view class="head border">
|
|
||||||
<text class="title">
|
|
||||||
<text>点单详情</text>
|
|
||||||
</text>
|
|
||||||
</view>
|
|
||||||
<view class="shop-info">
|
<view class="shop-info">
|
||||||
<view class="item" v-for="(item,index) in listinfo.detailList" :key="index">
|
<view class="item" v-for="(item,index) in cartLists.data" :key="index">
|
||||||
<view class="cover">
|
<view class="cover">
|
||||||
<c-image width="120" height="120" radius="16" :src='item.coverImg'></c-image>
|
<c-image width="120" height="120" radius="16" :src='item.coverImg'></c-image>
|
||||||
</view>
|
</view>
|
||||||
<view class="info">
|
<view class="info">
|
||||||
<text>{{item.name}}</text>
|
<text>{{item.name}}</text>
|
||||||
|
<text class="n">{{item.skuName}}</text>
|
||||||
<text class="n">x{{item.number}}</text>
|
<text class="n">x{{item.number}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="price">
|
<view class="price">
|
||||||
@@ -62,119 +17,6 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="total-wrap">
|
|
||||||
<view class="price">
|
|
||||||
<text>合计:</text>
|
|
||||||
<text class="i">¥</text>
|
|
||||||
<text class="num">{{listinfo.amounts}}</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<!-- <view class="sixcontent">
|
|
||||||
<view class="sixcontentone flex-between" style="padding: 0 0;" @click="orderfoodindex">
|
|
||||||
<view class="sixcontent_one" style="padding: 0 0;">
|
|
||||||
优惠券
|
|
||||||
</view>
|
|
||||||
<text style="color: red;">{{emitorderfoodform.couponsPrice}}</text>
|
|
||||||
</view>
|
|
||||||
</view> -->
|
|
||||||
<!-- <view class="redMoney">
|
|
||||||
<view>
|
|
||||||
<image src="https://czg-qr-order.oss-cn-beijing.aliyuncs.com/drder/hongbao.png"
|
|
||||||
style="width: 30rpx;height: 30.24rpx;;" mode=""></image>
|
|
||||||
红包/抵用券
|
|
||||||
</view>
|
|
||||||
<view @click="orderfoodindex">
|
|
||||||
可用优惠券{{couponAmount}}张
|
|
||||||
</view>
|
|
||||||
</view> -->
|
|
||||||
<!-- 支付方式 -->
|
|
||||||
<view class="payType">
|
|
||||||
<view class="">
|
|
||||||
支付方式
|
|
||||||
</view>
|
|
||||||
<view class="">
|
|
||||||
<u-radio-group v-model="radiovalue1" iconPlacement="right" @change="groupChange" :size="28"
|
|
||||||
placement="column">
|
|
||||||
<u-radio activeColor="#ffd158" name="1">
|
|
||||||
<view class="dfs">
|
|
||||||
<image style="width:44rpx;height:44rpx"
|
|
||||||
src="https://czg-qr-order.oss-cn-beijing.aliyuncs.com/drder/balance.png" mode="">
|
|
||||||
</image>
|
|
||||||
<text style="font-size: 28rpx;margin-left: 16rpx;">
|
|
||||||
微信支付
|
|
||||||
</text>
|
|
||||||
</view>
|
|
||||||
</u-radio>
|
|
||||||
<view style="margin: 22rpx 0;width: 100%;height: 2rpx;background-color: #E5E5E5;">
|
|
||||||
</view>
|
|
||||||
<u-radio activeColor="#ffd158" name="2">
|
|
||||||
<view class="dfs">
|
|
||||||
<image style="width:44rpx;height:44rpx"
|
|
||||||
src="https://czg-qr-order.oss-cn-beijing.aliyuncs.com/drder/wechat.png" mode="">
|
|
||||||
</image>
|
|
||||||
<text style="font-size: 28rpx;margin-left: 16rpx;">
|
|
||||||
会员卡支付</text>
|
|
||||||
</view>
|
|
||||||
</u-radio>
|
|
||||||
</u-radio-group>
|
|
||||||
<view style="font-weight: 400;font-size: 24rpx;color: #333333;margin-left: 60rpx;">
|
|
||||||
会员卡余额{{ amountVIP.amount}} <text
|
|
||||||
style="font-weight: 500;font-size: 28rpx;margin-left: 16rpx;color: #FF4C11;"
|
|
||||||
@click="goRecharge">去充值</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<!-- <view class="sixcontent" >
|
|
||||||
<view class="sixcontentone flex-between">
|
|
||||||
<view class="sixcontent_one">
|
|
||||||
支付方式
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="sixcontenttow">
|
|
||||||
<view class="sixcontenttowitem flex-between" @click="clickselect(1)">
|
|
||||||
<view class="sixcontenttowitemone flex-start">
|
|
||||||
<u-icon name="weixin-fill" color="#999999" size="32"></u-icon>
|
|
||||||
<text class="sixcontenttowitemonetext">微信支付</text>
|
|
||||||
</view>
|
|
||||||
<view class="flex-start">
|
|
||||||
<u-icon v-if="pay_type == 1" name="checkmark-circle-fill" color="#333333" size="26"></u-icon>
|
|
||||||
<u-icon v-else name="checkmark-circle-fill" color="#999999" size="26"></u-icon>
|
|
||||||
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="sixcontenttowitem flex-between" @click="clickselect(2)">
|
|
||||||
<view class="sixcontenttowitemone flex-start">
|
|
||||||
<u-icon name="zhifubao" color="#999999" size="26"></u-icon>
|
|
||||||
<text class="sixcontenttowitemonetext">余额支付</text>
|
|
||||||
</view>
|
|
||||||
<view class="flex-start">
|
|
||||||
<u-icon v-if="pay_type == 2" name="checkmark-circle-fill" color="#333333" size="26"></u-icon>
|
|
||||||
<u-icon v-else name="checkmark-circle-fill" color="#999999" size="26"></u-icon>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view> -->
|
|
||||||
<view :style="{height:height}">
|
|
||||||
|
|
||||||
</view>
|
|
||||||
<view class="fixedview">
|
|
||||||
<view class="flex-between">
|
|
||||||
<view class="fixedview_one flex-start">
|
|
||||||
<view class="fixedview_oneone">
|
|
||||||
实付金额:
|
|
||||||
</view>
|
|
||||||
<view class="fixedview_onetow">
|
|
||||||
<text>¥</text>{{listinfo.amount}}
|
|
||||||
</view>
|
|
||||||
<view class="fixedview_onethere" v-if="emitorderfoodform.couponsPrice">
|
|
||||||
以优惠¥{{emitorderfoodform.couponsPrice}}
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="fixedview_tow" @tap="$u.debounce(showpopupclickdd, 500)">
|
|
||||||
立即付款
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
</view>
|
||||||
<!-- 支付密码 -->
|
<!-- 支付密码 -->
|
||||||
<payPassword ref="payPwd" @accountPayevent="accountPayevent" v-if="ispws"></payPassword>
|
<payPassword ref="payPwd" @accountPayevent="accountPayevent" v-if="ispws"></payPassword>
|
||||||
@@ -182,6 +24,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
// import {object} from 'prop-types';
|
||||||
import webSocketUtils from '@/common/js/websocket.js'
|
import webSocketUtils from '@/common/js/websocket.js'
|
||||||
import payPassword from '@/components/payPassword.vue'
|
import payPassword from '@/components/payPassword.vue'
|
||||||
export default {
|
export default {
|
||||||
@@ -192,7 +35,7 @@
|
|||||||
return {
|
return {
|
||||||
height: '',
|
height: '',
|
||||||
pay_type: 1,
|
pay_type: 1,
|
||||||
listinfoid: '',
|
remark: '',
|
||||||
listinfo: {
|
listinfo: {
|
||||||
detailList: [],
|
detailList: [],
|
||||||
amount: '',
|
amount: '',
|
||||||
@@ -201,115 +44,54 @@
|
|||||||
emitorderfoodform: {
|
emitorderfoodform: {
|
||||||
clickiconone: ''
|
clickiconone: ''
|
||||||
},
|
},
|
||||||
amountVIP: null,
|
|
||||||
radiovalue1: '1',
|
|
||||||
vipId: null,
|
|
||||||
orderInfo: '',
|
orderInfo: '',
|
||||||
// 可用优惠券数据
|
// 可用优惠券数据
|
||||||
couponAmount: 0,
|
couponAmount: 0,
|
||||||
// 输入支付密码 123
|
// 输入支付密码 123
|
||||||
passwordArr: [],
|
|
||||||
ispws: false,
|
ispws: false,
|
||||||
|
listinfoid: ''
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
props: {
|
||||||
onUnload() {
|
cartLists: {
|
||||||
uni.$off('getMessage')
|
type: Object,
|
||||||
this.ispws = false
|
default () {
|
||||||
|
return {
|
||||||
},
|
amount: '0.00',
|
||||||
onLoad(e) {
|
data: []
|
||||||
// console.log(e, 140)
|
|
||||||
let res = JSON.parse(e.tableId)
|
|
||||||
this.listinfo.detailList = res
|
|
||||||
this.listinfo.amount = e.amount // 算完了的价格
|
|
||||||
this.listinfo.amounts = e.amount //本来的价格
|
|
||||||
this.handlemessage()
|
|
||||||
uni.$on('message', this.getMessage)
|
|
||||||
|
|
||||||
// 获取余额
|
|
||||||
this.getAount()
|
|
||||||
// 获取可用优惠券数量
|
|
||||||
this.getcoupon()
|
|
||||||
this.vipId = uni.cache.get('userInfo').id
|
|
||||||
|
|
||||||
},
|
|
||||||
onShow() {
|
|
||||||
this.getAount()
|
|
||||||
},
|
|
||||||
created() {
|
|
||||||
uni.$on('emitclickorderfood', (num) => {
|
|
||||||
// 总金额 couponsAmount 优惠卷购买金额 couponsPrice优惠金额 等于1是团购/不等于1
|
|
||||||
if (num.clickiconone == 1) {
|
|
||||||
this.listinfo.amount = (Number(this.listinfo.amounts) + Number(num.couponsPrice) - Number(num
|
|
||||||
.couponsAmount)).toFixed(2)
|
|
||||||
} else {
|
|
||||||
this.listinfo.amount = (Number(this.listinfo.amounts) - Number(num.couponsAmount)).toFixed(2)
|
|
||||||
}
|
}
|
||||||
this.emitorderfoodform = num
|
}
|
||||||
// this.num += num
|
},
|
||||||
})
|
radiovalue: {
|
||||||
|
type: String,
|
||||||
|
default: '1'
|
||||||
|
},
|
||||||
|
amountVIP: {
|
||||||
|
type: Object,
|
||||||
|
default () {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onUnload() {
|
||||||
|
this.ispws = false
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
groupChange(n) {
|
groupChange(n) {
|
||||||
// console.log('groupChange', n);
|
this.radiovalue = n
|
||||||
this.radiovalue1 = n
|
|
||||||
uni.cache.set('radiovalue1', n)
|
|
||||||
},
|
|
||||||
async getcoupon() {
|
|
||||||
let res = await this.api.userCoupon({
|
|
||||||
"orderNum": this.listinfo.amount,
|
|
||||||
"userId": uni.cache.get('userInfo').id,
|
|
||||||
})
|
|
||||||
if (res.code == 0) {
|
|
||||||
this.couponAmount = res.data
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
async getAount() {
|
async getAount() {
|
||||||
let res = await this.api.shopUserInfo({
|
let res = await this.api.shopUserInfo({
|
||||||
// shopId:店铺ID
|
"shopId": uni.cache.get('shopUser'),
|
||||||
"shopId": this.$store.state.shopId,
|
|
||||||
"userId": uni.cache.get('userInfo').id,
|
"userId": uni.cache.get('userInfo').id,
|
||||||
})
|
})
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
|
|
||||||
this.amountVIP = res.data
|
this.amountVIP = res.data
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getMessage(msg) {
|
orderfoodindex() { //优惠劵
|
||||||
if (msg.status != 'success') {
|
|
||||||
uni.showToast({
|
|
||||||
title: msg.msg,
|
|
||||||
icon: "none",
|
|
||||||
})
|
|
||||||
this.socketTicket.Close()
|
|
||||||
uni.$off('getMessage')
|
|
||||||
console.log(msg, 'socke返回数据')
|
|
||||||
|
|
||||||
} else if (msg.type == 'createOrder') {
|
|
||||||
console.log(msg, 'createOrder执行')
|
|
||||||
this.listinfoid = msg.data.id //下单需要的id
|
|
||||||
this.orderInfo = msg.data
|
|
||||||
if (this.radiovalue1 == 1) {
|
|
||||||
this.showpopupclickdds() //微信支付
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
},
|
|
||||||
handlemessage() {
|
|
||||||
this.socketTicket ? this.socketTicket.Close() : null //调用前先判断是否有socket正在进行 先关闭后链接
|
|
||||||
this.socketTicket = new webSocketUtils(
|
|
||||||
`${uni.conf.baseUrlwws}/websocket/table/${uni.cache.get('tableCode')}/${uni.cache.get('shopUser')}/${uni.cache.get('userInfo').id}`,
|
|
||||||
5000)
|
|
||||||
|
|
||||||
},
|
|
||||||
// 数据处理
|
|
||||||
socketSendMsg(data) {
|
|
||||||
if (this.socketTicket) {
|
|
||||||
this.socketTicket.send(data);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
orderfoodindex() {
|
|
||||||
uni.pro.navigateTo('index/coupons/index', {
|
uni.pro.navigateTo('index/coupons/index', {
|
||||||
orderfood: 0,
|
orderfood: 0,
|
||||||
orderId: this.listinfoid,
|
orderId: this.listinfoid,
|
||||||
@@ -327,82 +109,33 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
async paymodfiyOrderInfo() {
|
async paymodfiyOrderInfo() { //支付完成后请求
|
||||||
let res = await this.api.paymodfiyOrderInfo({
|
let res = await this.api.paymodfiyOrderInfo({
|
||||||
orderId: this.listinfoid
|
orderId: this.listinfoid,
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
creactorder(){
|
goRecharge() { // 去充值
|
||||||
let data = { //定义socket数据传参
|
|
||||||
"skuId": '',
|
|
||||||
"num": '', //数量
|
|
||||||
"type": "createOrder", //“addcart:添加购物车,create0rder:生成订单,clearCart:庆康购物车”,
|
|
||||||
"couponsId": this.emitorderfoodform.id ? this.emitorderfoodform.id : '', //优惠券ID,
|
|
||||||
"isYhq": this.emitorderfoodform.id ? 1 : 0, // 是否使用优惠券( 1: 使用, 0: 不使用),
|
|
||||||
"isBuyYhq": this.emitorderfoodform.clickiconone == 1 ? 1 : 0, // 是否购买优惠券( 1: 购买, 0: 不够买)
|
|
||||||
"productId": '', //商品id
|
|
||||||
"shopId": this.$store.state.shopId,
|
|
||||||
"userId": uni.cache.get('userInfo').id,
|
|
||||||
// tableId:uni.cache.get('tableCode')
|
|
||||||
}
|
|
||||||
let res = 0
|
|
||||||
if(res.code==0){
|
|
||||||
this.listinfoid = msg.data.id //下单需要的id
|
|
||||||
this.orderInfo = msg.data
|
|
||||||
if (this.radiovalue1 == 1) {
|
|
||||||
this.showpopupclickdds() //微信支付
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 去结算
|
|
||||||
showpopupclick() {
|
|
||||||
let data = { //定义socket数据传参
|
|
||||||
"skuId": '',
|
|
||||||
"num": '', //数量
|
|
||||||
"type": "createOrder", //“addcart:添加购物车,create0rder:生成订单,clearCart:庆康购物车”,
|
|
||||||
"couponsId": this.emitorderfoodform.id ? this.emitorderfoodform.id : '', //优惠券ID,
|
|
||||||
"isYhq": this.emitorderfoodform.id ? 1 : 0, // 是否使用优惠券( 1: 使用, 0: 不使用),
|
|
||||||
"isBuyYhq": this.emitorderfoodform.clickiconone == 1 ? 1 : 0, // 是否购买优惠券( 1: 购买, 0: 不够买)
|
|
||||||
"productId": '', //商品id
|
|
||||||
"shopId": this.$store.state.shopId,
|
|
||||||
"userId": uni.cache.get('userInfo').id,
|
|
||||||
// tableId:uni.cache.get('tableCode')
|
|
||||||
}
|
|
||||||
this.socketSendMsg(data)
|
|
||||||
},
|
|
||||||
// 去充值
|
|
||||||
goRecharge() {
|
|
||||||
uni.pro.navigateTo('/pages/member/index', {
|
uni.pro.navigateTo('/pages/member/index', {
|
||||||
shopId: this.amountVIP.shopId
|
shopId: uni.cache.get('shopUser')
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
showpopupclickddes(ID) {
|
||||||
showpopupclickdd() {
|
// radiovalue为1是微信支付
|
||||||
console.log(this.radiovalue1, 'radiovalue1的值')
|
this.listinfoid = ID
|
||||||
if (this.radiovalue1 == 1) {
|
if (this.radiovalue == 1) {
|
||||||
// this.showpopupclick() //生成订单
|
this.showpopupclickdds() //微信支付
|
||||||
this.creactorder()
|
|
||||||
} else {
|
} else {
|
||||||
// 判断是否有绑定支付密码
|
|
||||||
// 先判断是否设置支付密码。0是没设置。没设置的情况下跳转到设置页面。有的话输入支付密码
|
// 先判断是否设置支付密码。0是没设置。没设置的情况下跳转到设置页面。有的话输入支付密码
|
||||||
|
// console.log(isPwd,'是否设置了支付密码')
|
||||||
if (uni.cache.get('userInfo').isPwd == 0) {
|
if (uni.cache.get('userInfo').isPwd == 0) {
|
||||||
uni.pro.navigateTo('/pages/user/repairpassword', {
|
uni.pro.navigateTo('/pages/user/repairpassword', {
|
||||||
shopId_id: uni.cache.get('shopUser')
|
shopId_id: uni.cache.get('shopUser')
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
if (this.amountVIP.amount > this.listinfo.amount) {
|
|
||||||
this.ispws = true
|
this.ispws = true
|
||||||
// this.showpopupclick() //生成订单
|
|
||||||
this.creactorder()
|
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.payPwd.onPayUp();
|
this.$refs.payPwd.onPayUp();
|
||||||
})
|
})
|
||||||
} else {
|
|
||||||
uni.showToast({
|
|
||||||
title: "余额不足"
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -412,10 +145,10 @@
|
|||||||
orderId: this.listinfoid
|
orderId: this.listinfoid
|
||||||
}) //判断是否支付成功
|
}) //判断是否支付成功
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
// uni.showLoading({
|
uni.showLoading({
|
||||||
// title: '加载中',
|
title: '加载中',
|
||||||
// mask: true
|
mask: true
|
||||||
// })
|
})
|
||||||
// #ifdef MP-WEIXIN
|
// #ifdef MP-WEIXIN
|
||||||
// 微信支付还是余额支付
|
// 微信支付还是余额支付
|
||||||
uni.requestPayment({
|
uni.requestPayment({
|
||||||
@@ -427,51 +160,28 @@
|
|||||||
signType: res.data.signType, //固定值
|
signType: res.data.signType, //固定值
|
||||||
paySign: res.data.paySign, //签名
|
paySign: res.data.paySign, //签名
|
||||||
success: (res) => {
|
success: (res) => {
|
||||||
|
let _this = this
|
||||||
|
uni.requestSubscribeMessage({
|
||||||
|
tmplIds: ['z0fUG7-jhSfYCrw6poOvSRzh4_hgnPkm_5C7E5s5bCQ'],
|
||||||
|
complete() {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: "支付成功"
|
title: "支付成功"
|
||||||
})
|
})
|
||||||
uni.cache.set('shopUser', '') //删除shopUser
|
// uni.cache.set('shopUser', '') //删除shopUser
|
||||||
this.paymodfiyOrderInfo()
|
_this.paymodfiyOrderInfo()
|
||||||
setTimeout(res => {
|
|
||||||
// uni.redirectTo({
|
|
||||||
// url: '/pages/order/successful?orderId=' + this
|
|
||||||
// .listinfoid + '&orderInfo=' + JSON.stringify(
|
|
||||||
// this.orderInfo) + '&radiovalue1=' + this
|
|
||||||
// .radiovalue1
|
|
||||||
// });
|
|
||||||
uni.redirectTo({
|
uni.redirectTo({
|
||||||
url: '/pages/order/order_detail?orderId=' + this
|
url: '/pages/order/order_detail?orderId=' + _this
|
||||||
.listinfoid
|
.listinfoid
|
||||||
});
|
});
|
||||||
}, 500)
|
|
||||||
// uni.redirectTo({
|
|
||||||
// url: "/pages/mall/order/ordersuccess?id=" + datareslane.data
|
|
||||||
// .order_id,
|
|
||||||
// });
|
|
||||||
},
|
},
|
||||||
fail: (err) => {
|
|
||||||
uni.showToast({
|
|
||||||
icon: 'none',
|
|
||||||
title: '支付失败'
|
|
||||||
})
|
})
|
||||||
setTimeout(res => {
|
|
||||||
// uni.redirectTo({
|
|
||||||
// url: '/pages/order/successful?orderId=' + this
|
|
||||||
// .listinfoid + '&orderInfo=' + JSON.stringify(
|
|
||||||
// this.orderInfo) + '&radiovalue1=' + this
|
|
||||||
// .radiovalue1
|
|
||||||
// });
|
|
||||||
uni.redirectTo({
|
|
||||||
url: '/pages/order/order_detail?orderId=' + this
|
|
||||||
.listinfoid
|
|
||||||
});
|
|
||||||
}, 500)
|
|
||||||
},
|
},
|
||||||
complete: (data) => {
|
fail: () => {
|
||||||
console.log(data, '成功与否')
|
uni.hideLoading()
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// #endif
|
// #endif
|
||||||
|
uni.hideLoading()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 余额支付
|
// 余额支付
|
||||||
@@ -480,80 +190,103 @@
|
|||||||
let res = await this.api.accountPay({
|
let res = await this.api.accountPay({
|
||||||
orderId: this.listinfoid,
|
orderId: this.listinfoid,
|
||||||
memberId: this.amountVIP.id,
|
memberId: this.amountVIP.id,
|
||||||
pwd: pwd
|
// remark: this.remark,
|
||||||
|
pwd
|
||||||
})
|
})
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
uni.showToast({
|
// data ->1 支付成功
|
||||||
icon: 'none',
|
// ->2 余额不足
|
||||||
title: '支付成功',
|
// ->3 未设置支付密码,
|
||||||
success: () => {
|
// ->4 不是会员,
|
||||||
setTimeout(res => {
|
if (res.data == 1) {
|
||||||
// uni.redirectTo({
|
this.showToastUppop('支付成功')
|
||||||
// url: '/pages/order/successful?orderId=' + this
|
let _this = this
|
||||||
// .listinfoid + '&orderInfo=' + JSON.stringify(
|
|
||||||
// this.orderInfo) + '&radiovalue1=' + this
|
uni.requestSubscribeMessage({
|
||||||
// .radiovalue1
|
tmplIds: ['z0fUG7-jhSfYCrw6poOvSRzh4_hgnPkm_5C7E5s5bCQ'],
|
||||||
// });
|
complete() {
|
||||||
uni.redirectTo({
|
uni.redirectTo({
|
||||||
url: '/pages/order/order_detail?orderId=' + this
|
url: '/pages/order/order_detail?orderId=' + _this
|
||||||
.listinfoid
|
.listinfoid
|
||||||
});
|
});
|
||||||
}, 500)
|
},
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
} else if (res.data == 1) {
|
|
||||||
|
} else if (res.data == 2) {
|
||||||
|
this.showToastUppop('余额不足')
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
// 去充值
|
// 去充值
|
||||||
this.goRecharge()
|
this.goRecharge()
|
||||||
}, 2000)
|
}, 1500)
|
||||||
|
} else if (res.data == 3) {
|
||||||
|
this.showToastUppop('未设置支付密码')
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.pro.navigateTo('/pages/user/repairpassword', {
|
||||||
|
shopId_id: uni.cache.get('shopUser')
|
||||||
|
})
|
||||||
|
}, 1500)
|
||||||
|
|
||||||
|
} else if (res.data == 4) {
|
||||||
|
this.showToastUppop('非会员请充值')
|
||||||
|
setTimeout(() => {
|
||||||
|
// 去充值
|
||||||
|
this.goRecharge()
|
||||||
|
}, 1500)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
showToastUppop(title) {
|
||||||
|
uni.showToast({
|
||||||
|
icon: 'none',
|
||||||
|
title,
|
||||||
|
success: () => {
|
||||||
|
|
||||||
clickselect(b) {
|
}
|
||||||
this.pay_type = b
|
|
||||||
},
|
|
||||||
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
//#ifdef MP-WEIXIN || H5
|
|
||||||
var query = uni.createSelectorQuery().in(this).select('.fixedview')
|
|
||||||
query.boundingClientRect(ele => {
|
|
||||||
var that = this;
|
|
||||||
that.height = (ele.height) + "px";
|
|
||||||
that = null;
|
|
||||||
// uni.getSystemInfo({
|
|
||||||
// success(res) {
|
|
||||||
|
|
||||||
// }
|
|
||||||
// })
|
|
||||||
}).exec();
|
|
||||||
//#endif
|
|
||||||
//#ifdef MP-ALIPAY
|
|
||||||
my.createSelectorQuery().selectAll('.fixedview').boundingClientRect().exec(ele => {
|
|
||||||
var nodeData = ele[0]
|
|
||||||
var that = this;
|
|
||||||
that.height = (nodeData.height) + "px";
|
|
||||||
that = null;
|
|
||||||
})
|
})
|
||||||
//#endif
|
},
|
||||||
|
|
||||||
|
},
|
||||||
|
async mounted() {
|
||||||
|
uni.getSystemInfo({
|
||||||
|
success: (data) => {
|
||||||
|
this.height = (data.windowHeight / 2) + "px";
|
||||||
|
console.log(this.height, 1111);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// //#ifdef MP-WEIXIN || H5
|
||||||
|
// var query = uni.createSelectorQuery().in(this).select('.fixedview')
|
||||||
|
// query.boundingClientRect(ele => {
|
||||||
|
// var that = this;
|
||||||
|
// that.height = (ele.height) + "px";
|
||||||
|
// that = null;
|
||||||
|
// }).exec();
|
||||||
|
// //#endif
|
||||||
|
// //#ifdef MP-ALIPAY
|
||||||
|
// my.createSelectorQuery().selectAll('.fixedview').boundingClientRect().exec(ele => {
|
||||||
|
// var nodeData = ele[0]
|
||||||
|
// var that = this;
|
||||||
|
// that.height = (nodeData.height) + "px";
|
||||||
|
// that = null;
|
||||||
|
// })
|
||||||
|
// //#endif
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.container {
|
.container {
|
||||||
padding: 28upx;
|
padding: 0 28upx 28upx 28upx 28upx;
|
||||||
|
max-height: 600px;
|
||||||
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card {
|
.card {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border-radius: 20upx;
|
border-radius: 20upx;
|
||||||
padding: 28upx;
|
padding: 28upx;
|
||||||
margin-bottom: 28upx;
|
margin-bottom: 48rpx;
|
||||||
|
|
||||||
.head {
|
.head {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
803
pages/order_detail/indexs.vue
Normal file
803
pages/order_detail/indexs.vue
Normal file
@@ -0,0 +1,803 @@
|
|||||||
|
<template>
|
||||||
|
|
||||||
|
<view class="container">
|
||||||
|
<view class="card" v-if="listinfo.tableName">
|
||||||
|
<view class="head">
|
||||||
|
<text class="title">
|
||||||
|
<text>{{listinfo.tableName || '空'}}</text>
|
||||||
|
</text>
|
||||||
|
<text class="status" v-if="listinfo.status == 'unpaid'">
|
||||||
|
<text>待支付</text>
|
||||||
|
</text>
|
||||||
|
<text class="status" v-if="listinfo.status == 'unsend'">
|
||||||
|
<text>待发货</text>
|
||||||
|
</text>
|
||||||
|
<text class="status" v-if="listinfo.status == 'closed'">
|
||||||
|
<text>订单完成</text>
|
||||||
|
</text>
|
||||||
|
<text class="status" v-if="listinfo.status == 'send'">
|
||||||
|
<text>已发</text>
|
||||||
|
</text>
|
||||||
|
<text class="status" v-if="listinfo.status == 'refunding'">
|
||||||
|
<text>申请退单</text>
|
||||||
|
</text>
|
||||||
|
<text class="status" v-if="listinfo.status == 'refund'">
|
||||||
|
<text>退单</text>
|
||||||
|
</text>
|
||||||
|
<text class="status" v-if="listinfo.status == 'cancelled'">
|
||||||
|
<text>取消订单</text>
|
||||||
|
</text>
|
||||||
|
<text class="status" v-if="listinfo.status == 'merge'">
|
||||||
|
<text>合台</text>
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
|
<view class="tag-wrap">
|
||||||
|
<text class="tag" v-if="listinfo.sendType == 'post'">快递</text>
|
||||||
|
<text class="tag" v-if="listinfo.sendType == 'takeaway'">外卖</text>
|
||||||
|
<text class="tag" v-if="listinfo.sendType == 'takeself'">自提</text>
|
||||||
|
<text class="tag" v-if="listinfo.sendType == 'table'">堂食</text>
|
||||||
|
</view>
|
||||||
|
<view class="number-wrap"
|
||||||
|
v-if="listinfo.status != 'unpaid' && listinfo.status != 'paying'&& listinfo.status != 'cancelled'">
|
||||||
|
<text class="t">取餐号</text>
|
||||||
|
<text class="number">{{listinfo.outNumber || '空'}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="card" v-if="listinfoid && listinfo">
|
||||||
|
<view class="head border">
|
||||||
|
<text class="title">
|
||||||
|
<text>点单详情</text>
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
|
<view class="shop-info">
|
||||||
|
<view class="item" v-for="(item,index) in listinfo.details" :key="index">
|
||||||
|
<view class="cover">
|
||||||
|
<c-image width="120" height="120" radius="16" :src='item.productImg'></c-image>
|
||||||
|
</view>
|
||||||
|
<view class="info">
|
||||||
|
<text>{{item.productName}}</text>
|
||||||
|
<text class="n" v-if="item.productSkuName">{{item.productSkuName}}</text>
|
||||||
|
<text class="n">x{{item.num}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="price">
|
||||||
|
<text class="i">¥</text>
|
||||||
|
<text class="num">{{item.price}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="total-wrap">
|
||||||
|
<view class="price">
|
||||||
|
<text>合计:</text>
|
||||||
|
<text class="i">¥</text>
|
||||||
|
<text class="num">{{listinfo.payAmount}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="card" v-else>
|
||||||
|
<view class="shop-info">
|
||||||
|
<view class="item" v-for="(item,index) in cartLists.data" :key="index">
|
||||||
|
<view class="cover">
|
||||||
|
<c-image width="120" height="120" radius="16" :src='item.coverImg'></c-image>
|
||||||
|
</view>
|
||||||
|
<view class="info">
|
||||||
|
<text>{{item.name}}</text>
|
||||||
|
<text class="n">{{item.skuName}}</text>
|
||||||
|
<text class="n">x{{item.number}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="price">
|
||||||
|
<text class="i">¥</text>
|
||||||
|
<text class="num">{{item.salePrice}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- <view class="sixcontent">
|
||||||
|
<view class="sixcontentone flex-between" style="padding: 0 0;" @click="orderfoodindex">
|
||||||
|
<view class="sixcontent_one" style="padding: 0 0;">
|
||||||
|
优惠券
|
||||||
|
</view>
|
||||||
|
<text style="color: red;">{{emitorderfoodform.couponsPrice}}</text>
|
||||||
|
</view>
|
||||||
|
</view> -->
|
||||||
|
<!-- <view class="redMoney">
|
||||||
|
<view>
|
||||||
|
<image src="https://czg-qr-order.oss-cn-beijing.aliyuncs.com/drder/hongbao.png"
|
||||||
|
style="width: 30rpx;height: 30.24rpx;;" mode=""></image>
|
||||||
|
红包/抵用券
|
||||||
|
</view>
|
||||||
|
<view @click="orderfoodindex">
|
||||||
|
可用优惠券{{couponAmount}}张
|
||||||
|
</view>
|
||||||
|
</view> -->
|
||||||
|
<!-- <u--textarea v-model="remark" placeholder="订单备注" ></u--textarea> -->
|
||||||
|
<!-- 支付方式 -->
|
||||||
|
<view class="payType">
|
||||||
|
<view class="">
|
||||||
|
支付方式
|
||||||
|
</view>
|
||||||
|
<view class="">
|
||||||
|
<u-radio-group v-model="radiovalue" iconPlacement="right" @change="groupChange" :size="28"
|
||||||
|
placement="column">
|
||||||
|
<u-radio activeColor="#ffd158" name="1">
|
||||||
|
<view class="dfs">
|
||||||
|
<image style="width:44rpx;height:44rpx"
|
||||||
|
src="https://czg-qr-order.oss-cn-beijing.aliyuncs.com/drder/balance.png" mode="">
|
||||||
|
</image>
|
||||||
|
<text style="font-size: 28rpx;margin-left: 16rpx;">
|
||||||
|
微信支付
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
|
</u-radio>
|
||||||
|
<view style="margin: 22rpx 0;width: 100%;height: 2rpx;background-color: #E5E5E5;">
|
||||||
|
</view>
|
||||||
|
<u-radio activeColor="#ffd158" name="2">
|
||||||
|
<view class="dfs">
|
||||||
|
<image style="width:44rpx;height:44rpx"
|
||||||
|
src="https://czg-qr-order.oss-cn-beijing.aliyuncs.com/drder/wechat.png" mode="">
|
||||||
|
</image>
|
||||||
|
<text style="font-size: 28rpx;margin-left: 16rpx;">
|
||||||
|
会员卡支付</text>
|
||||||
|
</view>
|
||||||
|
</u-radio>
|
||||||
|
</u-radio-group>
|
||||||
|
<view style="font-weight: 400;font-size: 24rpx;color: #333333;margin-left: 60rpx;">
|
||||||
|
会员卡余额{{ amountVIP?amountVIP.amount:0}} <text
|
||||||
|
style="font-weight: 500;font-size: 28rpx;margin-left: 16rpx;color: #FF4C11;"
|
||||||
|
@click="goRecharge">去充值</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- <view class="sixcontent" >
|
||||||
|
<view class="sixcontentone flex-between">
|
||||||
|
<view class="sixcontent_one">
|
||||||
|
支付方式
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="sixcontenttow">
|
||||||
|
<view class="sixcontenttowitem flex-between" @click="clickselect(1)">
|
||||||
|
<view class="sixcontenttowitemone flex-start">
|
||||||
|
<u-icon name="weixin-fill" color="#999999" size="32"></u-icon>
|
||||||
|
<text class="sixcontenttowitemonetext">微信支付</text>
|
||||||
|
</view>
|
||||||
|
<view class="flex-start">
|
||||||
|
<u-icon v-if="pay_type == 1" name="checkmark-circle-fill" color="#333333" size="26"></u-icon>
|
||||||
|
<u-icon v-else name="checkmark-circle-fill" color="#999999" size="26"></u-icon>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="sixcontenttowitem flex-between" @click="clickselect(2)">
|
||||||
|
<view class="sixcontenttowitemone flex-start">
|
||||||
|
<u-icon name="zhifubao" color="#999999" size="26"></u-icon>
|
||||||
|
<text class="sixcontenttowitemonetext">余额支付</text>
|
||||||
|
</view>
|
||||||
|
<view class="flex-start">
|
||||||
|
<u-icon v-if="pay_type == 2" name="checkmark-circle-fill" color="#333333" size="26"></u-icon>
|
||||||
|
<u-icon v-else name="checkmark-circle-fill" color="#999999" size="26"></u-icon>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view> -->
|
||||||
|
<view :style="{height:height}">
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<view class="fixedview">
|
||||||
|
<view class="flex-between">
|
||||||
|
<view class="fixedview_one flex-start">
|
||||||
|
<view class="fixedview_oneone">
|
||||||
|
实付金额:
|
||||||
|
</view>
|
||||||
|
<view class="fixedview_onetow" v-if="listinfoid && listinfo">
|
||||||
|
<text>¥</text>{{listinfo.payAmount}}
|
||||||
|
</view>
|
||||||
|
<view class="fixedview_onetow" v-else>
|
||||||
|
<text>¥</text>{{cartLists.amount}}
|
||||||
|
</view>
|
||||||
|
<!-- <view class="fixedview_onethere" v-if="emitorderfoodform.couponsPrice">
|
||||||
|
以优惠¥{{emitorderfoodform.couponsPrice}}
|
||||||
|
</view> -->
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="fixedview_tow" @tap="$u.debounce(showpopupclickdd, 500)" v-if="listinfoid && listinfo">
|
||||||
|
立即付款
|
||||||
|
</view>
|
||||||
|
<view class="fixedview_tow" @tap="$u.debounce(orderdetail, 500)" v-else>
|
||||||
|
立即付款
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 支付密码 -->
|
||||||
|
<payPassword ref="payPwd" @accountPayevent="accountPayevent" v-if="ispws"></payPassword>
|
||||||
|
<!-- 弹幕 -->
|
||||||
|
<l-barrage ref="lBarrage" @end="onEnd" :minTop='0' :maxTop='16'></l-barrage>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// import {object} from 'prop-types';
|
||||||
|
import webSocketUtils from '@/common/js/websocket.js'
|
||||||
|
import payPassword from '@/components/payPassword.vue'
|
||||||
|
import lBarrage from '@/components/l-barrage/l-barrage.vue'
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
payPassword,
|
||||||
|
lBarrage
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
userInfo: uni.cache.get('userInfo'), //个人信息
|
||||||
|
cartLists: {},
|
||||||
|
height: '',
|
||||||
|
pay_type: 1,
|
||||||
|
remark: '',
|
||||||
|
listinfo: {
|
||||||
|
detailList: [],
|
||||||
|
amount: '',
|
||||||
|
amounts: ''
|
||||||
|
},
|
||||||
|
emitorderfoodform: {
|
||||||
|
clickiconone: ''
|
||||||
|
},
|
||||||
|
orderInfo: '',
|
||||||
|
// 可用优惠券数据
|
||||||
|
couponAmount: 0,
|
||||||
|
// 输入支付密码 123
|
||||||
|
ispws: false,
|
||||||
|
listinfoid: null,
|
||||||
|
radiovalue: '1',
|
||||||
|
amountVIP: null
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
onUnload() {
|
||||||
|
this.socketTicket.Close()
|
||||||
|
uni.$off('getMessage')
|
||||||
|
this.ispws = false
|
||||||
|
},
|
||||||
|
onHide() {
|
||||||
|
this.socketTicket.Close()
|
||||||
|
uni.$off('message')
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
uni.$on('message', this.getMessage)
|
||||||
|
if (this.listinfoid) {
|
||||||
|
this.orderorderInfo()
|
||||||
|
} else {
|
||||||
|
this.handlemessage()
|
||||||
|
}
|
||||||
|
// 获取余额
|
||||||
|
this.getAount()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getMessage(msg) {
|
||||||
|
if (msg == 1) { // 网络在连接
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if (msg.type == 'heartbeat') { //后台心跳 处理返回 不然控制台一直报错
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if (msg.status != 'success') {
|
||||||
|
uni.showToast({
|
||||||
|
title: msg.msg,
|
||||||
|
icon: "none",
|
||||||
|
})
|
||||||
|
return false;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
switch (msg.type) {
|
||||||
|
case 'createOrder':
|
||||||
|
console.log(msg.data)
|
||||||
|
this.listinfoid = msg.data.id
|
||||||
|
uni.$off('getMessage')
|
||||||
|
this.orderorderInfo(1)
|
||||||
|
break;
|
||||||
|
case 'addCart':
|
||||||
|
this.cartLists = msg
|
||||||
|
this.productqueryProduct() //list 数据
|
||||||
|
break;
|
||||||
|
case 'order':
|
||||||
|
uni.navigateBack()
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.showToast({
|
||||||
|
title: '您的小伙伴已下单了哦~~'
|
||||||
|
})
|
||||||
|
}, 1000)
|
||||||
|
break;
|
||||||
|
case 'addcart':
|
||||||
|
/*插入一条弹幕*/
|
||||||
|
this.$refs.lBarrage.add(
|
||||||
|
`${msg.reqData.nickName?msg.reqData.nickName:'微信用户'}${msg.reqData.num==-1?'取消了':'添加了'}${msg.reqData.name}(${msg.reqData.num})`
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
this.$set(this, 'cartLists', msg)
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
handlemessage() {
|
||||||
|
this.socketTicket ? this.socketTicket.Close() : null //调用前先判断是否有socket正在进行 先关闭后链接
|
||||||
|
this.socketTicket = new webSocketUtils(`${uni.conf.baseUrlwws}`, 5000, {
|
||||||
|
tableId: uni.cache.get('tableCode'),
|
||||||
|
shopId: uni.cache.get('shopUser'),
|
||||||
|
userId: uni.cache.get('userInfo').id,
|
||||||
|
"type": "connect",
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 数据处理
|
||||||
|
socketSendMsg(data) {
|
||||||
|
if (this.socketTicket) {
|
||||||
|
this.socketTicket.send(data);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onEnd() { //回调弹幕
|
||||||
|
console.log('一波结束')
|
||||||
|
},
|
||||||
|
// 查询订单信息
|
||||||
|
async orderorderInfo(i) {
|
||||||
|
let res = await this.api.orderorderInfo({
|
||||||
|
orderId: this.listinfoid
|
||||||
|
})
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.listinfo = res.data
|
||||||
|
if (i == 1) { //请求完了详情在去调支付
|
||||||
|
this.showpopupclickdd()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
groupChange(n) {
|
||||||
|
this.radiovalue = n
|
||||||
|
},
|
||||||
|
async getAount() {
|
||||||
|
let res = await this.api.shopUserInfo({
|
||||||
|
"shopId": uni.cache.get('shopUser'),
|
||||||
|
"userId": uni.cache.get('userInfo').id,
|
||||||
|
})
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.amountVIP = res.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
orderfoodindex() { //优惠劵
|
||||||
|
uni.pro.navigateTo('index/coupons/index', {
|
||||||
|
orderfood: 0,
|
||||||
|
orderId: this.listinfoid,
|
||||||
|
amount: this.listinfo.amounts
|
||||||
|
})
|
||||||
|
},
|
||||||
|
copyHandle(e) {
|
||||||
|
uni.setClipboardData({
|
||||||
|
data: e,
|
||||||
|
success() {
|
||||||
|
uni.showToast({
|
||||||
|
title: '复制成功',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
async paymodfiyOrderInfo() { //支付完成后请求
|
||||||
|
let res = await this.api.paymodfiyOrderInfo({
|
||||||
|
orderId: this.listinfoid,
|
||||||
|
})
|
||||||
|
},
|
||||||
|
goRecharge() { // 去充值
|
||||||
|
uni.pro.navigateTo('/pages/member/index', {
|
||||||
|
shopId: uni.cache.get('shopUser')
|
||||||
|
})
|
||||||
|
},
|
||||||
|
orderdetail() { // 直接生成订单
|
||||||
|
let data = {
|
||||||
|
"skuId": '',
|
||||||
|
"num": '', //数量
|
||||||
|
"type": "createOrder", //“addcart:添加购物车,create0rder:生成订单,clearCart:庆康购物车”,
|
||||||
|
"couponsId": '', //优惠券ID,
|
||||||
|
"isYhq": 0, // 是否使用优惠券( 1: 使用, 0: 不使用),
|
||||||
|
"isBuyYhq": 0, // 是否购买优惠券( 1: 购买, 0: 不够买)
|
||||||
|
"productId": '', //商品id
|
||||||
|
"shopId": uni.cache.get('shopUser'),
|
||||||
|
"userId": uni.cache.get('userInfo').id,
|
||||||
|
}
|
||||||
|
uni.$u.debounce(this.socketSendMsg(data), 500)
|
||||||
|
},
|
||||||
|
showpopupclickdd() {
|
||||||
|
uni.showLoading({
|
||||||
|
title: '加载中',
|
||||||
|
mask: true
|
||||||
|
})
|
||||||
|
// radiovalue为1是微信支付
|
||||||
|
if (this.radiovalue == 1) {
|
||||||
|
this.showpopupclickdds() //微信支付
|
||||||
|
} else {
|
||||||
|
// 先判断是否设置支付密码。0是没设置。没设置的情况下跳转到设置页面。有的话输入支付密码
|
||||||
|
// console.log(isPwd,'是否设置了支付密码')
|
||||||
|
if (uni.cache.get('userInfo').isPwd == 0) {
|
||||||
|
uni.pro.navigateTo('/pages/user/repairpassword', {
|
||||||
|
shopId_id: uni.cache.get('shopUser')
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
uni.hideLoading()
|
||||||
|
this.ispws = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.payPwd.onPayUp();
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 微信支付
|
||||||
|
async showpopupclickdds() {
|
||||||
|
let res = await this.api.payorderPay({
|
||||||
|
orderId: this.listinfoid
|
||||||
|
}) //判断是否支付成功
|
||||||
|
if (res.code == 0) {
|
||||||
|
|
||||||
|
// #ifdef MP-WEIXIN
|
||||||
|
// 微信支付还是余额支付
|
||||||
|
uni.requestPayment({
|
||||||
|
provider: 'wxpay', //支付类型-固定值
|
||||||
|
partnerid: res.data.appId, // 微信支付商户号
|
||||||
|
timeStamp: res.data.timeStamp, // 时间戳(单位:秒)
|
||||||
|
nonceStr: res.data.nonceStr, // 随机字符串
|
||||||
|
package: res.data.package, // 固定值
|
||||||
|
signType: res.data.signType, //固定值
|
||||||
|
paySign: res.data.paySign, //签名
|
||||||
|
success: (res) => {
|
||||||
|
let _this = this
|
||||||
|
uni.requestSubscribeMessage({
|
||||||
|
tmplIds: ['z0fUG7-jhSfYCrw6poOvSRzh4_hgnPkm_5C7E5s5bCQ'],
|
||||||
|
complete() {
|
||||||
|
uni.showToast({
|
||||||
|
title: "支付成功"
|
||||||
|
})
|
||||||
|
// uni.cache.set('shopUser', '') //删除shopUser
|
||||||
|
_this.paymodfiyOrderInfo()
|
||||||
|
uni.redirectTo({
|
||||||
|
url: '/pages/order/order_detail?orderId=' + _this
|
||||||
|
.listinfoid
|
||||||
|
});
|
||||||
|
},
|
||||||
|
})
|
||||||
|
},
|
||||||
|
fail: () => {
|
||||||
|
uni.hideLoading()
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// #endif
|
||||||
|
uni.hideLoading()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 余额支付
|
||||||
|
async accountPayevent(pwd) {
|
||||||
|
this.ispws = false
|
||||||
|
let res = await this.api.accountPay({
|
||||||
|
orderId: this.listinfoid,
|
||||||
|
memberId: this.amountVIP.id,
|
||||||
|
// remark: this.remark,
|
||||||
|
pwd
|
||||||
|
})
|
||||||
|
if (res.code == 0) {
|
||||||
|
// data ->1 支付成功
|
||||||
|
// ->2 余额不足
|
||||||
|
// ->3 未设置支付密码,
|
||||||
|
// ->4 不是会员,
|
||||||
|
if (res.data == 1) {
|
||||||
|
this.showToastUppop('支付成功')
|
||||||
|
let _this = this
|
||||||
|
|
||||||
|
uni.requestSubscribeMessage({
|
||||||
|
tmplIds: ['z0fUG7-jhSfYCrw6poOvSRzh4_hgnPkm_5C7E5s5bCQ'],
|
||||||
|
complete() {
|
||||||
|
uni.redirectTo({
|
||||||
|
url: '/pages/order/order_detail?orderId=' + _this
|
||||||
|
.listinfoid
|
||||||
|
});
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
} else if (res.data == 2) {
|
||||||
|
this.showToastUppop('余额不足')
|
||||||
|
setTimeout(() => {
|
||||||
|
// 去充值
|
||||||
|
this.goRecharge()
|
||||||
|
}, 1500)
|
||||||
|
} else if (res.data == 3) {
|
||||||
|
this.showToastUppop('未设置支付密码')
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.pro.navigateTo('/pages/user/repairpassword', {
|
||||||
|
shopId_id: uni.cache.get('shopUser')
|
||||||
|
})
|
||||||
|
}, 1500)
|
||||||
|
|
||||||
|
} else if (res.data == 4) {
|
||||||
|
this.showToastUppop('非会员请充值')
|
||||||
|
setTimeout(() => {
|
||||||
|
// 去充值
|
||||||
|
this.goRecharge()
|
||||||
|
}, 1500)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
showToastUppop(title) {
|
||||||
|
uni.showToast({
|
||||||
|
icon: 'none',
|
||||||
|
title,
|
||||||
|
success: () => {
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
|
async mounted() {
|
||||||
|
let rectInfo = await this.$u.getRect('.fixedview');
|
||||||
|
console.log(rectInfo);
|
||||||
|
this.height = rectInfo.height + "px"
|
||||||
|
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.container {
|
||||||
|
padding: 0 28upx 28upx 28upx 28upx;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card {
|
||||||
|
background-color: #fff;
|
||||||
|
border-radius: 20upx;
|
||||||
|
padding: 28upx;
|
||||||
|
margin-bottom: 48rpx;
|
||||||
|
|
||||||
|
.head {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
&.border {
|
||||||
|
padding-bottom: 28upx;
|
||||||
|
border-bottom: 1upx solid #fafafa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status {
|
||||||
|
color: #ff0000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag-wrap {
|
||||||
|
padding: 28upx 0;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.tag {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
padding: 0 10upx;
|
||||||
|
color: $color-priamry;
|
||||||
|
border: 1px solid $color-priamry;
|
||||||
|
font-size: 24upx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.number-wrap {
|
||||||
|
background-color: #fafafa;
|
||||||
|
border-radius: 16upx;
|
||||||
|
padding: 28upx 0;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.number {
|
||||||
|
font-size: 42upx;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.price {
|
||||||
|
.i {
|
||||||
|
font-size: 20upx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.num {
|
||||||
|
font-size: 38upx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.shop-info {
|
||||||
|
padding: 28upx 0;
|
||||||
|
|
||||||
|
.item:nth-child(1) {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item {
|
||||||
|
margin-top: 16rpx;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.info {
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding-left: 28upx;
|
||||||
|
|
||||||
|
.n {
|
||||||
|
font-size: 24upx;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.total-wrap {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
padding-top: 28upx;
|
||||||
|
border-top: 1upx solid #fafafa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.order-info {
|
||||||
|
.row {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding-top: 28upx;
|
||||||
|
|
||||||
|
.t {
|
||||||
|
font-size: 24upx;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
font-size: 24upx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sixcontent {
|
||||||
|
width: 100%;
|
||||||
|
background: #FFFFFF;
|
||||||
|
padding: 32rpx;
|
||||||
|
margin-top: 32rpx;
|
||||||
|
border-radius: 12rpx;
|
||||||
|
|
||||||
|
.sixcontentone {
|
||||||
|
padding-bottom: 28rpx;
|
||||||
|
border-bottom: 1px solid #F7F7F7;
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333333;
|
||||||
|
|
||||||
|
.sixcontent_one {
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sixcontenttow {
|
||||||
|
.sixcontenttowitem {
|
||||||
|
margin-top: 16rpx;
|
||||||
|
|
||||||
|
.sixcontenttowitemone {
|
||||||
|
image {
|
||||||
|
margin-left: 24rpx;
|
||||||
|
width: 31.37rpx;
|
||||||
|
height: 27.34rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sixcontenttowitemonetext {
|
||||||
|
margin-left: 14rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.redMoney {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
padding: 18rpx 14rpx;
|
||||||
|
|
||||||
|
>view:first-child {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
>view:last-child {
|
||||||
|
background: #FFE9E9;
|
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #FF3333;
|
||||||
|
text-align: center;
|
||||||
|
padding: 9rpx 13rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.payType {
|
||||||
|
padding: 32rpx 34rpx;
|
||||||
|
margin-top: 48rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
|
||||||
|
>view:first-child {
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
>view:last-child {
|
||||||
|
margin-top: 32rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dfs {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.fixedview {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 180rpx;
|
||||||
|
padding: 16rpx 34rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
|
||||||
|
.flex-between {
|
||||||
|
width: 100%;
|
||||||
|
padding: 24rpx 28rpx;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
|
||||||
|
.fixedview_one {
|
||||||
|
.fixedview_oneone {
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-family: SourceHanSansCN-Bold-, SourceHanSansCN-Bold;
|
||||||
|
font-weight: normal;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fixedview_onetow {
|
||||||
|
font-size: 44rpx;
|
||||||
|
font-family: SourceHanSansCN-Bold-, SourceHanSansCN-Bold;
|
||||||
|
font-weight: normal;
|
||||||
|
color: #F45C4C;
|
||||||
|
font-weight: bold;
|
||||||
|
|
||||||
|
text {
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.fixedview_onethere {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.fixedview_tow {
|
||||||
|
background: red;
|
||||||
|
border-radius: 34rpx;
|
||||||
|
padding: 10rpx 44rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-family: PingFang SC-Bold, PingFang SC;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
<view class="card" v-if="listinfo.tableName">
|
<view class="card" v-if="listinfo.tableName">
|
||||||
<view class="head">
|
<view class="head">
|
||||||
<text class="title">
|
<text class="title">
|
||||||
<text>{{listinfo.tableName || '空'}}</text>
|
桌号:<text>{{listinfo.tableName || '空'}}</text>
|
||||||
</text>
|
</text>
|
||||||
<text class="status" v-if="listinfo.status == 'unpaid'">
|
<text class="status" v-if="listinfo.status == 'unpaid'">
|
||||||
<text>待支付</text>
|
<text>待支付</text>
|
||||||
@@ -36,9 +36,10 @@
|
|||||||
<text class="tag" v-if="listinfo.sendType == 'takeself'">自提</text>
|
<text class="tag" v-if="listinfo.sendType == 'takeself'">自提</text>
|
||||||
<text class="tag" v-if="listinfo.sendType == 'table'">堂食</text>
|
<text class="tag" v-if="listinfo.sendType == 'table'">堂食</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="number-wrap" v-if="listinfo.status != 'unpaid'">
|
<view class="number-wrap"
|
||||||
|
v-if="listinfo.status != 'unpaid' && listinfo.status != 'paying'&& listinfo.status != 'cancelled'">
|
||||||
<text class="t">取餐号</text>
|
<text class="t">取餐号</text>
|
||||||
<text class="number">{{listinfo.tableName || '空'}}</text>
|
<text class="number">{{listinfo.outNumber || '空'}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="card">
|
<view class="card">
|
||||||
|
|||||||
1211
pages/order_food/order_food - 副本.vue
Normal file
1211
pages/order_food/order_food - 副本.vue
Normal file
File diff suppressed because it is too large
Load Diff
@@ -12,11 +12,11 @@
|
|||||||
<view class="left-btn">
|
<view class="left-btn">
|
||||||
<view class="btn" :style="{ width: `${menuInfo.height}px`, height: `${menuInfo.height}px` }"
|
<view class="btn" :style="{ width: `${menuInfo.height}px`, height: `${menuInfo.height}px` }"
|
||||||
@click="navClickHandle(1)">
|
@click="navClickHandle(1)">
|
||||||
<u-icon name="arrow-left" :color="isFixed ? '#333' : '#fff'" size="38"></u-icon>
|
<u-icon name="arrow-left" :color="isFixed ? '#333' : '#fff'" size="28"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
<view class="btn" :style="{ width: `${menuInfo.height}px`, height: `${menuInfo.height}px` }"
|
<view class="btn" :style="{ width: `${menuInfo.height}px`, height: `${menuInfo.height}px` }"
|
||||||
@click="navClickHandle(2)">
|
@click="navClickHandle(2)">
|
||||||
<u-icon name="kefu-ermai" :color="isFixed ? '#333' : '#fff'" size="38"></u-icon>
|
<u-icon name="kefu-ermai" :color="isFixed ? '#333' : '#fff'" size="28"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -89,12 +89,12 @@
|
|||||||
<view class="operation-wrap" v-else>
|
<view class="operation-wrap" v-else>
|
||||||
<view class="btn" v-if="item1.cartNumber != '0'"
|
<view class="btn" v-if="item1.cartNumber != '0'"
|
||||||
@click.stop="cartadd(item1,index,index1,'-',item1.productSkuResult == null ? '单规格':'')">
|
@click.stop="cartadd(item1,index,index1,'-',item1.productSkuResult == null ? '单规格':'')">
|
||||||
<u-icon :name="require('@/static/icon_sub.png')" size="34"></u-icon>
|
<u-icon :name="require('@/static/icon_sub.png')" size="36"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
<text class="num">{{ item1.cartNumber }}</text>
|
<text class="num">{{ item1.cartNumber }}</text>
|
||||||
<view class="btn"
|
<view class="btn"
|
||||||
@click.stop="cartadd(item1,index,index1,'+',item1.productSkuResult == null ? '单规格':'')">
|
@click.stop="cartadd(item1,index,index1,'+',item1.productSkuResult == null ? '单规格':'')">
|
||||||
<u-icon :name="require('@/static/icon_add.png')" size="34"></u-icon>
|
<u-icon :name="require('@/static/icon_add.png')" size="36"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -171,7 +171,7 @@
|
|||||||
<view class="col">
|
<view class="col">
|
||||||
<text class="t">{{ shopList.storeInfo.businessTime }}</text>
|
<text class="t">{{ shopList.storeInfo.businessTime }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="col">
|
<view class="col" @click="makePhoneCall(shopList.storeInfo.phone)">
|
||||||
<text class="t">{{ shopList.storeInfo.phone }}</text>
|
<text class="t">{{ shopList.storeInfo.phone }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="col">
|
<view class="col">
|
||||||
@@ -230,19 +230,23 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</u-popup>
|
</u-popup>
|
||||||
<!-- <vastwu-barrage width="750rpx" height="1300rpx" ref="vBarrage"></vastwu-barrage> -->
|
<l-barrage ref="lBarrage" @end="onEnd" :minTop='8' :maxTop='20' :avatar='barrageavatar'></l-barrage>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import navbar from '../../uni_modules/uview-ui/libs/config/props/navbar';
|
import webSocketUtils from '@/common/js/websocket.js';
|
||||||
import webSocketUtils from '@/common/js/websocket.js'
|
import orderdetail from '@/pages/order_detail/index';
|
||||||
// import vastwuBarrage from '@/components/vastwu-barrage/vastwu-barrage.vue'
|
import lBarrage from '@/components/l-barrage/l-barrage.vue'
|
||||||
export default {
|
export default {
|
||||||
// components:{vastwuBarrage},
|
components: {
|
||||||
|
orderdetail,
|
||||||
|
lBarrage
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
userInfo: uni.cache.get('userInfo'), //个人信息
|
||||||
// #ifndef MP-WEIXIN
|
// #ifndef MP-WEIXIN
|
||||||
menuInfo: uni.getSystemInfo(),
|
menuInfo: uni.getSystemInfo(),
|
||||||
// #endif
|
// #endif
|
||||||
@@ -262,12 +266,17 @@
|
|||||||
tableCode: '', //code,
|
tableCode: '', //code,
|
||||||
specifications: {},
|
specifications: {},
|
||||||
skuidname: [],
|
skuidname: [],
|
||||||
cartLists: {},
|
cartLists: {}, //购物车
|
||||||
|
orderdetailcartLists: {}, //提交订单
|
||||||
socketTicket: null,
|
socketTicket: null,
|
||||||
amountcartNumber: 0,
|
amountcartNumber: 0,
|
||||||
skuidsearch: '', //
|
skuidsearch: '', //
|
||||||
salePrice: '', //钱数
|
salePrice: '', //钱数
|
||||||
fixedtrue: true
|
fixedtrue: true,
|
||||||
|
datasocket: {}, //储存传参数据
|
||||||
|
radiovalue: '1', //选择支付方式
|
||||||
|
amountVIP: null, //余额
|
||||||
|
barrageavatar: '' //弹幕头像
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
onPageScroll(e) {
|
onPageScroll(e) {
|
||||||
@@ -292,22 +301,27 @@
|
|||||||
uni.cache.set('tableCode', this.tableCode)
|
uni.cache.set('tableCode', this.tableCode)
|
||||||
}
|
}
|
||||||
uni.cache.set('types', 'types');
|
uni.cache.set('types', 'types');
|
||||||
uni.$on('message', this.getMessage)
|
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.countTitleTopNum(); //导航栏
|
this.countTitleTopNum(); //导航栏
|
||||||
});
|
});
|
||||||
// this.$refs.vBarrage.init([123])
|
|
||||||
},
|
},
|
||||||
onUnload() {
|
onUnload() {
|
||||||
this.socketTicket.Close()
|
this.socketTicket.Close()
|
||||||
uni.$off('message')
|
uni.$off('message')
|
||||||
},
|
},
|
||||||
|
onHide() {
|
||||||
|
this.socketTicket.Close()
|
||||||
|
uni.$off('message')
|
||||||
|
this.fixedtrue = true
|
||||||
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
setTimeout(() => {
|
uni.$on('message', this.getMessage)
|
||||||
this.productqueryShopIdByTableCode() //获取shop User id
|
this.productqueryShopIdByTableCode() //获取shop User id
|
||||||
}, 500)
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
onEnd() { //回调弹幕
|
||||||
|
console.log('一波结束')
|
||||||
|
},
|
||||||
// 单独获取他的shopUserid
|
// 单独获取他的shopUserid
|
||||||
async productqueryShopIdByTableCode() {
|
async productqueryShopIdByTableCode() {
|
||||||
let res = await this.api.productqueryShopIdByTableCode({
|
let res = await this.api.productqueryShopIdByTableCode({
|
||||||
@@ -315,7 +329,7 @@
|
|||||||
})
|
})
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
uni.cache.set('shopUser', res.data)
|
uni.cache.set('shopUser', res.data)
|
||||||
this.handlemessage()
|
this.handlemessage() //监听websocket返回
|
||||||
this.productqueryProduct() //list 数据
|
this.productqueryProduct() //list 数据
|
||||||
} else {
|
} else {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@@ -324,34 +338,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
getMessage(msg) { //wss 回显数据
|
getMessage(msg) { //wss 回显数据
|
||||||
// console.log(this.shopList.productInfo)
|
|
||||||
// console.log(msg.data)
|
|
||||||
// const sumValuesByKey = (arr, key) => {
|
|
||||||
// return arr.reduce((accumulator, current) => {
|
|
||||||
// const existing = accumulator.find(item => item[key] === current[key]);
|
|
||||||
// if (existing) {
|
|
||||||
// existing.number += current.number;
|
|
||||||
// } else {
|
|
||||||
// accumulator.push({
|
|
||||||
// ...current
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
// return accumulator;
|
|
||||||
// }, []);
|
|
||||||
// };
|
|
||||||
// const result = sumValuesByKey(msg.data, 'productId');
|
|
||||||
// this.shopList.productInfo.forEach((item, index) => {
|
|
||||||
// if (item.id == result.categoryId) {
|
|
||||||
// item.products.forEach((item1,index1) => {
|
|
||||||
|
|
||||||
// })
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
if (msg == 1) { // 网络在连接
|
if (msg == 1) { // 网络在连接
|
||||||
this.fixedtrue = true
|
this.fixedtrue = true
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
this.fixedtrue = false
|
this.fixedtrue = false
|
||||||
|
if (msg.type == 'heartbeat') { //后台心跳 处理返回 不然控制台一直报错
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
try {
|
||||||
if (msg.status != 'success') {
|
if (msg.status != 'success') {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: msg.msg,
|
title: msg.msg,
|
||||||
@@ -370,6 +365,8 @@
|
|||||||
this.productqueryProduct() //list 数据
|
this.productqueryProduct() //list 数据
|
||||||
break;
|
break;
|
||||||
case 'clearCart':
|
case 'clearCart':
|
||||||
|
this.cartLists = msg
|
||||||
|
this.productqueryProduct() //list 数据
|
||||||
this.skuidname = []
|
this.skuidname = []
|
||||||
this.showCart = false
|
this.showCart = false
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@@ -378,30 +375,22 @@
|
|||||||
icon: "none",
|
icon: "none",
|
||||||
})
|
})
|
||||||
}, 500)
|
}, 500)
|
||||||
this.cartLists = msg
|
|
||||||
this.productqueryProduct() //list 数据
|
|
||||||
break;
|
break;
|
||||||
case 'order':
|
case 'order':
|
||||||
console.log('clearCart')
|
|
||||||
this.skuidname = []
|
this.skuidname = []
|
||||||
this.showCart = false
|
this.showCart = false
|
||||||
this.cartLists = msg
|
this.cartLists = msg
|
||||||
this.productqueryProduct() //list 数据
|
this.productqueryProduct() //list 数据
|
||||||
break;
|
break;
|
||||||
case 'createOrder': //去结算
|
case 'addCart': //初始化add
|
||||||
let item = JSON.stringify(msg.data)
|
this.cartLists = msg
|
||||||
uni.redirectTo({
|
this.productqueryProduct() //list 数据
|
||||||
url: '/pages/order_detail/order_detail?tablelist=' + item
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case 'queryCart': //待提交
|
|
||||||
uni.redirectTo({
|
|
||||||
url: '/pages/order_detail/order_detail?tableId=' + JSON.stringify(msg.data) +
|
|
||||||
'&amount=' + msg.amount
|
|
||||||
});
|
|
||||||
break;
|
break;
|
||||||
case 'addcart':
|
case 'addcart':
|
||||||
this.cartLists = msg
|
this.cartLists = msg
|
||||||
|
console.log(msg, 1111)
|
||||||
|
this.productqueryProduct() //list 数据
|
||||||
|
try {
|
||||||
if (msg.data.length != 0) {
|
if (msg.data.length != 0) {
|
||||||
let nums = 0
|
let nums = 0
|
||||||
msg.data.forEach((item, index, arr) => { //初始化skuidname的数据 选择第一个
|
msg.data.forEach((item, index, arr) => { //初始化skuidname的数据 选择第一个
|
||||||
@@ -413,12 +402,23 @@
|
|||||||
} else {
|
} else {
|
||||||
this.$set(this, 'amountcartNumber', 0)
|
this.$set(this, 'amountcartNumber', 0)
|
||||||
}
|
}
|
||||||
this.productqueryProduct() //list 数据
|
} catch (e) {
|
||||||
break;
|
//TODO handle the exception
|
||||||
default:
|
|
||||||
this.cartLists = msg
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
|
this.barrageavatar = msg.reqData.headImg
|
||||||
|
/*插入一条弹幕*/
|
||||||
|
this.$refs.lBarrage.add(
|
||||||
|
`${msg.reqData.nickName?msg.reqData.nickName:'微信用户'}${msg.reqData.num==-1?'取消了':'添加了'}${msg.reqData.name}(${msg.reqData.num})`
|
||||||
|
);
|
||||||
|
} catch (e) {
|
||||||
|
//TODO handle the exception
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
//TODO handle the exception
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handlemessage() {
|
handlemessage() {
|
||||||
@@ -432,12 +432,8 @@
|
|||||||
},
|
},
|
||||||
// 数据处理
|
// 数据处理
|
||||||
socketSendMsg(data) {
|
socketSendMsg(data) {
|
||||||
console.log(data, 1111)
|
|
||||||
if (this.socketTicket) {
|
if (this.socketTicket) {
|
||||||
console.log(222)
|
|
||||||
this.socketTicket.send(data);
|
this.socketTicket.send(data);
|
||||||
} else {
|
|
||||||
console.log(333)
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getQueryString(url, name) { //解码
|
getQueryString(url, name) { //解码
|
||||||
@@ -449,16 +445,15 @@
|
|||||||
return null;
|
return null;
|
||||||
},
|
},
|
||||||
async cartadd(item, index, index1, a, b) { //列表添加 a传参加减号 b是判断单规格多规格
|
async cartadd(item, index, index1, a, b) { //列表添加 a传参加减号 b是判断单规格多规格
|
||||||
console.log(item, index, index1, a, b)
|
|
||||||
if (b == '单规格') { //没有规格为空
|
if (b == '单规格') { //没有规格为空
|
||||||
this.skuidname = []
|
this.skuidname = []
|
||||||
}
|
}
|
||||||
this.hodgepodge(item, 1, a) //获取skuid /1添加购物车
|
this.hodgepodge(item, 1, a) //获取skuid /1添加购物车
|
||||||
},
|
},
|
||||||
async cartListadd(item, index, a) {
|
async cartListadd(item, index, a) { //购物车加减
|
||||||
console.log(item, index, a)
|
|
||||||
try {
|
try {
|
||||||
const data = { //定义socket数据传参
|
const data = { //定义socket数据传参
|
||||||
|
"name": item.name,
|
||||||
"skuId": item.skuId,
|
"skuId": item.skuId,
|
||||||
"num": a == '-' ? -1 : 1, //skuId
|
"num": a == '-' ? -1 : 1, //skuId
|
||||||
"type": "addcart", //“addcart:添加购物车,create0rder:生成订单,clearCart:清空购物车”,
|
"type": "addcart", //“addcart:添加购物车,create0rder:生成订单,clearCart:清空购物车”,
|
||||||
@@ -466,6 +461,7 @@
|
|||||||
"shopId": uni.cache.get('shopUser'),
|
"shopId": uni.cache.get('shopUser'),
|
||||||
"userId": uni.cache.get('userInfo').id
|
"userId": uni.cache.get('userInfo').id
|
||||||
};
|
};
|
||||||
|
this.datasocket = data
|
||||||
uni.$u.debounce(this.socketSendMsg(data), 500)
|
uni.$u.debounce(this.socketSendMsg(data), 500)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
//TODO handle the exception
|
//TODO handle the exception
|
||||||
@@ -519,8 +515,6 @@
|
|||||||
this.hodgepodge(item, 2)
|
this.hodgepodge(item, 2)
|
||||||
},
|
},
|
||||||
async hodgepodge(item, a, c) { //此接口去获取商品id !!!赋值库存 数量 价格等
|
async hodgepodge(item, a, c) { //此接口去获取商品id !!!赋值库存 数量 价格等
|
||||||
console.log(11111)
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let res = await this.api.productqueryProductSku({
|
let res = await this.api.productqueryProductSku({
|
||||||
shopId: uni.cache.get('shopUser'),
|
shopId: uni.cache.get('shopUser'),
|
||||||
@@ -538,6 +532,9 @@
|
|||||||
let data = null
|
let data = null
|
||||||
if (a == 1) { //1添加购物车 2是websocket返回这个商品的价格(应为不同的多规格商品返回不同的价格)
|
if (a == 1) { //1添加购物车 2是websocket返回这个商品的价格(应为不同的多规格商品返回不同的价格)
|
||||||
data = { //定义socket数据传参
|
data = { //定义socket数据传参
|
||||||
|
"nickName": this.userInfo.nickName,
|
||||||
|
"barrageavatar": this.userInfo.headImg,
|
||||||
|
'name': item.name,
|
||||||
"skuId": res.data.id,
|
"skuId": res.data.id,
|
||||||
"num": c == '-' ? -1 : 1, //数量
|
"num": c == '-' ? -1 : 1, //数量
|
||||||
"type": "addcart", //“addcart:添加购物车,create0rder:生成订单,clearCart:庆康购物车”,
|
"type": "addcart", //“addcart:添加购物车,create0rder:生成订单,clearCart:庆康购物车”,
|
||||||
@@ -547,6 +544,7 @@
|
|||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
data = { //查询这个商品的价格
|
data = { //查询这个商品的价格
|
||||||
|
"name": item.name,
|
||||||
"skuId": res.data.id,
|
"skuId": res.data.id,
|
||||||
"num": '', //数量
|
"num": '', //数量
|
||||||
"type": "sku", //“addcart:添加购物车,create0rder:生成订单,clearCart:庆康购物车”,
|
"type": "sku", //“addcart:添加购物车,create0rder:生成订单,clearCart:庆康购物车”,
|
||||||
@@ -556,23 +554,35 @@
|
|||||||
};
|
};
|
||||||
this.showShopsku = true //打开弹框
|
this.showShopsku = true //打开弹框
|
||||||
}
|
}
|
||||||
|
this.datasocket = data
|
||||||
uni.$u.debounce(this.socketSendMsg(data), 500)
|
uni.$u.debounce(this.socketSendMsg(data), 500)
|
||||||
}
|
}
|
||||||
} catch (e) {}
|
} catch (e) {}
|
||||||
},
|
},
|
||||||
orderdetail() { // 直接生成订单
|
orderdetail() { // 直接生成订单
|
||||||
let data = {
|
if (this.cartLists.data.length == 0) {
|
||||||
"skuId": '',
|
uni.showToast({
|
||||||
"num": '', //数量
|
title: '请先添加商品',
|
||||||
"type": "createOrder", //“addcart:添加购物车,create0rder:生成订单,clearCart:庆康购物车”,
|
icon: 'none'
|
||||||
"couponsId": '', //优惠券ID,
|
})
|
||||||
"isYhq": 0, // 是否使用优惠券( 1: 使用, 0: 不使用),
|
return false
|
||||||
"isBuyYhq": 0, // 是否购买优惠券( 1: 购买, 0: 不够买)
|
|
||||||
"productId": '', //商品id
|
|
||||||
"shopId": uni.cache.get('shopUser'),
|
|
||||||
"userId": uni.cache.get('userInfo').id,
|
|
||||||
}
|
}
|
||||||
uni.$u.debounce(this.socketSendMsg(data), 500)
|
uni.navigateTo({
|
||||||
|
url: '/pages/order_detail/indexs?tableId=' + JSON.stringify(this.cartLists)
|
||||||
|
});
|
||||||
|
// let data = {
|
||||||
|
// "skuId": '',
|
||||||
|
// "num": '', //数量
|
||||||
|
// "type": "createOrder", //“addcart:添加购物车,create0rder:生成订单,clearCart:庆康购物车”,
|
||||||
|
// "couponsId": '', //优惠券ID,
|
||||||
|
// "isYhq": 0, // 是否使用优惠券( 1: 使用, 0: 不使用),
|
||||||
|
// "isBuyYhq": 0, // 是否购买优惠券( 1: 购买, 0: 不够买)
|
||||||
|
// "productId": '', //商品id
|
||||||
|
// "shopId": uni.cache.get('shopUser'),
|
||||||
|
// "userId": uni.cache.get('userInfo').id,
|
||||||
|
// }
|
||||||
|
// this.datasocket = data
|
||||||
|
// uni.$u.debounce(this.socketSendMsg(data), 500)
|
||||||
},
|
},
|
||||||
async cartclear() { //清空购物车
|
async cartclear() { //清空购物车
|
||||||
try {
|
try {
|
||||||
@@ -584,11 +594,11 @@
|
|||||||
"shopId": uni.cache.get('shopUser'),
|
"shopId": uni.cache.get('shopUser'),
|
||||||
"userId": uni.cache.get('userInfo').id
|
"userId": uni.cache.get('userInfo').id
|
||||||
};
|
};
|
||||||
|
this.datasocket = data
|
||||||
uni.$u.debounce(this.socketSendMsg(data), 500)
|
uni.$u.debounce(this.socketSendMsg(data), 500)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
//TODO handle the exception
|
//TODO handle the exception
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
// 导航栏点击
|
// 导航栏点击
|
||||||
navClickHandle(t) {
|
navClickHandle(t) {
|
||||||
@@ -608,6 +618,12 @@
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
//打电话
|
||||||
|
makePhoneCall(phone) {
|
||||||
|
uni.makePhoneCall({
|
||||||
|
phoneNumber: phone //仅为示例
|
||||||
|
});
|
||||||
|
},
|
||||||
// 点击菜单商品滚动到指定为止
|
// 点击菜单商品滚动到指定为止
|
||||||
titleClickHandle(id) {
|
titleClickHandle(id) {
|
||||||
uni.createSelectorQuery()
|
uni.createSelectorQuery()
|
||||||
@@ -657,7 +673,7 @@
|
|||||||
.exec();
|
.exec();
|
||||||
}
|
}
|
||||||
this.titleTopNums = topNums;
|
this.titleTopNums = topNums;
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@@ -687,7 +703,7 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
margin-right: $paddingSize;
|
// margin-right: $paddingSize;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -943,12 +959,23 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.btn {
|
.btn {
|
||||||
|
position: relative;
|
||||||
padding: 6upx 10upx;
|
padding: 6upx 10upx;
|
||||||
background-color: $color-priamry;
|
background-color: $color-priamry;
|
||||||
border-radius: 12upx;
|
border-radius: 12upx;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
left: -10px;
|
||||||
|
top: -10px;
|
||||||
|
right: -10px;
|
||||||
|
bottom: -10px;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1153,18 +1180,111 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.btn {
|
.btn {
|
||||||
|
position: relative;
|
||||||
padding: 16upx 20upx;
|
padding: 16upx 20upx;
|
||||||
background-color: $color-priamry;
|
background-color: $color-priamry;
|
||||||
border-radius: 12upx;
|
border-radius: 12upx;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
left: -10px;
|
||||||
|
top: -10px;
|
||||||
|
right: -10px;
|
||||||
|
bottom: -10px;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.classorderdetailshow {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.orderdetailuicon {
|
||||||
|
position: absolute;
|
||||||
|
top: 10rpx;
|
||||||
|
left: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.payType {
|
||||||
|
padding: 32rpx 34rpx;
|
||||||
|
margin-top: 48rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
|
||||||
|
>view:first-child {
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
>view:last-child {
|
||||||
|
margin-top: 32rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dfs {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.fixedview {
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
.flex-between {
|
||||||
|
width: 100%;
|
||||||
|
padding: 24rpx 28rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
|
||||||
|
.fixedview_one {
|
||||||
|
.fixedview_oneone {
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-family: SourceHanSansCN-Bold-, SourceHanSansCN-Bold;
|
||||||
|
font-weight: normal;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fixedview_onetow {
|
||||||
|
font-size: 44rpx;
|
||||||
|
font-family: SourceHanSansCN-Bold-, SourceHanSansCN-Bold;
|
||||||
|
font-weight: normal;
|
||||||
|
color: #F45C4C;
|
||||||
|
font-weight: bold;
|
||||||
|
|
||||||
|
text {
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.fixedview_onethere {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.fixedview_tow {
|
||||||
|
background: red;
|
||||||
|
border-radius: 34rpx;
|
||||||
|
padding: 10rpx 44rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-family: PingFang SC-Bold, PingFang SC;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.shop-info-wrap {
|
.shop-info-wrap {
|
||||||
.info-wrap {
|
.info-wrap {
|
||||||
padding: $paddingSize * 2 0;
|
padding: $paddingSize * 2 0;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<view class="code-wrap">
|
<view class="code-wrap">
|
||||||
<view class="num-wrap">
|
<view class="num-wrap">
|
||||||
<text class="t">账户余额:</text>
|
<text class="t">账户余额:</text>
|
||||||
<text class="num">{{shopInfo.amount}}</text>
|
<text class="num">{{shopInfo.amount || '--'}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="line-code">
|
<view class="line-code">
|
||||||
<tki-barcode ref="tkiBarcode" show :opations="tkiOptions"></tki-barcode>
|
<tki-barcode ref="tkiBarcode" show :opations="tkiOptions"></tki-barcode>
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
<uqrcode ref="uqrcode" canvas-id="qrcode" :value="createcardNo"></uqrcode>
|
<uqrcode ref="uqrcode" canvas-id="qrcode" :value="createcardNo"></uqrcode>
|
||||||
</view>
|
</view>
|
||||||
<view class="name">
|
<view class="name">
|
||||||
<text>使用门店:{{shopInfo.shopName}}</text>
|
<text>使用门店:{{shopInfo.shopName || '--'}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="line"></view>
|
<view class="line"></view>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
@@ -10,7 +10,8 @@
|
|||||||
</button> -->
|
</button> -->
|
||||||
<!-- <image class="onecontentboximage" :src="userHeadImg" mode="" @click="uploadImg"></image> -->
|
<!-- <image class="onecontentboximage" :src="userHeadImg" mode="" @click="uploadImg"></image> -->
|
||||||
<button type="default" class="btn" open-type="chooseAvatar" @chooseavatar="uploadImg">
|
<button type="default" class="btn" open-type="chooseAvatar" @chooseavatar="uploadImg">
|
||||||
<view class="" :style="'background-image:url('+userHeadImg+');'" style="width: 180rxp;height: 180rpx; background-position: center;"></view>
|
<view class="" :style="'background-image:url('+userHeadImg+');'"
|
||||||
|
style="width: 180rxp;height: 180rpx; background-position: center;"></view>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
|
|
||||||
@@ -18,7 +19,9 @@
|
|||||||
<view class="onecontentboxitemtext">
|
<view class="onecontentboxitemtext">
|
||||||
昵称
|
昵称
|
||||||
</view>
|
</view>
|
||||||
<input class="onecontentboxiteminput" v-model="userName" type="nickname" placeholder="请输入昵称">
|
<input class="onecontentboxiteminput" v-model="nickName" type="nickname"
|
||||||
|
@blur="bindblur" placeholder="请输入昵称" @input="bindinput" />
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
<view class="onecontentboxitem flex-between" style="border-top: 1rpx dotted #333333;">
|
<view class="onecontentboxitem flex-between" style="border-top: 1rpx dotted #333333;">
|
||||||
<view class="onecontentboxitemtext">
|
<view class="onecontentboxitemtext">
|
||||||
@@ -42,11 +45,7 @@
|
|||||||
components: {
|
components: {
|
||||||
navseat
|
navseat
|
||||||
},
|
},
|
||||||
onLoad() {
|
|
||||||
this.userInfo = uni.cache.get('userInfo')
|
|
||||||
this.userName = this.userInfo.nickName
|
|
||||||
this.userHeadImg = this.userInfo.headImg
|
|
||||||
},
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
titlename: '完善信息',
|
titlename: '完善信息',
|
||||||
@@ -62,9 +61,14 @@
|
|||||||
},
|
},
|
||||||
userInfo: uni.cache.get('userInfo'),
|
userInfo: uni.cache.get('userInfo'),
|
||||||
userHeadImg: "",
|
userHeadImg: "",
|
||||||
userName: ''
|
nickName: ''
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.userInfo = uni.cache.get('userInfo')
|
||||||
|
this.nickName = this.userInfo.nickName
|
||||||
|
this.userHeadImg = this.userInfo.headImg
|
||||||
|
},
|
||||||
onPageScroll(e) {
|
onPageScroll(e) {
|
||||||
if (e.scrollTop <= 44) { //搜索导航栏
|
if (e.scrollTop <= 44) { //搜索导航栏
|
||||||
this.opacitys = false
|
this.opacitys = false
|
||||||
@@ -73,6 +77,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
bindblur(e) {
|
||||||
|
console.log(e,11)
|
||||||
|
this.nickName = e.detail.value; // 获取微信昵称
|
||||||
|
},
|
||||||
|
bindinput(e) {
|
||||||
|
console.log(e,22)
|
||||||
|
this.nickName = e.detail.value; // 获取微信昵称
|
||||||
|
},
|
||||||
// uploadImg() {
|
// uploadImg() {
|
||||||
// let _this = this
|
// let _this = this
|
||||||
// uni.chooseImage({
|
// uni.chooseImage({
|
||||||
@@ -136,7 +148,7 @@
|
|||||||
async sumbit() {
|
async sumbit() {
|
||||||
let res = await this.api.upUserInfo({
|
let res = await this.api.upUserInfo({
|
||||||
headImg: this.userHeadImg,
|
headImg: this.userHeadImg,
|
||||||
nickName: this.userName
|
nickName: this.nickName
|
||||||
})
|
})
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
uni.navigateBack()
|
uni.navigateBack()
|
||||||
@@ -217,11 +229,13 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn {
|
.btn {
|
||||||
width: 180rpx;
|
width: 180rpx;
|
||||||
height: 180rpx;
|
height: 180rpx;
|
||||||
border-radius: 100%;
|
border-radius: 100%;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
|
||||||
>view {
|
>view {
|
||||||
border-radius: 100%;
|
border-radius: 100%;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<!-- #endif -->
|
<!-- #endif -->
|
||||||
<view class="boxtop_top flex-between">
|
<view class="boxtop_top flex-between">
|
||||||
<view class="boxtop_topleft">
|
<view class="boxtop_topleft">
|
||||||
<view class="flex-start" v-if="userInfo.nickName" @click="clickinformation">
|
<view class="flex-start" v-if="userInfo" @click="clickinformation">
|
||||||
<image style="width: 108rpx; height: 108rpx; border-radius: 50%;" v-if="userInfo.headImg"
|
<image style="width: 108rpx; height: 108rpx; border-radius: 50%;" v-if="userInfo.headImg"
|
||||||
:src="userInfo.headImg" mode="aspectFill">
|
:src="userInfo.headImg" mode="aspectFill">
|
||||||
</image>
|
</image>
|
||||||
|
|||||||
Reference in New Issue
Block a user