436 lines
24 KiB
PHP
436 lines
24 KiB
PHP
<div class="row pickup-order">
|
|
<div class="col-md-12">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<div class="card dcat-box">
|
|
<div class="box-header with-border" style="padding: .65rem 1rem">
|
|
<h3 class="box-title" style="line-height:30px;">扫码核销</h3>
|
|
</div>
|
|
<div class="box-body">
|
|
<div class="form-horizontal mt-1">
|
|
<div style="height: 400px;">
|
|
<div class="row" style="margin-bottom: 5px">
|
|
<div class="col-md-4">
|
|
<div class="show-field form-group row">
|
|
<div class="col-sm-2 control-label">
|
|
<span>取餐码</span>
|
|
</div>
|
|
<div class="col-sm-8">
|
|
<label style="width: 18rem">
|
|
<input type="text" class="form-control" v-model="order_number" ref="order_number" placeholder="搜索" >
|
|
</label>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<button type="button" class="btn btn-primary btn-sm" v-on:click="getOrder()" >搜索</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-1">
|
|
<div class="pull-left">
|
|
<div class="btn-group pull-right btn-mini" style="margin-right: 5px">
|
|
<button type="button" class="btn btn-danger btn-sm" v-on:click="pickupOrder()">核销</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<hr color="#6f5499" size="1" />
|
|
<template v-if="order_info.order_sn">
|
|
<div class="row" style="margin-bottom: 5px">
|
|
<div class="col-md-4">
|
|
<div class="show-field form-group row">
|
|
<div class="col-sm-2 control-label">
|
|
<span>订单编号</span>
|
|
</div>
|
|
<div class="col-sm-8">
|
|
<div class="box box-solid box-default no-margin box-show">
|
|
<div class="box-body">
|
|
@{{order_info.order_sn}}
|
|
|
|
<span v-if="order_info.is_niu" class="label" style="background:#ea5455">吹牛订单 </span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="show-field form-group row">
|
|
<div class="col-sm-2 control-label">
|
|
<span>手机号</span>
|
|
</div>
|
|
<div class="col-sm-8">
|
|
<div class="box box-solid box-default no-margin box-show">
|
|
<div class="box-body">
|
|
@{{order_info.order_phone}}
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="show-field form-group row">
|
|
<div class="col-sm-2 control-label">
|
|
<span>订单价格</span>
|
|
</div>
|
|
<div class="col-sm-8">
|
|
<div class="box box-solid box-default no-margin box-show">
|
|
<div class="box-body">
|
|
¥@{{order_info.admin_order_price}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row" style="margin-bottom: 5px">
|
|
<div class="col-md-4">
|
|
<div class="show-field form-group row">
|
|
<div class="col-sm-2 control-label">
|
|
<span>优惠券</span>
|
|
</div>
|
|
<div class="col-sm-8">
|
|
<div class="box box-solid box-default no-margin box-show">
|
|
<div class="box-body">
|
|
@{{order_info.admin_ticket_name}}
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="show-field form-group row">
|
|
<div class="col-sm-2 control-label">
|
|
<span>优惠金额</span>
|
|
</div>
|
|
<div class="col-sm-8">
|
|
<div class="box box-solid box-default no-margin box-show">
|
|
<div class="box-body">
|
|
@{{order_info.admin_ticket_value}}
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="show-field form-group row">
|
|
<div class="col-sm-2 control-label">
|
|
<span>支付价格</span>
|
|
</div>
|
|
<div class="col-sm-8">
|
|
<div class="box box-solid box-default no-margin box-show">
|
|
<div class="box-body">
|
|
¥@{{order_info.admin_pay_price}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row" style="margin-bottom: 5px">
|
|
<div class="col-md-4">
|
|
<div class="show-field form-group row">
|
|
<div class="col-sm-2 control-label">
|
|
<span>订单状态</span>
|
|
</div>
|
|
<div class="col-sm-8">
|
|
<div class="box box-solid box-default no-margin box-show">
|
|
<div class="box-body">
|
|
@{{order_info.order_status}}
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="show-field form-group row">
|
|
<div class="col-sm-2 control-label">
|
|
<span>支付状态</span>
|
|
</div>
|
|
<div class="col-sm-8">
|
|
<div class="box box-solid box-default no-margin box-show">
|
|
<div class="box-body">
|
|
@{{order_info.pay_status}}
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="show-field form-group row">
|
|
<div class="col-sm-2 control-label">
|
|
<span>取餐状态</span>
|
|
</div>
|
|
<div class="col-sm-8">
|
|
<div class="box box-solid box-default no-margin box-show">
|
|
<div class="box-body">
|
|
@{{order_info.shipping_status}}
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row" style="margin-bottom: 5px">
|
|
<div class="col-md-4">
|
|
<div class="show-field form-group row">
|
|
<div class="col-sm-2 control-label">
|
|
<span>下单时间</span>
|
|
</div>
|
|
|
|
<div class="col-sm-8">
|
|
<div class="box box-solid box-default no-margin box-show">
|
|
<div class="box-body">
|
|
@{{order_info.order_time}}
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="show-field form-group row">
|
|
<div class="col-sm-2 control-label">
|
|
<span>支付时间</span>
|
|
</div>
|
|
<div class="col-sm-8">
|
|
<div class="box box-solid box-default no-margin box-show">
|
|
<div class="box-body">
|
|
@{{order_info.pay_time}}
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="show-field form-group row">
|
|
<div class="col-sm-2 control-label">
|
|
<span>取餐时间</span>
|
|
</div>
|
|
<div class="col-sm-8">
|
|
<div class="box box-solid box-default no-margin box-show">
|
|
<div class="box-body">
|
|
@{{order_info.shipping_time}}
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</div>
|
|
<div class="clearfix"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<template v-if="goods.length">
|
|
<div class="col-md-12">
|
|
<div class="row show-relation-container">
|
|
<div class="col-md-12">
|
|
<div class="mt-1-5">
|
|
<div class="dcat-box">
|
|
<div class="d-block pb-0">
|
|
</div>
|
|
<div
|
|
class="table-responsive table-wrapper complex-container table-middle mt-1 table-collapse ">
|
|
<table class="table custom-data-table data-table" id="goods_grid-table">
|
|
<thead>
|
|
<tr>
|
|
<th>商品名称</th>
|
|
<th>第二杯半价</th>
|
|
<th>规格属性</th>
|
|
<th>商品数量</th>
|
|
<th>商品价格</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<template v-for="(item, index) in goods">
|
|
<tr>
|
|
<td>@{{item.goods_name}}</td>
|
|
<td>
|
|
<i v-if="item.is_too" class="feather icon-check font-md-2 font-w-600 text-primary"></i>
|
|
<i v-else class="feather icon-x font-md-1 font-w-600 text-70"></i>
|
|
</td>
|
|
<td>
|
|
<template v-for="(attr, attrindex) in item.goods_attr">
|
|
<span class="label" style="background:#586cb1">@{{attr.attr_name}} </span>
|
|
</template>
|
|
</td>
|
|
<td>X @{{item.goods_num}}</td>
|
|
<td>¥@{{item.goods_price}}</td>
|
|
</tr>
|
|
</template>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{!! admin_js(['/vendor/vue/vue.js']) !!}
|
|
<script init=".pickup-order">
|
|
// js代码也可以放在模板里面
|
|
console.log('所有JS脚本都加载完了!!!');
|
|
|
|
function copy(obj){
|
|
return Object.assign({}, obj);
|
|
}
|
|
function handleRes(res){
|
|
if(res.data.type == 'error'){
|
|
Dcat.error(res.data.message);
|
|
}else{
|
|
Dcat.success(res.data.message);
|
|
}
|
|
}
|
|
|
|
var vm = new Vue({
|
|
el: '#' + id,
|
|
data: {
|
|
get_order_path:"{{ admin_route('get_order.api') }}",
|
|
pickup_order_path:"{{ admin_route('order.topickup') }}",
|
|
order_number:'',
|
|
order_info:{
|
|
order_sn:'',
|
|
order_phone:'',
|
|
admin_order_price:'',
|
|
order_status:'',
|
|
pay_status:'',
|
|
shipping_status:'',
|
|
order_time:'',
|
|
pay_time:'',
|
|
shipping_time:'',
|
|
is_niu:0,
|
|
admin_ticket_name:'',
|
|
admin_ticket_value:'',
|
|
admin_pay_price:'0.00',
|
|
},
|
|
goods:[]
|
|
},
|
|
mounted () {
|
|
this.$refs.order_number.focus();
|
|
},
|
|
methods: {
|
|
pickupOrder(){
|
|
var _self = this;
|
|
// let _order_number = this.order_number;
|
|
let _order_number = _self.order_info.order_sn;
|
|
if(_order_number == ''){
|
|
Dcat.error('请先搜索查看并确认订单');
|
|
// Dcat.error('请输入取餐码');
|
|
}else{
|
|
Dcat.loading({color: Dcat.color.primary});
|
|
$.ajax({
|
|
type: 'get',
|
|
dataType: 'json',
|
|
async: false,
|
|
url: _self.pickup_order_path,
|
|
data: {
|
|
'order_number':_order_number,
|
|
},
|
|
success: function (result) {
|
|
if(result.data.type != 'error'){
|
|
_self.cleanData()
|
|
}
|
|
handleRes(result);
|
|
}
|
|
});
|
|
Dcat.loading(false);
|
|
}
|
|
},
|
|
getOrder(){
|
|
var _self = this;
|
|
let _order_number = _self.order_number;
|
|
if(_order_number == ''){
|
|
Dcat.error('请输入取餐码');
|
|
}else{
|
|
Dcat.loading({color: Dcat.color.primary});
|
|
$.ajax({
|
|
type: 'get',
|
|
dataType: 'json',
|
|
async: false,
|
|
url: _self.get_order_path,
|
|
data: {
|
|
'order_number':_order_number,
|
|
},
|
|
success: function (result) {
|
|
if(typeof(result.data.type) != 'undefined'){
|
|
handleRes(result);
|
|
}else{
|
|
let order = result.data
|
|
_self.createOrderInfo(order);
|
|
_self.createGoods(order.order_goods);
|
|
}
|
|
}
|
|
});
|
|
Dcat.loading(false);
|
|
}
|
|
},
|
|
createOrderInfo(order){
|
|
console.log(order);
|
|
this.order_info.is_niu = order.is_niu
|
|
this.order_info.order_sn = order.order_sn
|
|
this.order_info.order_phone = order.admin_order_phone
|
|
this.order_info.admin_order_price = order.admin_order_price
|
|
this.order_info.order_status = order.admin_order_status == 0?'未确认':(order.admin_order_status == 1?'已确认':'已取消')
|
|
this.order_info.pay_status = order.admin_pay_status == 0?'未支付':'已支付'
|
|
this.order_info.shipping_status = order.admin_shipping_status == 0?'未取餐':'已取餐'
|
|
this.order_info.order_time = order.admin_order_time
|
|
this.order_info.pay_time = order.admin_pay_time
|
|
this.order_info.shipping_time = order.admin_shipping_time
|
|
this.order_info.admin_ticket_name = order.admin_ticket_name
|
|
this.order_info.admin_ticket_value = order.admin_ticket_value
|
|
this.order_info.admin_pay_price = order.admin_pay_price
|
|
},
|
|
createGoods(goods){
|
|
this.goods = [];//清空之前的
|
|
for (let i = 0; i < goods.length; i++) {
|
|
this.addGoods()
|
|
this.goods[i].goods_name = goods[i].goods_name
|
|
this.goods[i].goods_price = goods[i].goods_price
|
|
this.goods[i].goods_num = goods[i].goods_num
|
|
this.goods[i].is_too = goods[i].is_too
|
|
this.createGoodsAttr(i, goods)
|
|
}
|
|
},
|
|
addGoods(){
|
|
this.goods.push({
|
|
goods_name: '',
|
|
goods_price: 0,
|
|
goods_num: 0,
|
|
goods_attr: [],
|
|
is_too:0
|
|
})
|
|
},
|
|
createGoodsAttr(index, goods){
|
|
let i = 0;
|
|
for (let key in goods[index].goods_attrs.info_name) {
|
|
this.addGoodsAttr(index)
|
|
this.goods[index].goods_attr[i].attr_name = goods[index].goods_attrs.info_name[key]
|
|
i++
|
|
}
|
|
},
|
|
addGoodsAttr(index){
|
|
this.goods[index].goods_attr.push({
|
|
attr_name:'',
|
|
})
|
|
},
|
|
cleanData(){
|
|
this.order_number =''
|
|
|
|
this.$refs.order_number.focus();//重新获取焦点
|
|
}
|
|
}
|
|
});
|
|
</script> |