master
fanfan 5 months ago
parent 1b8c8abe27
commit f8a7844ece
  1. 150
      src/views/order/Index.vue

@ -85,8 +85,16 @@
<span class="mr-20">{{ item.create_time }}</span> <span class="mr-20">{{ item.create_time }}</span>
<span class="mr-20">订单号{{ item.order_no }}</span> <span class="mr-20">订单号{{ item.order_no }}</span>
<platform-icon :name="item.platform" :showTips="true" /> <platform-icon :name="item.platform" :showTips="true" />
<img v-if="item.merchant && Object.keys(item.merchant).length > 0" :src="item.merchant.logoImage[0].external_url" style="width: 60px;height: 60px;margin: 0 10px 0 20px;border-radius: 8px;"> <div v-if="item.merchant">
<span v-if="item.merchant && Object.keys(item.merchant).length > 0" class="mr-20">{{ item.merchant.shop_name }}</span> <img
v-if="item.merchant && Object.keys(item.merchant).length > 0"
:src="item.merchant.logoImage[0].external_url"
style="width: 60px; height: 60px; margin: 0 10px 0 20px; border-radius: 8px"
/>
<span v-if="item.merchant && Object.keys(item.merchant).length > 0" class="mr-20">{{
item.merchant.shop_name
}}</span>
</div>
</td> </td>
</tr> </tr>
<!-- <div :key="`order_${item.order_id}_1`">{{ item.copy_text }}</div> --> <!-- <div :key="`order_${item.order_id}_1`">{{ item.copy_text }}</div> -->
@ -99,7 +107,7 @@
title: goodsItm.goods_name, title: goodsItm.goods_name,
goodsProps: goodsItm.goods_props, goodsProps: goodsItm.goods_props,
isCheck: goodsItm.is_check, isCheck: goodsItm.is_check,
source:1 source: 1,
}" }"
/> />
</td> </td>
@ -161,46 +169,56 @@
v-if="$auth('/order/detail')" v-if="$auth('/order/detail')"
:to="{ path: '/order/detail', query: { orderId: item.order_id } }" :to="{ path: '/order/detail', query: { orderId: item.order_id } }"
target="_blank" target="_blank"
>详情</router-link >详情</router-link
> >
<a <a
v-action:deliver v-action:deliver
v-if=" v-if="
item.pay_status == PayStatusEnum.SUCCESS.value && item.pay_status == PayStatusEnum.SUCCESS.value &&
inArray(item.delivery_type, [ inArray(item.delivery_type, [
DeliveryTypeEnum.EXPRESS.value, DeliveryTypeEnum.EXPRESS.value,
DeliveryTypeEnum.NOTHING.value, DeliveryTypeEnum.NOTHING.value,
]) && ]) &&
item.delivery_status != DeliveryStatusEnum.DELIVERED.value && item.delivery_status != DeliveryStatusEnum.DELIVERED.value &&
!inArray(item.order_status, [ !inArray(item.order_status, [
OrderStatusEnum.CANCELLED.value, OrderStatusEnum.CANCELLED.value,
OrderStatusEnum.APPLY_CANCEL.value, OrderStatusEnum.APPLY_CANCEL.value,
]) && (storeVersion === 0 || (storeVersion === 1 && isSuper === 0)) ]) &&
(storeVersion === 0 || (storeVersion === 1 && isSuper === 0))
" "
@click="handleDelivery(item)" @click="handleDelivery(item)"
>发货</a >发货</a
> >
<a <a
v-action:extract v-action:extract
v-if=" v-if="
item.pay_status == PayStatusEnum.SUCCESS.value && item.pay_status == PayStatusEnum.SUCCESS.value &&
item.delivery_type == DeliveryTypeEnum.EXTRACT.value && item.delivery_type == DeliveryTypeEnum.EXTRACT.value &&
item.delivery_status != DeliveryStatusEnum.DELIVERED.value && item.delivery_status != DeliveryStatusEnum.DELIVERED.value &&
!inArray(item.order_status, [ !inArray(item.order_status, [
OrderStatusEnum.CANCELLED.value, OrderStatusEnum.CANCELLED.value,
OrderStatusEnum.APPLY_CANCEL.value, OrderStatusEnum.APPLY_CANCEL.value,
]) && (storeVersion === 0 || (storeVersion === 1 && isSuper === 0)) ]) &&
(storeVersion === 0 || (storeVersion === 1 && isSuper === 0))
" "
@click="handleExtract(item)" @click="handleExtract(item)"
>自提核销</a >自提核销</a
> >
<a <a
v-action:cancel v-action:cancel
v-if="item.order_status == OrderStatusEnum.APPLY_CANCEL.value && (storeVersion === 0 || (storeVersion === 1 && isSuper === 0))" v-if="
item.order_status == OrderStatusEnum.APPLY_CANCEL.value &&
(storeVersion === 0 || (storeVersion === 1 && isSuper === 0))
"
@click="handleCancel(item)" @click="handleCancel(item)"
>审核取消</a >审核取消</a
>
<a
v-if="storeVersion === 0 || (storeVersion === 1 && isSuper === 0)"
v-action:delete
@click="handleDelete(item)"
>删除</a
> >
<a v-if="storeVersion === 0 || (storeVersion === 1 && isSuper === 0)" v-action:delete @click="handleDelete(item)">删除</a>
<a @click="copyText(item.copy_text)">复制</a> <a @click="copyText(item.copy_text)">复制</a>
</div> </div>
</td> </td>
@ -252,7 +270,7 @@ import {
OrderSourceEnum, OrderSourceEnum,
OrderStatusEnum, OrderStatusEnum,
PayStatusEnum, PayStatusEnum,
ReceiptStatusEnum ReceiptStatusEnum,
} from '@/common/enum/order' } from '@/common/enum/order'
import { PaymentMethodEnum } from '@/common/enum/payment' import { PaymentMethodEnum } from '@/common/enum/payment'
import { DeliveryForm, ExtractForm, CancelForm } from './modules' import { DeliveryForm, ExtractForm, CancelForm } from './modules'
@ -263,45 +281,45 @@ const columns = [
title: '商品信息', title: '商品信息',
align: 'center', align: 'center',
dataIndex: 'goods', dataIndex: 'goods',
scopedSlots: { customRender: 'goods' } scopedSlots: { customRender: 'goods' },
}, },
{ {
title: '单价/数量', title: '单价/数量',
align: 'center', align: 'center',
scopedSlots: { customRender: 'unit_price' } scopedSlots: { customRender: 'unit_price' },
}, },
{ {
title: '实付款', title: '实付款',
align: 'center', align: 'center',
dataIndex: 'pay_price', dataIndex: 'pay_price',
scopedSlots: { customRender: 'pay_price' } scopedSlots: { customRender: 'pay_price' },
}, },
{ {
title: '买家', title: '买家',
dataIndex: 'user', dataIndex: 'user',
scopedSlots: { customRender: 'user' } scopedSlots: { customRender: 'user' },
}, },
{ {
title: '支付方式', title: '支付方式',
dataIndex: 'pay_method', dataIndex: 'pay_method',
scopedSlots: { customRender: 'pay_method' } scopedSlots: { customRender: 'pay_method' },
}, },
{ {
title: '配送方式', title: '配送方式',
dataIndex: 'delivery_type', dataIndex: 'delivery_type',
scopedSlots: { customRender: 'delivery_type' } scopedSlots: { customRender: 'delivery_type' },
}, },
{ {
title: '交易状态', title: '交易状态',
dataIndex: 'status', dataIndex: 'status',
scopedSlots: { customRender: 'status' } scopedSlots: { customRender: 'status' },
}, },
{ {
title: '操作', title: '操作',
dataIndex: 'action', dataIndex: 'action',
width: '180px', width: '180px',
scopedSlots: { customRender: 'action' } scopedSlots: { customRender: 'action' },
} },
] ]
// //
@ -310,7 +328,7 @@ const SearchTypeEnum = [
{ name: '会员昵称', value: 20 }, { name: '会员昵称', value: 20 },
{ name: '会员ID', value: 30 }, { name: '会员ID', value: 30 },
{ name: '收货人姓名', value: 40 }, { name: '收货人姓名', value: 40 },
{ name: '收货人电话', value: 50 } { name: '收货人电话', value: 50 },
] ]
export default { export default {
@ -321,9 +339,9 @@ export default {
UserItem, UserItem,
DeliveryForm, DeliveryForm,
ExtractForm, ExtractForm,
CancelForm CancelForm,
}, },
data () { data() {
return { return {
// //
dataType: this.getDataType(), dataType: this.getDataType(),
@ -344,10 +362,10 @@ export default {
pageSizeOptions: ['15', '30', '50', '100', '200', '300', '400', '500'], pageSizeOptions: ['15', '30', '50', '100', '200', '300', '400', '500'],
showTotal: (total) => `${total} 条记录`, // showTotal: (total) => `${total} 条记录`, //
// //
shopList: [] shopList: [],
} }
}, },
beforeCreate () { beforeCreate() {
// //
assignment(this, { assignment(this, {
inArray, inArray,
@ -359,7 +377,7 @@ export default {
ReceiptStatusEnum, ReceiptStatusEnum,
PaymentMethodEnum, PaymentMethodEnum,
SearchTypeEnum, SearchTypeEnum,
simpleImage: Empty.PRESENTED_IMAGE_SIMPLE simpleImage: Empty.PRESENTED_IMAGE_SIMPLE,
}) })
}, },
computed: { computed: {
@ -367,16 +385,18 @@ export default {
return window.localStorage.getItem('roles') ? JSON.parse(window.localStorage.getItem('roles')).isSuper : 0 return window.localStorage.getItem('roles') ? JSON.parse(window.localStorage.getItem('roles')).isSuper : 0
}, },
storeVersion() { storeVersion() {
return window.localStorage.getItem('storeInfo') ? JSON.parse(window.localStorage.getItem('storeInfo')).store_version : 0 return window.localStorage.getItem('storeInfo')
} ? JSON.parse(window.localStorage.getItem('storeInfo')).store_version
: 0
},
}, },
watch: { watch: {
// //
$route () { $route() {
this.init() this.init()
} },
}, },
created () { created() {
// //
this.init() this.init()
// //
@ -384,7 +404,7 @@ export default {
}, },
methods: { methods: {
// //
init () { init() {
this.dataType = this.getDataType() this.dataType = this.getDataType()
this.searchForm.resetFields() this.searchForm.resetFields()
this.queryParam = {} this.queryParam = {}
@ -392,16 +412,16 @@ export default {
}, },
// //
getShopList () { getShopList() {
ShopApi.all().then((result) => (this.shopList = result.data.list)) ShopApi.all().then((result) => (this.shopList = result.data.list))
}, },
// //
getDataType () { getDataType() {
return this.$route.path.split('/')[3].replace('-', '_') return this.$route.path.split('/')[3].replace('-', '_')
}, },
async copyText (text) { async copyText(text) {
try { try {
const textToCopy = text const textToCopy = text
await navigator.clipboard.writeText(textToCopy) await navigator.clipboard.writeText(textToCopy)
@ -411,7 +431,7 @@ export default {
} }
}, },
// //
getList () { getList() {
const { dataType, queryParam, page } = this const { dataType, queryParam, page } = this
this.isLoading = true this.isLoading = true
return Api.list({ dataType, ...queryParam, page, pageSize: this.pageSizes }) return Api.list({ dataType, ...queryParam, page, pageSize: this.pageSizes })
@ -422,13 +442,13 @@ export default {
}, },
// //
renderOrderStatusColor (orderStatus) { renderOrderStatusColor(orderStatus) {
const { OrderStatusEnum } = this const { OrderStatusEnum } = this
const ColorEnum = { const ColorEnum = {
[OrderStatusEnum.NORMAL.value]: '', [OrderStatusEnum.NORMAL.value]: '',
[OrderStatusEnum.CANCELLED.value]: 'red', [OrderStatusEnum.CANCELLED.value]: 'red',
[OrderStatusEnum.APPLY_CANCEL.value]: 'red', [OrderStatusEnum.APPLY_CANCEL.value]: 'red',
[OrderStatusEnum.COMPLETED.value]: 'green' [OrderStatusEnum.COMPLETED.value]: 'green',
} }
return ColorEnum[orderStatus] return ColorEnum[orderStatus]
}, },
@ -437,13 +457,13 @@ export default {
* 刷新列表 * 刷新列表
* @param Boolean bool 强制刷新到第一页 * @param Boolean bool 强制刷新到第一页
*/ */
handleRefresh (bool = false) { handleRefresh(bool = false) {
bool && (this.page = 1) bool && (this.page = 1)
this.getList() this.getList()
}, },
// //
handleSearch (e) { handleSearch(e) {
e.preventDefault() e.preventDefault()
this.searchForm.validateFields((error, values) => { this.searchForm.validateFields((error, values) => {
if (!error) { if (!error) {
@ -454,53 +474,53 @@ export default {
}, },
// //
handleReset () { handleReset() {
this.searchForm.resetFields() this.searchForm.resetFields()
}, },
// //
onChangePage (current, size) { onChangePage(current, size) {
this.page = current this.page = current
this.pageSizes = size this.pageSizes = size
this.handleRefresh() this.handleRefresh()
}, },
handleSizeChange (current, size) { handleSizeChange(current, size) {
this.page = current this.page = current
this.pageSizes = size this.pageSizes = size
this.handleRefresh() this.handleRefresh()
}, },
// //
handleDelete (item) { handleDelete(item) {
const app = this const app = this
const modal = app.$confirm({ const modal = app.$confirm({
title: '您确定要删除该订单记录吗?', title: '您确定要删除该订单记录吗?',
content: '删除后不可恢复,请谨慎操作', content: '删除后不可恢复,请谨慎操作',
onOk () { onOk() {
return EventApi.deleted(item.order_id) return EventApi.deleted(item.order_id)
.then((result) => { .then((result) => {
app.$message.success(result.message, 1.5) app.$message.success(result.message, 1.5)
app.handleRefresh() app.handleRefresh()
}) })
.finally((result) => modal.destroy()) .finally((result) => modal.destroy())
} },
}) })
}, },
// //
handleDelivery (record) { handleDelivery(record) {
this.$refs.DeliveryForm.show(record) this.$refs.DeliveryForm.show(record)
}, },
// //
handleExtract (record) { handleExtract(record) {
this.$refs.ExtractForm.show(record) this.$refs.ExtractForm.show(record)
}, },
// //
handleCancel (record) { handleCancel(record) {
this.$refs.CancelForm.show(record) this.$refs.CancelForm.show(record)
} },
} },
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>

Loading…
Cancel
Save