main
fanfan 3 months ago
parent b946030543
commit 478bb3126f
  1. 3
      src/components/Table/UserItem/UserItem.vue
  2. 150
      src/views/order/Index.vue

@ -14,8 +14,7 @@
<div class="in-right flex flex-dir-column flex-x-center">
<p class="user-name oneline-hide"> {{ user.nick_name }}</p>
<p class="user-name oneline-hide">手机号{{ user.mobile }}</p>
<!-- <p class="user-name oneline-hide">归属地{{ JSON.parse(user.homelocation).prov }} {{ JSON.parse(user.homelocation).city }}</p> -->
<p class="user-name oneline-hide">归属地{{ JSON.parse(user.homelocation).prov }} {{ JSON.parse(user.homelocation).city }}</p>
<p class="user-platform">
<platform-icon :name="user.platform" :showTips="true" />
</p>

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

Loading…
Cancel
Save