feat(glt): 添加订单编号和状态字段支持

- 在 GltTicketOrder 模型中新增 orderNo 和 orderStatus 字段
- 在 GltUserTicket 模型中新增 orderStatus 字段
- 在订单编辑页面添加订单编号输入框并调整表单初始化逻辑
- 移除图片上传相关功能代码
- 在订单列表页面添加订单编号显示和订单状态标签展示
- 实现订单状态的标签渲染和颜色区分
- 调整表格列配置,替换原有的状态列为订单状态列
- 在删除确认按钮上添加订单状态条件判断
- 启用表格行双击事件以支持快速编辑功能
This commit is contained in:
2026-03-01 21:11:36 +08:00
parent d1b7943e5d
commit 8fdb06162a
5 changed files with 116 additions and 66 deletions

View File

@@ -66,6 +66,9 @@ export interface GltTicketOrder {
receiveConfirmType?: number;
// 修改时间
updateTime?: string;
// 订单编号
orderNo?: string;
orderStatus?: number;
}
/**

View File

@@ -14,6 +14,8 @@ export interface GltUserTicket {
orderId?: number;
// 订单编号
orderNo?: string;
// 订单状态
orderStatus?: number;
// 订单商品ID
orderGoodsId?: number;
// 总数量

View File

@@ -89,6 +89,13 @@
v-model:value="form.userId"
/>
</a-form-item>
<a-form-item label="订单编号" name="orderNo">
<a-input
allow-clear
placeholder="请输入订单编号"
v-model:value="form.orderNo"
/>
</a-form-item>
<a-form-item label="备注" name="comments">
<a-textarea
:rows="4"
@@ -159,16 +166,13 @@
price: undefined,
totalNum: undefined,
userId: undefined,
sortNumber: undefined,
comments: undefined,
status: undefined,
deleted: undefined,
tenantId: undefined,
createTime: undefined,
updateTime: undefined,
gltTicketOrderId: undefined,
gltTicketOrderName: '',
status: 0,
orderNo: undefined,
orderCode: undefined,
comments: '',
sortNumber: 100
});
@@ -190,20 +194,6 @@
]
});
const chooseImage = (data: FileRecord) => {
images.value.push({
uid: data.id,
url: data.path,
status: 'done'
});
form.image = data.path;
};
const onDeleteItem = (index: number) => {
images.value.splice(index, 1);
form.image = '';
};
const { resetFields } = useForm(form, rules);
/* 保存编辑 */
@@ -216,7 +206,8 @@
.then(() => {
loading.value = true;
const formData = {
...form
...form,
orderCode: form.orderNo
};
const saveOrUpdate = isUpdate.value ? updateGltTicketOrder : addGltTicketOrder;
saveOrUpdate(formData)

View File

@@ -6,6 +6,7 @@
row-key="id"
:columns="columns"
:datasource="datasource"
:customRow="customRow"
tool-class="ele-toolbar-form"
class="sys-org-table"
>
@@ -24,6 +25,7 @@
<a-avatar :src="record.avatar" />
<div class="flex flex-col">
<div class="font-bold">{{ record.nickname }}</div>
<div class="text-gray-400">订单编号{{ record.orderNo }}</div>
<div class="text-gray-400">送货地址{{ record.address }}</div>
<div class="text-blue-400">联系电话{{ record.phone }}</div>
<div class="text-gray-400">买家留言{{ record.buyerRemarks }}</div>
@@ -67,6 +69,31 @@
{{ getOrderStatus(record).label }}
</a-tag>
</template>
<template v-if="column.key === 'orderStatus'">
<a-space :size="6" wrap>
<!-- 订单状态 -->
<a-tag v-if="record.orderStatus === 0">未完成</a-tag>
<a-tag v-if="record.orderStatus === 1" color="green"
>已完成</a-tag
>
<a-tag v-if="record.orderStatus === 2">已关闭</a-tag>
<a-tag v-if="record.orderStatus === 3" color="red"
>关闭中</a-tag
>
<a-tag v-if="record.orderStatus === 4" color="red"
>退款申请中</a-tag
>
<a-tag v-if="record.orderStatus === 5" color="red"
>退款被拒绝</a-tag
>
<a-tag v-if="record.orderStatus === 6" color="orange"
>已退款</a-tag
>
<a-tag v-if="record.orderStatus === 7" color="pink"
>客户端申请退款</a-tag
>
</a-space>
</template>
<template v-if="column.key === 'totalNum'">
<div class="text-gray-800 text-3xl">{{ record.totalNum }}</div>
</template>
@@ -90,9 +117,10 @@
</template>
<template v-if="column.key === 'action'">
<a-space>
<a @click="openEdit(record)">修改</a>
<a-divider type="vertical" />
<!-- <a @click="openEdit(record)">修改</a>-->
<!-- <a-divider type="vertical" />-->
<a-popconfirm
v-if="record.orderStatus == 6"
title="确定要删除此记录吗?"
@confirm="remove(record)"
>
@@ -406,21 +434,21 @@
width: 260,
align: 'center'
},
// {
// title: '状态',
// dataIndex: 'status',
// key: 'status',
// align: 'center',
// width: 120
// }
// {
// title: '操作',
// key: 'action',
// width: 180,
// fixed: 'right',
// align: 'center',
// hideInSetting: true
// }
{
title: '订单状态',
dataIndex: 'orderStatus',
key: 'orderStatus',
align: 'center',
width: 120
},
{
title: '操作',
key: 'action',
width: 90,
fixed: 'right',
align: 'center',
hideInSetting: true
}
]);
/* 搜索 */
@@ -488,18 +516,18 @@
};
/* 自定义行属性 */
// const customRow = (record: GltTicketOrder) => {
// return {
// // 行点击事件
// onClick: () => {
// // console.log(record);
// },
// // 行双击事件
// onDblclick: () => {
// openEdit(record);
// }
// };
// };
const customRow = (record: GltTicketOrder) => {
return {
// 行点击事件
onClick: () => {
// console.log(record);
},
// 行双击事件
onDblclick: () => {
// openEdit(record);
}
};
};
query();
</script>

View File

@@ -41,11 +41,37 @@
<a-tag v-if="record.status === 0" color="green">显示</a-tag>
<a-tag v-if="record.status === 1" color="red">隐藏</a-tag>
</template>
<template v-if="column.key === 'orderStatus'">
<a-space :size="6" wrap>
<!-- 订单状态 -->
<a-tag v-if="record.orderStatus === 0">未完成</a-tag>
<a-tag v-if="record.orderStatus === 1" color="green"
>已完成</a-tag
>
<a-tag v-if="record.orderStatus === 2">已关闭</a-tag>
<a-tag v-if="record.orderStatus === 3" color="red"
>关闭中</a-tag
>
<a-tag v-if="record.orderStatus === 4" color="red"
>退款申请中</a-tag
>
<a-tag v-if="record.orderStatus === 5" color="red"
>退款被拒绝</a-tag
>
<a-tag v-if="record.orderStatus === 6" color="orange"
>已退款</a-tag
>
<a-tag v-if="record.orderStatus === 7" color="pink"
>客户端申请退款</a-tag
>
</a-space>
</template>
<template v-if="column.key === 'action'">
<a-space>
<a @click="openEdit(record)">修改</a>
<a-divider type="vertical" />
<!-- <a @click="openEdit(record)">修改</a>-->
<!-- <a-divider type="vertical" />-->
<a-popconfirm
v-if="record.orderStatus == 6"
title="确定要删除此记录吗?"
@confirm="remove(record)"
>
@@ -185,12 +211,12 @@
// dataIndex: 'sortNumber',
// key: 'sortNumber',
// },
// {
// title: '状态',
// dataIndex: 'status',
// key: 'status',
// align: 'center'
// },
{
title: '订单状态',
dataIndex: 'orderStatus',
key: 'orderStatus',
align: 'center'
},
{
title: '创建时间',
dataIndex: 'createTime',
@@ -201,14 +227,14 @@
ellipsis: true,
customRender: ({ text }) => toDateString(text, 'yyyy-MM-dd HH:mm:ss')
},
// {
// title: '操作',
// key: 'action',
// width: 180,
// fixed: 'right',
// align: 'center',
// hideInSetting: true
// }
{
title: '操作',
key: 'action',
width: 90,
fixed: 'right',
align: 'center',
hideInSetting: true
}
]);
/* 搜索 */