From 59b3386ff4f4c345e0fd046c2e240cc2815463a8 Mon Sep 17 00:00:00 2001
From: aaron <>
Date: Wed, 26 Mar 2025 23:19:33 +0800
Subject: [PATCH] update
---
src/views/merchant/ProductList.vue | 269 ++++++++++++-----------------
1 file changed, 115 insertions(+), 154 deletions(-)
diff --git a/src/views/merchant/ProductList.vue b/src/views/merchant/ProductList.vue
index 9196cc7..98dfde1 100644
--- a/src/views/merchant/ProductList.vue
+++ b/src/views/merchant/ProductList.vue
@@ -49,16 +49,6 @@
¥{{ text }}
-
-
-
- {{ tag }}
-
-
@@ -151,7 +141,7 @@
-
+
消费金额的百分比,例如:10表示赠送10%作为积分
-
-
- 显示在商品下方的促销文本,限5个字以内
-
-
-
-
-
-
-
-
- 次
-
- 0 次表示不限购
-
-
-
+
消费金额的百分比,例如:10表示赠送10%作为积分
-
-
- 显示在商品下方的促销文本,限5个字以内
-
-
-
-
-
-
-
-
- 次
-
- 0 次表示不限购
-
-
商品详情这里是商品的详细描述,支持富文本格式。
',
purchase_note: ''
})
@@ -741,18 +669,14 @@ export default defineComponent({
product_price: null,
sale_price: null,
settlement_amount: null,
- purchase_limit: 0,
- tags: '',
gift_points_rate: 0,
- promotion_text: '',
qty: 0,
delivery_type: 'DELIVERY', // 默认配送到家
pickup_place: '',
pickup_time_from: '',
pickup_time_to: '',
- pickup_date: null, // 自提日期
+ delivery_date: null, // 自提日期
delivery_time_type: 'IMMEDIATE', // 默认及时达
- delivery_date: dayjs().format('YYYY-MM-DD'), // 默认当天
product_detail: '商品详情
这里是商品的详细描述,支持富文本格式。
',
purchase_note: ''
})
@@ -776,21 +700,21 @@ export default defineComponent({
title: '所属商家',
dataIndex: 'merchant_name',
key: 'merchant_name',
- width: '15%',
+ width: '12%',
ellipsis: true
},
{
title: '商品名称',
dataIndex: 'name',
key: 'name',
- width: '25%',
+ width: '15%',
ellipsis: true
},
{
title: '销售价格',
dataIndex: 'sale_price',
key: 'sale_price',
- width: '10%',
+ width: '8%',
align: 'right'
},
{
@@ -814,32 +738,57 @@ export default defineComponent({
}
},
{
- title: '限购',
- dataIndex: 'purchase_limit',
- key: 'purchase_limit',
- width: '10%',
+ title: '自提信息',
+ key: 'pickup_info',
+ dataIndex: 'delivery_time_type',
+ width: '15%',
align: 'center',
- customRender: ({ text }) => {
- return h(
- 'span',
- {
- class: `purchase-limit-tag ${text === 0 ? 'default' : 'highlight'}`
- },
- text === 0 ? '不限购' : `${text}次`
- )
+ customRender: ({ text, record }) => {
+ // 如果是及时达,显示"无需自提"
+ if (text === 'IMMEDIATE') {
+ return h('span', { style: { color: '#999' } }, '无需自提');
+ }
+
+ // 如果是定时达,显示自提日期和时间范围
+ let infoText = '';
+
+ // 添加自提日期
+ if (record.delivery_date) {
+ infoText += `日期: ${record.delivery_date}`;
+ }
+
+ // 添加自提时间范围
+ if (record.pickup_time_from && record.pickup_time_to) {
+ infoText += infoText ? '\n' : '';
+ infoText += `时间: ${record.pickup_time_from.substring(0, 5)}-${record.pickup_time_to.substring(0, 5)}`;
+ }
+
+ // 如果有自提点信息,添加自提点
+ if (record.pickup_place) {
+ infoText += infoText ? '\n' : '';
+ infoText += `地点: ${record.pickup_place}`;
+ }
+
+ return h('span', {
+ style: {
+ whiteSpace: 'pre-line',
+ lineHeight: '1.5',
+ fontSize: '12px'
+ }
+ }, infoText || '暂无自提信息');
}
},
{
title: '状态',
dataIndex: 'status',
key: 'status',
- width: '10%',
+ width: '8%',
align: 'center'
},
{
title: '操作',
key: 'action',
- width: '15%',
+ width: '12%',
align: 'center'
}
]
@@ -1071,6 +1020,13 @@ export default defineComponent({
markdownToHtml(record.product_detail) :
'商品详情
这里是商品的详细描述,支持富文本格式。
';
+ // 将时间字符串转换为dayjs对象
+ console.log('原始自提时间数据:', record.pickup_time_from, record.pickup_time_to, record.delivery_time_type);
+
+ // 重置时间选择器
+ editPickupTimeFrom.value = null;
+ editPickupTimeTo.value = null;
+
editFormState.value = {
operation_type: record.operation_type || 'MERCHANT',
name: record.name,
@@ -1078,24 +1034,38 @@ export default defineComponent({
product_price: record.product_price,
sale_price: record.sale_price,
settlement_amount: record.settlement_amount,
- purchase_limit: record.purchase_limit,
- tags: record.tags,
gift_points_rate: record.gift_points_rate,
- promotion_text: record.promotion_text,
qty: record.qty || 0,
delivery_time_type: record.delivery_time_type || 'IMMEDIATE',
- delivery_date: record.delivery_date || null,
+ delivery_date: record.delivery_date ? dayjs(record.delivery_date) : null,
product_detail: productDetailHtml,
- purchase_note: record.purchase_note || ''
+ purchase_note: record.purchase_note || '',
+ // 添加自提相关字段
+ pickup_place: record.pickup_place || '',
+ pickup_time_from: record.pickup_time_from || '',
+ pickup_time_to: record.pickup_time_to || ''
}
// 更新编辑器内容
editEditorContent.value = productDetailHtml;
editModalVisible.value = true
- // 确保在显示模态框后,编辑器能够正确渲染
+
+ // 确保在显示模态框后,使用 nextTick 设置时间选择器的值
nextTick(() => {
+ // 设置基本选项卡
editActiveTabKey.value = 'basic'
+
+ // 如果有时间数据,设置时间选择器的值
+ if (record.pickup_time_from) {
+ editPickupTimeFrom.value = dayjs(record.pickup_time_from, 'HH:mm:ss');
+ console.log('设置自提开始时间:', editPickupTimeFrom.value);
+ }
+
+ if (record.pickup_time_to) {
+ editPickupTimeTo.value = dayjs(record.pickup_time_to, 'HH:mm:ss');
+ console.log('设置自提结束时间:', editPickupTimeTo.value);
+ }
})
}
@@ -1190,7 +1160,7 @@ export default defineComponent({
// 更新自提开始时间
const updatePickupTimeFrom = () => {
if (pickupTimeFrom.value) {
- formState.value.pickup_time_from = dayjs(pickupTimeFrom.value).format('HH:mm');
+ formState.value.pickup_time_from = dayjs(pickupTimeFrom.value).format('HH:mm:ss');
} else {
formState.value.pickup_time_from = '';
}
@@ -1199,7 +1169,7 @@ export default defineComponent({
// 更新自提结束时间
const updatePickupTimeTo = () => {
if (pickupTimeTo.value) {
- formState.value.pickup_time_to = dayjs(pickupTimeTo.value).format('HH:mm');
+ formState.value.pickup_time_to = dayjs(pickupTimeTo.value).format('HH:mm:ss');
} else {
formState.value.pickup_time_to = '';
}
@@ -1208,7 +1178,7 @@ export default defineComponent({
// 更新编辑自提开始时间
const updateEditPickupTimeFrom = () => {
if (editPickupTimeFrom.value) {
- editFormState.value.pickup_time_from = dayjs(editPickupTimeFrom.value).format('HH:mm');
+ editFormState.value.pickup_time_from = dayjs(editPickupTimeFrom.value).format('HH:mm:ss');
} else {
editFormState.value.pickup_time_from = '';
}
@@ -1217,7 +1187,7 @@ export default defineComponent({
// 更新编辑自提结束时间
const updateEditPickupTimeTo = () => {
if (editPickupTimeTo.value) {
- editFormState.value.pickup_time_to = dayjs(editPickupTimeTo.value).format('HH:mm');
+ editFormState.value.pickup_time_to = dayjs(editPickupTimeTo.value).format('HH:mm:ss');
} else {
editFormState.value.pickup_time_to = '';
}
@@ -1272,7 +1242,7 @@ export default defineComponent({
return Promise.resolve();
}
}],
- pickup_date: [{
+ delivery_date: [{
required: true,
message: '请选择自提日期',
trigger: 'change',
@@ -1323,26 +1293,26 @@ export default defineComponent({
// 及时达只能配送到家,自动设置为当天配送
formData.delivery_type = 'DELIVERY'
formData.delivery_date = dayjs().format('YYYY-MM-DD')
- formData.pickup_place = ''
- formData.pickup_time_from = ''
- formData.pickup_time_to = ''
- formData.pickup_date = null
+
+ // 移除自提相关字段
+ delete formData.pickup_place
+ delete formData.pickup_time_from
+ delete formData.pickup_time_to
} else if (formData.delivery_time_type === 'SCHEDULED') {
// 定时达只能自提
formData.delivery_type = 'PICKUP'
- formData.delivery_date = null
// 格式化自提日期
- if (formData.pickup_date) {
- formData.pickup_date = dayjs(formData.pickup_date).format('YYYY-MM-DD')
+ if (formData.delivery_date) {
+ formData.delivery_date = dayjs(formData.delivery_date).format('YYYY-MM-DD')
}
// 格式化自提时间
if (pickupTimeFrom.value) {
- formData.pickup_time_from = dayjs(pickupTimeFrom.value).format('HH:mm')
+ formData.pickup_time_from = dayjs(pickupTimeFrom.value).format('HH:mm:ss')
}
if (pickupTimeTo.value) {
- formData.pickup_time_to = dayjs(pickupTimeTo.value).format('HH:mm')
+ formData.pickup_time_to = dayjs(pickupTimeTo.value).format('HH:mm:ss')
}
}
@@ -1379,19 +1349,15 @@ export default defineComponent({
product_price: null,
sale_price: null,
settlement_amount: null,
- purchase_limit: 0,
- tags: '',
gift_points_rate: 0,
- promotion_text: '',
qty: 0,
delivery_type: 'DELIVERY',
pickup_place: '',
pickup_time_from: '',
pickup_time_to: '',
- pickup_date: null,
+ delivery_date: null,
delivery_time_type: 'IMMEDIATE',
- delivery_date: dayjs().format('YYYY-MM-DD'),
- product_detail: '商品详情
这里是商品的详细描述,支持富文本格式。
',
+ product_detail: '',
purchase_note: ''
}
// 销毁编辑器实例
@@ -1527,26 +1493,26 @@ export default defineComponent({
// 及时达只能配送到家,自动设置为当天配送
formData.delivery_type = 'DELIVERY'
formData.delivery_date = dayjs().format('YYYY-MM-DD')
- formData.pickup_place = ''
- formData.pickup_time_from = ''
- formData.pickup_time_to = ''
- formData.pickup_date = null
+
+ // 移除自提相关字段
+ delete formData.pickup_place
+ delete formData.pickup_time_from
+ delete formData.pickup_time_to
} else if (formData.delivery_time_type === 'SCHEDULED') {
// 定时达只能自提
formData.delivery_type = 'PICKUP'
- formData.delivery_date = null
// 格式化自提日期
- if (formData.pickup_date) {
- formData.pickup_date = dayjs(formData.pickup_date).format('YYYY-MM-DD')
+ if (formData.delivery_date) {
+ formData.delivery_date = dayjs(formData.delivery_date).format('YYYY-MM-DD')
}
// 格式化自提时间
if (editPickupTimeFrom.value) {
- formData.pickup_time_from = dayjs(editPickupTimeFrom.value).format('HH:mm')
+ formData.pickup_time_from = dayjs(editPickupTimeFrom.value).format('HH:mm:ss')
}
if (editPickupTimeTo.value) {
- formData.pickup_time_to = dayjs(editPickupTimeTo.value).format('HH:mm')
+ formData.pickup_time_to = dayjs(editPickupTimeTo.value).format('HH:mm:ss')
}
}
@@ -1582,19 +1548,15 @@ export default defineComponent({
product_price: null,
sale_price: null,
settlement_amount: null,
- purchase_limit: 0,
- tags: '',
gift_points_rate: 0,
- promotion_text: '',
qty: 0,
delivery_type: 'DELIVERY',
pickup_place: '',
pickup_time_from: '',
pickup_time_to: '',
- pickup_date: null,
+ delivery_date: null,
delivery_time_type: 'IMMEDIATE',
- delivery_date: dayjs().format('YYYY-MM-DD'),
- product_detail: '商品详情
这里是商品的详细描述,支持富文本格式。
',
+ product_detail: '',
purchase_note: ''
}
// 销毁编辑器实例
@@ -1615,11 +1577,9 @@ export default defineComponent({
formState.value.pickup_place = ''
formState.value.pickup_time_from = ''
formState.value.pickup_time_to = ''
- formState.value.pickup_date = null
+ formState.value.delivery_date = dayjs().format('YYYY-MM-DD')
pickupTimeFrom.value = null
pickupTimeTo.value = null
- // 及时达默认设置为当天,但不显示日期选择
- formState.value.delivery_date = dayjs().format('YYYY-MM-DD')
} else if (e.target.value === 'SCHEDULED') {
// 定时达 - 只支持自提
formState.value.delivery_type = 'PICKUP'
@@ -1635,15 +1595,14 @@ export default defineComponent({
editFormState.value.pickup_place = ''
editFormState.value.pickup_time_from = ''
editFormState.value.pickup_time_to = ''
- editFormState.value.pickup_date = null
+ editFormState.value.delivery_date = dayjs().format('YYYY-MM-DD')
editPickupTimeFrom.value = null
editPickupTimeTo.value = null
- // 及时达默认设置为当天,但不显示日期选择
- editFormState.value.delivery_date = dayjs().format('YYYY-MM-DD')
} else if (e.target.value === 'SCHEDULED') {
// 定时达 - 只支持自提
editFormState.value.delivery_type = 'PICKUP'
- editFormState.value.delivery_date = null
+ // 不清空 delivery_date,因为这是自提日期
+ // 不清空 pickup_time_from 和 pickup_time_to,保留原有值
}
}
@@ -1704,7 +1663,9 @@ export default defineComponent({
initEditEditor,
htmlToMarkdown,
markdownToHtml,
- mode
+ mode,
+ handleDeliveryTimeTypeChange,
+ handleEditDeliveryTimeTypeChange
}
}
})