food/src/components/QuestTabs.vue

212 lines
8.8 KiB
Vue
Raw Normal View History

2023-09-20 21:33:11 +08:00
<template>
<div class="p-15">
<el-collapse v-model="activeNames" accordion>
<template v-if="list.length != 0">
<el-collapse-item class="mainFontColor" v-for="(item, index) in list" :key="index" :name="item.id">
<template slot="title">
<div class="clearB w-100" :class="activeNames === item.id ? 'fc-b fb' : ''">
<div class="l w-30">
订单ID{{ item.id }}
</div>
<div v-if="item.refund_status !== '申请中'" class="r w-70 fr p-r-15">
下单时间{{ parseTime(item.order_time) }}
</div>
<div v-else class="r w-70 fr p-r-15">
申请时间{{ parseTime(item.refundapply_time) }}
</div>
</div>
</template>
<el-descriptions direction=" vertical" :column="3" border>
<el-descriptions-item label="状态">{{ item.shipment_status }}
2023-09-20 21:33:11 +08:00
</el-descriptions-item>
<el-descriptions-item label="订单号">{{ item.order_sn }}</el-descriptions-item>
<el-descriptions-item label="取餐号">{{ item.food_sn }}</el-descriptions-item>
<el-descriptions-item label="收货人">{{ item.receiver }}</el-descriptions-item>
2023-09-20 21:33:11 +08:00
<el-descriptions-item label="手机号">{{ item.tel }}</el-descriptions-item>
<el-descriptions-item label="收货站点">{{ item.receive_site_name }}</el-descriptions-item>
<el-descriptions-item label="总重量">{{ item.total_weight }}</el-descriptions-item>
<el-descriptions-item label="总价">{{ item.total_price }}</el-descriptions-item>
<el-descriptions-item label="货品总数">{{ item.total_num }}</el-descriptions-item>
2023-09-20 21:33:11 +08:00
<el-descriptions-item label="订单详情" span="3">
<el-table v-for="spu, i in item.product_snapshot" :show-header="i === 0" :data="spu.sku_arr"
style="width: 100%">
<el-table-column prop="sku_name" :label="spu.spu_name">
2023-09-20 21:33:11 +08:00
</el-table-column>
<el-table-column label="编号">
<template slot-scope="scope">
{{ scope.row.sku_number }}
</template>
2023-09-20 21:33:11 +08:00
</el-table-column>
<el-table-column label="数量">
<template slot-scope="scope">
{{ scope.row.sku_totol }}{{ scope.row.sku_unit }}
</template>
2023-09-20 21:33:11 +08:00
</el-table-column>
<el-table-column label="详情" width="120">
<el-button type="primary" size="small">查看</el-button>
2023-09-20 21:33:11 +08:00
</el-table-column>
</el-table>
</el-descriptions-item>
<el-descriptions-item :label="item.refund_status == '未申请' ? '客户备注' : '退货缘由'" span="3">
{{ item.refund_status == '未申请' ? (item.refund_remark || '无') : (item.remark || '无') }}
2023-09-20 21:33:11 +08:00
</el-descriptions-item>
<el-descriptions-item label="操作" span="3">
<el-button-group v-if="item.refund_status == '申请中'">
2023-09-20 21:33:11 +08:00
<el-button type="danger" icon="iconfont icon-zhengque">
<font class="m-l-5">同意退款</font>
</el-button>
<el-button @click="questAss(item.id, 'refund_status', '拒绝退')" type="warning" icon="iconfont icon-cuowu">
2023-09-20 21:33:11 +08:00
<font class="m-l-5">拒绝退款</font>
</el-button>
</el-button-group>
<el-button-group v-else-if="item.refund_status !== '申请中' && item.shipment_status == '未接单'">
<el-button @click="questAss(item.id, 'shipment_status', '已接单')" type="primary"
icon="iconfont icon-chengjie">
<font class="m-l-5">确认接单</font>
2023-09-20 21:33:11 +08:00
</el-button>
<el-button type="danger" icon="iconfont icon-cuowu">
<font class="m-l-5">取消订单</font>
</el-button>
<el-button type="info" icon="iconfont icon-dayin">
<font class="m-l-5" @click="orderPrint(index)">打印小票</font>
</el-button>
</el-button-group>
<el-button-group v-else-if="item.refund_status !== '申请中' && item.shipment_status == '已接单'">
2023-09-20 21:33:11 +08:00
<el-button type="danger" icon="iconfont icon-cuowu">
<font class="m-l-5">取消订单</font>
</el-button>
<el-button type="info" icon="iconfont icon-dayin">
<font class="m-l-5" @click="orderPrint(index)">打印小票</font>
</el-button>
</el-button-group>
<el-button-group v-else-if="item.refund_status !== '申请中' && item.shipment_status == '已发货'">
<el-button type="primary" icon="iconfont icon-chengjie">
<font class="m-l-5">已送达</font>
</el-button>
<el-button type="danger" icon="iconfont icon-cuowu">
<font class="m-l-5">未送达</font>
</el-button>
</el-button-group>
2023-09-20 21:33:11 +08:00
</el-descriptions-item>
</el-descriptions>
</el-collapse-item>
</template>
<div v-else class="p-t-60 p-b-60 seatFontColor fc">
<i class="iconfont icon-meiyoushuju f-s-100"></i>
<div>空空如也</div>
</div>
</el-collapse>
</div>
</template>
<script>
import { parseTime } from '@/utils/index'
import { questAss } from '@/utils/api/table'
2023-09-20 21:33:11 +08:00
export default {
data () {
return {
activeNames: []
}
},
props: {
list: Array
},
2023-09-20 21:33:11 +08:00
computed: {
},
methods: {
questAss, // 修改订单
2023-09-20 21:33:11 +08:00
parseTime, // 时间戳格式化
/**
* @description: 通过蓝牙打印机并打印小票
* @param {number} index 订单列表下标索引
*/
2023-09-20 21:33:11 +08:00
orderPrint (index) {
// 订单文本编辑
// console.log(this.list[index])
// let con
// con = '无人机外卖送餐#' + this.list[index].food_sn + '\n\n'
// this.btPrint(con, '10', '1')
// con = ''
// con += '------------客户信息------------\n'
// con += '昵称:' + this.list[index].name + '\n'
// const tel = this.list[index].tel.substr(0, 3) + '****' + this.list[index].tel.substr(7)
// con += '电话:' + tel + '\n\n'
// con += '------------订单信息------------\n'
// this.btPrint(con, '0', '0')
// con = ''
// con += '取餐号:' + this.list[index].food_sn + '\n'
// this.btPrint(con, '31', '0')
// con = ''
// con += '单号:' + this.list[index].order_sn + '\n'
// con += '收货站点:' + this.list[index].receive_site_name + '\n'
// con += '下单时间:' + this.parseTime(this.list[index].addtime) + '\n\n'
// if (this.list[index].remark !== '') {
// con += '------------客户备注------------\n'
// con += this.list[index].remark + '\n\n'
// }
// con += '--------------商品--------------\n'
// this.list[index].products.forEach(element => {
// con += 'ID' + element.pid + '\n'
// con += '品名:' + element.name + '\n'
// if (element.pro_buff !== '') {
// con += '规格: ' + element.pro_buff + '\n'
// }
// con += '数量:' + element.num + '\n'
// con += '单价:' + element.price + '\n'
// con += '················\n'
// })
// con += '货品总数:' + this.list[index].product_num + '\n'
// con += '货品总额:' + this.list[index].price + '\n\n'
// con += '---------加盟无人机送餐---------\n'
// this.btPrint(con, '0', '0')
// con = ''
// var data = 'https://flicube.com'
// var align = 1
// var model = 49
// var size = 32
// var eclevel = 50
// BTPrinter.printQRCode(function (data) {
// console.log('Success')
// console.log(data)
// }, function (err) {
// console.log('Error')
// console.log(err)
// }, data, align, model, size, eclevel)
// con += '\n请扫上列二维码关注我们\n\n\n'
// this.btPrint(con, '0', '1')
},
/**
* @description: cordova 打印api接口
* @param {string} str 内容
* @param {string} size 字体大小预设
* @param {string} algin 对齐
*/
2023-09-20 21:33:11 +08:00
btPrint (str, size = '0', align = '0') {
// BTPrinter.printTitle(function (data) {
// console.log('Success')
// console.log(data)
// }, function (err) {
// console.log('Error')
// console.log(err)
// }, str, size, align)// string, size, align
}
},
watch: {
},
created () {
2023-09-20 21:33:11 +08:00
}
}
</script>
<style lang="scss" scoped>
.orterTit {
display: flex;
justify-content: space-between;
}
.demo {
background-color: darkgray !important;
}
</style>