Browse Source

del file

organize
刘嘉炜 3 years ago
parent
commit
2d77fe2ee8
  1. 12
      src/pages.json
  2. 284
      src/pages/write_off/confirm/confirm.vue
  3. 219
      src/pages/write_off/list/list.vue

12
src/pages.json

@ -176,18 +176,6 @@
}
},
{
"path": "pages/write_off/confirm/confirm",
"style": {
"navigationBarTitleText": "确认订单信息"
}
},
{
"path": "pages/write_off/list/list",
"style": {
"navigationBarTitleText": "扫码核销"
}
},
{
"path": "pages/write_off/search_result/search_result",
"style": {
"navigationBarTitleText": "核销查询"

284
src/pages/write_off/confirm/confirm.vue

@ -1,284 +0,0 @@
<template>
<view class="write-off-confirm">
<view class="woc-content">
<view class="wc-info">
<view class="wi-title">{{orderInfo.stadium_name || '-'}}</view>
<view class="wi-detail">
<view class="wd-line">
<view>订单编号</view>
<view>
<view>{{orderInfo.order_no || '-'}}</view>
</view>
</view>
<view class="wd-line">
<view>用户昵称</view>
<view>
<view>{{orderInfo.nickname || '-'}}</view>
</view>
</view>
<view class="wd-line">
<view>支付时间</view>
<view>
<view>{{orderInfo.pay_time || '-'}}</view>
</view>
</view>
<view class="wd-line">
<view>预定日期</view>
<view>
<view>{{ZH_order_date((orderInfo&&orderInfo.date) || '') || '-'}}</view>
</view>
</view>
<view class="wd-line">
<view>预定场次</view>
<view>
<view v-for="e in orderInfo.sessions" :key="e.id">{{e.venue_name + ' ' }} {{ ' '+e.duration}}</view>
</view>
</view>
</view>
</view>
<view class="wi-split-line"></view>
<view class="wi-btns">
<view hover-class="hover-active" @click="confirmVerify">确认核销</view>
<view class="white" hover-class="hover-active" @click="cancelVerify">不核销</view>
</view>
</view>
<view class="woc-fail-modal" v-if="orderInfo == null || orderInfo.pay_status !=1">
<image mode="aspectFit" src="/static/images/icon/write_off_fail.png"></image>
<view>{{errorTip}}</view>
<view hover-class="hover-active" @click="cancelVerify">返回</view>
</view>
</view>
</template>
<script>
import { API } from '../../../js/api'
import { servers } from '../../../js/server'
import util from '../../../utils/util'
export default {
computed: {
ZH_order_date(){
return date => {
if(!date)return '-'
let _date = date.replace(/\-/gi,'/');
return `${util.get_zh_date(_date)} ${util.get_zh_day(_date)}`;
}
},
errorTip(){
// 2使34退
// 使 使
// 退 退
//
//
let { orderInfo } = this;
if(orderInfo&&orderInfo.pay_status == 2)return '该订单已核销使用';
if(orderInfo&&orderInfo.pay_status == 3)return '该订单已失效';
if(orderInfo&&orderInfo.pay_status == 4)return '该订单已退款';
return '很抱歉,获取不到二维码订单信息';
},
},
data(){
return {
orderInfo: {},
}
},
onLoad(options){
console.log(options)
console.log(util.jsonPar(options.query))
this.getOrderInfo(util.jsonPar(options.query));
},
methods: {
confirmVerify: util.debounce(function(){
let { orderInfo } = this;
util.showLoad();
servers.get({
url: API.verifiedOrder,
data: {
brand_id: orderInfo.brand_id,
stadium_id: orderInfo.stadium_id,
verify_code: orderInfo.verify_code
},
isDefaultGet: false
})
.then(res=>{
util.hideLoad();
if(res.data.code == 0){
util.showNone(res.data.message || '操作成功!');
util.previousPageFunction({
fnName: 'getOrderList',
query: null,
})
setTimeout(_=>util.routeTo(),1200);
}else{
util.showNone(res.data.message || '操作失败!')
}
})
.catch(util.hideLoad)
},300,300),
cancelVerify(){
util.routeTo();
},
getOrderInfo({
brand_id = '',
stadium_id = '',
verify_code = '',
}){
util.showLoad();
servers.get({
url: API.verifiedOrderInfo,
data: {
brand_id,
stadium_id,
verify_code,
},
isDefaultGet: false
})
.then(res=>{
util.hideLoad();
if(res.data.code == 0)return this.orderInfo = res.data.data;
this.orderInfo = null
util.showNone(res.data.message || '加载失败!');
})
.catch(util.hideLoad)
}
}
}
</script>
<style lang="scss">
@import "../../../style/public.scss";
page{
background-color: $themeColor;
}
.write-off-confirm{
padding-top: 46upx;
}
.woc-content{
width: 702upx;
margin: 0 auto 46upx;
border-radius: 10upx;
background-color: #fff;
.wc-info{
padding: 20upx 40upx 66upx;
.wi-title{
height: 128upx;
line-height: 126upx;
text-align: center;
font-size: 32upx;
font-weight: 500;
color: #1a1a1a;
border-bottom: 2upx solid #D8D8D8;
}
.wi-detail{
padding-top: 34upx;
.wd-line{
display: flex;
view{
font-size: 28upx;
line-height: 60upx;
}
>view{
&:first-child{
flex-shrink: 0;
color: #9C9C9F;
}
&+view{
flex-grow: 1;
>view{
width: 100%;
color: #1A1A1A;
@include textHide(1);
}
}
}
}
}
}
.wi-split-line{
position: relative;
border-top: 2upx dashed #D8D8D8;
&::before{
content: '';
display: block;
position: absolute;
left: -10upx;
top: -11upx;
width: 20upx;
height: 20upx;
border-radius: 50%;
background-color: $themeColor;
}
&::after{
content: '';
display: block;
position: absolute;
right: -10upx;
top: -11upx;
width: 20upx;
height: 20upx;
border-radius: 50%;
background-color: $themeColor;
}
}
.wi-btns{
height: 450upx;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
>view{
height: 112upx;
width: 622upx;
line-height: 108upx;
text-align: center;
border-radius: 10upx;
border: 2upx solid $themeColor;
font-size: 32upx;
color: #fff;
background-color: $themeColor;
&:first-child{
margin-bottom: 24upx;
}
}
.white{
background-color: #fff;
color: $themeColor;
}
}
}
.woc-fail-modal{
position: fixed;
left: 0;
top: var(--window-top);
right: 0;
bottom: 0;
background-color: #fff;
padding-top: 90upx;
>image{
display: block;
margin: 0 auto 86upx;
width: 420upx;
height: 420upx;
&+view{
margin-bottom: 260upx;
text-align: center;
line-height: 40upx;
font-size: 28upx;
color: #9c9c9f;
}
}
view+view{
margin: 0 auto;
width: 280upx;
height: 92upx;
line-height: 88upx;
text-align: center;
border-radius: 46upx;
border: 2upx solid $themeColor;
font-size: 32upx;
color: $themeColor;
}
}
</style>

219
src/pages/write_off/list/list.vue

@ -1,219 +0,0 @@
<template>
<view class="write-off-list">
<view class="wol-btn" hover-class="hover-active" @click="scanCode">
<image mode="aspectFit" src="/static/images/icon/scan_code_btn.png"></image>
</view>
<view class="wol-bar">今日核销订单({{orderList.length || 0}})</view>
<view class="wol-list">
<view class="wl-item" v-for="e in orderList" :key="e.id">
<view class="wi-header">
<view>{{e.stadium_name || '-'}}</view>
<view>{{ZH_status(e.pay_type || '')}}</view>
</view>
<view class="wi-info">
<view class="wi-line">
<view>订单编号</view>
<view>
<view>{{e.order_no || '-'}}</view>
</view>
</view>
<view class="wi-line">
<view>用户昵称</view>
<view>
<view>{{e.nickname || '-'}} </view>
</view>
</view>
<view class="wi-line">
<view>支付时间</view>
<view>
<view>{{e.pay_time || '-'}}</view>
</view>
</view>
<view class="wi-line">
<view> 预定日期</view>
<view>
<view>{{ZH_order_date(e.date || '') || '-'}}</view>
</view>
</view>
<view class="wi-line">
<view>预定场次</view>
<view>
<view v-for="k in e.sessions" :key="k.id">{{k.venue_name+' '}}{{' '+k.duration}} </view>
</view>
</view>
</view>
<view class="wi-total">
<view>核销时间{{e.verify_time || '-'}}</view>
<view>{{e.sessions.length || 0}}场次</view>
</view>
</view>
</view>
</view>
</template>
<script>
import { API } from '../../../js/api';
import { servers } from '../../../js/server';
import util from '../../../utils/util'
export default {
computed: {
ZH_status(){
return status=> (['未支付','待使用','已使用','已失效','已退款'][status] || '-') // [-101使2使34退]
},
ZH_order_date(){
return date => {
if(!date)return '-'
let _date = date.replace(/\-/gi,'/');
return `${util.get_zh_date(_date)} ${util.get_zh_day(_date)}`;
}
},
},
data(){
return {
orderList: []
}
},
onLoad(){
this.getOrderList(true);
},
methods: {
scanCode(){
uni.scanCode({
success: res=>{
let { result } = res;
if(
res.scanType !== 'QR_CODE' ||
result.indexOf('brand_id') == -1 ||
result.indexOf('stadium_id') == -1 ||
result.indexOf('verify_code') == -1
){
return util.showNone('无法识别!');
}
util.routeTo(`/pages/write_off/confirm/confirm?query=${res.result}`,'nT');
},
fail: err=>{
if(err.errMsg&&err.errMsg.indexOf('cancel')!=-1)return;
console.log(err)
util.showNone('扫码失败!')
}
})
},
// confirm
getOrderList(isLoad){
if(isLoad)util.showLoad();
servers.get({
url: API.verifiedOrderList,
data: {
status: 1, // 使
},
failMsg: '获取订单列表失败!'
})
.then(res=>{
if(isLoad)util.hideLoad();
let _list = res.list || [];
this.orderList = _list;
})
.catch(util.hideLoad)
}
}
}
</script>
<style lang="scss" scoped>
@import "../../../style/public.scss";
.write-off-list{
padding-top: 24upx;
.wol-btn{
margin: 0 auto 24upx;
height: 360upx;
width: 702upx;
border-radius: 10upx;
background-color: #fff;
@include centerFlex(center);
>image{
width: 172upx;
height: 172upx;
}
}
.wol-bar{
margin: 0 auto 24upx;
height: 112upx;
width: 702upx;
border-radius: 10upx;
line-height: 112upx;
text-align: center;
font-size: 32upx;
font-weight: 500;
color: #1a1a1a;
background-color: #fff;
}
.wol-list{
padding: 0 24upx;
.wl-item{
margin-bottom: 24upx;
>view{
padding: 0 20upx;
background-color: #fff;
}
.wi-header{
height: 96upx;
border-bottom: 2upx solid #D8D8D8;
border-radius: 10upx 10upx 0 0;
@include centerFlex(space-between);
>view{
&:first-child{
flex-grow: 1;
line-height: 40upx;
font-size: 28upx;
color: #1a1a1a;
@include textHide(1);
}
&+view{
flex-shrink: 0;
margin-left: 20upx;
line-height: 40upx;
font-size: 28upx;
color: #9c9c9f;
}
}
}
.wi-info{
padding: 20upx;
border-bottom: 2upx solid #D8D8D8;
.wi-line{
display: flex;
view{
margin-bottom: 6upx;
line-height: 34upx;
font-size: 24upx;
color: #9c9c9f;
&:first-child{
flex-shrink: 0;
}
&+view{
flex-grow: 1;
>view{
@include textHide(1);
}
}
}
}
}
.wi-total{
height: 90upx;
border-radius: 0 0 10upx 10upx;
@include centerFlex(space-between);
>view{
font-size: 24upx;
color: #1a1a1a;
}
}
}
}
}
</style>
Loading…
Cancel
Save