第一次提交
This commit is contained in:
311
sub_pages/order/delivery/others.vue
Normal file
311
sub_pages/order/delivery/others.vue
Normal file
@@ -0,0 +1,311 @@
|
||||
<template>
|
||||
<view class="bg">
|
||||
<view class="qrcode-box">
|
||||
<block>
|
||||
<view class="title line-align">
|
||||
<view :class="qrcodeType == 0 ? 'active' : ''" @click="onChange(0)">取餐码</view>
|
||||
<view :class="qrcodeType == 1 ? 'active' : ''" @click="onChange(1)">邀请码</view>
|
||||
</view>
|
||||
<view class="qrcode">
|
||||
<image :src="qrcode"></image>
|
||||
</view>
|
||||
<text v-if="qrcodeType == 0" class="desc line-align">将此取餐码分享给微信好友,即可帮你取餐<br>(仅当日有效)</text>
|
||||
<text v-if="qrcodeType == 1" class="desc line-align">长按分享此码收集代取餐人员</text>
|
||||
</block>
|
||||
<block>
|
||||
<view class="title">共 {{ userRefereeList.length }} 人</view>
|
||||
<view class="user-list" v-if="qrcodeType == 1">
|
||||
<view class="item" v-for="(item,index) in userRefereeList" :key="index">
|
||||
<view class="info">
|
||||
<view class="nick-name">{{ item.nickname }}</view>
|
||||
<view class="time">{{ item.createTime }}</view>
|
||||
</view>
|
||||
<view class="action">
|
||||
<u-button shape="circle" type="error" size="mini" plain @click="onRemove(item.id)">移除</u-button>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom"></view>
|
||||
</view>
|
||||
<view class="user-list" v-if="qrcodeType == 0">
|
||||
<view class="title line-align" style="padding-top: 10rpx;">
|
||||
<button :type="tongjiType == 0 ? 'primary' : ''" size="mini" @click="onChange2(0)">按人员统计</button>
|
||||
<button :type="tongjiType == 1? 'primary' : ''" size="mini" @click="onChange2(1)">按菜品统计</button>
|
||||
<!-- <u-button size="medium" plain @click="onChange2(1)" class="custom-style" :class="tongjiType == 1 ? 'custom-active-style' : ''">按菜品统计</u-button> -->
|
||||
</view>
|
||||
<view class="item" v-for="(item,index) in userOrderList" :key="index">
|
||||
<view class="info">
|
||||
<view class="nick-name">{{ item.nickname }}</view>
|
||||
<!-- 按人员统计 -->
|
||||
<block v-if="tongjiType == 0">
|
||||
<span class="no-buy" v-if="item.order.length == 0">未报餐</span>
|
||||
<span class="order-ok" v-else-if="item.order[0].orderStatus == 30">已取餐</span>
|
||||
<span class="is-buy" v-else>已报餐</span>
|
||||
</block>
|
||||
<!-- 按菜品统计 -->
|
||||
<block v-if="tongjiType == 1 && item.order.length > 0">
|
||||
<block v-for="(goods,index) in item.order[0].goodsList">
|
||||
<span class="food">{{ index > 0 ? '、': '' }}</span>
|
||||
<span class="food" v-if="goods.deliveryStatus == 10">{{ goods.goodsName }}x{{ goods.totalNum }}</span>
|
||||
<span class="line-through" v-else>{{ goods.goodsName }}x{{ goods.totalNum }}</span>
|
||||
</block>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom"></view>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import store from '@/store/index.js'
|
||||
import storage from '@/utils/storage'
|
||||
import { ACCESS_TOKEN, USER_ID } from '@/store/mutation-types'
|
||||
import { pageAgentUser } from '@/api/apps-bc-agent.js'
|
||||
import { getSetting } from '@/api/setting.js'
|
||||
import { checkLogin } from '@/core/app.js'
|
||||
import * as UserRefereeApi from '@/api/user-referee.js'
|
||||
import * as OrderApi from '@/api/order.js'
|
||||
import * as UserApi from '@/api/user.js'
|
||||
import Empty from '@/components/empty'
|
||||
import { userId } from '@/config'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
// Search,
|
||||
Empty
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
options: null,
|
||||
title: '代他人取餐',
|
||||
// 正在加载中
|
||||
isLoading: false,
|
||||
// 是否授权了定位权限
|
||||
isAuthor: true,
|
||||
// 当前选择的门店ID
|
||||
selectedId: null,
|
||||
// 订单列表数据
|
||||
list: [],
|
||||
userRefereeList: [],
|
||||
userOrderList: [],
|
||||
qrcodeType: 0, // 0邀请码 1取餐码
|
||||
tongjiType: 0, // 统计类型 0按人员统计 1按菜品统计
|
||||
qrcode: ''
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
this.options = options
|
||||
this.listUserReferee()
|
||||
this.addUserByQrCode()
|
||||
this.getOthersOrder()
|
||||
this.getMyQrCode()
|
||||
},
|
||||
onShow() {
|
||||
this.getUserInfo()
|
||||
},
|
||||
methods: {
|
||||
navTo(merchantId) {
|
||||
const navTo = uni.$u.route()
|
||||
navTo('pages/merchant/detail', {
|
||||
merchantId
|
||||
})
|
||||
},
|
||||
getUserInfo(){
|
||||
if(!uni.setStorageSync('userId')){
|
||||
this.$error('请先登录',() => {
|
||||
this.$navTo('pages/login/index')
|
||||
})
|
||||
}
|
||||
},
|
||||
getMyQrCode(){
|
||||
const app = this
|
||||
const { qrcodeType } = this
|
||||
const userId = uni.getStorageSync('userId')
|
||||
|
||||
// 取餐码 二维码内容 dqc:代取餐人ID
|
||||
if(qrcodeType == 0){
|
||||
UserApi.getMyQrCode({
|
||||
codeContent: 'dqc:' + userId
|
||||
}).then(res => {
|
||||
app.qrcode = res.data
|
||||
})
|
||||
}
|
||||
// 邀请码 二维码内容 跳转到带有推荐人ID的网址完成绑定关系
|
||||
if(qrcodeType == 1){
|
||||
UserApi.getMyQrCode({
|
||||
codeContent: 'http://apps.gxwebsoft.com/baocan/#/pages/order/delivery/others?userId=' + userId,
|
||||
}).then(res => {
|
||||
app.qrcode = res.data
|
||||
})
|
||||
}
|
||||
},
|
||||
// 切换类型
|
||||
onChange(index){
|
||||
this.qrcodeType = index
|
||||
this.getMyQrCode()
|
||||
this.getOthersOrder()
|
||||
},
|
||||
// 切换类型
|
||||
onChange2(index){
|
||||
this.tongjiType = index
|
||||
this.getOthersOrder()
|
||||
},
|
||||
// 查询推荐关系列表
|
||||
listUserReferee(){
|
||||
const app = this
|
||||
const dealerId = uni.getStorageSync('userId')
|
||||
UserRefereeApi.listUserReferee({dealerId}).then(res => {
|
||||
app.userRefereeList = res.data
|
||||
})
|
||||
},
|
||||
// 查询代取餐人员的订单信息
|
||||
getOthersOrder(){
|
||||
OrderApi.getOthersOrder().then(resp => {
|
||||
console.log("resp: ",resp);
|
||||
this.userOrderList = resp.data
|
||||
})
|
||||
},
|
||||
addUserByQrCode(){
|
||||
const app = this
|
||||
const { userId } = app.options
|
||||
const dealerId = uni.getStorageSync('userId')
|
||||
if(userId && userId != Number(dealerId)){
|
||||
app.qrcodeType = 1
|
||||
UserRefereeApi.addUserReferee({
|
||||
dealerId,
|
||||
userId
|
||||
}).then(res => {
|
||||
app.$toast(res.message)
|
||||
app.listUserReferee()
|
||||
})
|
||||
}
|
||||
},
|
||||
onRemove(id){
|
||||
const app = this
|
||||
UserRefereeApi.removeUserReferee(id).then(()=>{
|
||||
app.$toast('移除成功')
|
||||
app.listUserReferee()
|
||||
})
|
||||
}
|
||||
|
||||
// onAgentBaocan(user){
|
||||
// console.log("user收拾收拾: ",user);
|
||||
// uni.setStorageSync('catererUser',user)
|
||||
// this.$navTo('pages/order/get-food/get-food')
|
||||
// },
|
||||
|
||||
// clearAgentBaocan(){
|
||||
// uni.removeStorageSync('catererUser')
|
||||
// this.$navTo('pages/order/get-food/get-food')
|
||||
// }
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
page{
|
||||
background-color: #67e7dd;
|
||||
}
|
||||
.bg {
|
||||
background-image: linear-gradient(#51b2aa, #67e7dd);
|
||||
height: calc(100vh - var(--window-top));
|
||||
padding: 70rpx 0;
|
||||
}
|
||||
.qrcode-box{
|
||||
width: 660rpx;
|
||||
margin: auto;
|
||||
background-color: #ffffff;
|
||||
border-radius: 20rpx;
|
||||
.title{
|
||||
padding: 12rpx 0;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
line-height: 80rpx;
|
||||
font-size: 34rpx;
|
||||
color: #999999;
|
||||
.active{
|
||||
color: #51b2aa;
|
||||
}
|
||||
}
|
||||
.line-align{
|
||||
width: 580rpx;
|
||||
margin: auto;
|
||||
border-bottom: 1rpx solid #eeeeee;
|
||||
}
|
||||
.qrcode{
|
||||
padding-bottom: 0rpx;
|
||||
margin: auto;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
image{
|
||||
width: 360rpx;
|
||||
height: 360rpx;
|
||||
}
|
||||
}
|
||||
.desc{
|
||||
color: blue;
|
||||
display: flex;
|
||||
text-align: center;
|
||||
justify-content: center;
|
||||
padding-bottom: 24rpx;
|
||||
}
|
||||
.user-list{
|
||||
width: 580rpx;
|
||||
margin: auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.item{
|
||||
border-bottom: 1rpx solid #eeeeee;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 10rpx 0;
|
||||
.info{
|
||||
.food{
|
||||
color: #ff0000;
|
||||
.goods-name{
|
||||
padding-right: 10rpx;
|
||||
}
|
||||
}
|
||||
.line-through{
|
||||
text-decoration: line-through;
|
||||
color: #666666;
|
||||
.goods-name{
|
||||
padding-right: 10rpx;
|
||||
}
|
||||
}
|
||||
.is-buy{
|
||||
color: #ff0000;
|
||||
}
|
||||
.no-buy{
|
||||
color: #0000ff;
|
||||
}
|
||||
.order-ok{
|
||||
color: #51b2aa;
|
||||
}
|
||||
}
|
||||
.time{
|
||||
color: #c2c2c2;
|
||||
}
|
||||
.remove{
|
||||
padding: 0 30rpx;
|
||||
}
|
||||
}
|
||||
.bottom{
|
||||
height: 50rpx;
|
||||
}
|
||||
.custom-style {
|
||||
margin: 10rpx 0;
|
||||
width: 220rpx;
|
||||
}
|
||||
.custom-active-style {
|
||||
margin: 10rpx 0;
|
||||
width: 220rpx;
|
||||
color: #ffffff;
|
||||
background-color: #51b2aa;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user