From a4b3ee325c7354579d495bc74a777e494e5ec38c Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Fri, 06 Feb 2026 18:18:44 +0800
Subject: [PATCH] 商品可以价格面议 选择走访时显示输入走访企业名 分会添加活动时要总会审核 分类添加人数限制,添加活动选择了填写人数限制的分类时活动名额下显示该分类人数限制为15 同一个企业30天内只能走访一次,在30天内走访同一个企业时提示该企业已被走访xx天后才可以从新走访
---
shop_vue/src/views/plus/groupbuy/product/edit.vue | 131 +++++++++++++++++++++++++++++--------------
1 files changed, 89 insertions(+), 42 deletions(-)
diff --git a/shop_vue/src/views/plus/groupbuy/product/edit.vue b/shop_vue/src/views/plus/groupbuy/product/edit.vue
index 7ec4ea9..c143f72 100644
--- a/shop_vue/src/views/plus/groupbuy/product/edit.vue
+++ b/shop_vue/src/views/plus/groupbuy/product/edit.vue
@@ -232,9 +232,9 @@
}]
}
},
- created() {
+ async created() {
+ await this.getActiveList()
this.getDetail()
- this.getActiveList()
},
methods: {
// 获取详情
@@ -247,50 +247,83 @@
}
PlusApi.productDetail({ groupbuy_product_id: productId }).then(res => {
const detail = res.data.detail
+ // 在展开detail时,确保保留groupbuy_active_id的值
this.form = {
+ ...this.form, // 保留初始表单结构
...detail,
- product_name: detail.product.product_name
+ product_name: (detail.product && detail.product.product_name) || detail.product_name,
+ groupbuy_active_id: detail.groupbuy_active_id || this.form.groupbuy_active_id
}
// 初始化表格数据
this.form.tableData = [];
- if (res.data.product_list && res.data.product_list.length > 0) {
+ // 使用 detail.groupbuySku 来构建表格数据
+ if (detail.groupbuySku && detail.groupbuySku.length > 0) {
let arr = [];
- for (let i = 0; i < res.data.product_list.length; i++) {
- let item = res.data.product_list[i];
- for (let j = 0; j < item.groupbuySku.length; j++) {
- let sku = item.groupbuySku[j];
- let obj = {
- product_name: item.product.product_name,
- product_id: item.product.product_id,
- stock_num: item.product.product_stock,
- spec_name: sku.product_attr,
- product_price: item.product.product_price,
- spec_type: item.product.spec_type,
- is_delete: item.is_delete,
- product_sku_id: sku.product_sku_id,
- groupbuy_product_sku_id: sku.groupbuy_product_sku_id,
- sales_num: item.total_sales,
- groupbuy_price: sku.groupbuy_price,
- groupbuy_stock: sku.groupbuy_stock,
- groupbuy_product_id: sku.groupbuy_product_id,
- join_num: item.join_num,
- limit_num: j == 0 ? item.limit_num : 2,
- groupbuy_num: j == 0 ? item.groupbuy_num : 2,
- sort: j == 0 ? item.sort : 2,
- sales_initial: j == 0 ? item.sales_initial : 2,
- };
- arr.push(obj);
- }
+ // 这里我们只有一个商品,但可能有多个SKU
+ for (let j = 0; j < detail.groupbuySku.length; j++) {
+ let sku = detail.groupbuySku[j];
+ let obj = {
+ product_name: (detail.product && detail.product.product_name) || detail.product_name,
+ product_id: (detail.product && detail.product.product_id) || detail.product_id,
+ stock_num: (detail.product && detail.product.product_stock) || detail.stock_num,
+ spec_name: sku.product_attr,
+ product_price: (detail.product && detail.product.product_price) || detail.product_price,
+ spec_type: (detail.product && detail.product.spec_type) || detail.spec_type,
+ is_delete: detail.is_delete,
+ product_sku_id: sku.product_sku_id,
+ groupbuy_product_sku_id: sku.groupbuy_product_sku_id,
+ sales_num: detail.total_sales,
+ groupbuy_price: sku.groupbuy_price,
+ groupbuy_stock: sku.groupbuy_stock,
+ groupbuy_product_id: sku.groupbuy_product_id,
+ join_num: detail.join_num,
+ limit_num: detail.limit_num,
+ groupbuy_num: detail.groupbuy_num,
+ sort: detail.sort,
+ sales_initial: detail.sales_initial,
+ };
+ arr.push(obj);
}
this.form.tableData = mergeTable(arr);
+ } else if (detail.product) {
+ // 如果没有SKU,使用商品信息构建一行数据
+ let obj = {
+ product_name: detail.product && detail.product.product_name,
+ product_id: detail.product && detail.product.product_id,
+ stock_num: detail.product && detail.product.product_stock,
+ spec_name: "",
+ product_price: detail.product && detail.product.product_price,
+ spec_type: detail.product && detail.product.spec_type,
+ is_delete: detail.is_delete,
+ product_sku_id: (detail.product && detail.product.product_sku_id) || 0,
+ groupbuy_product_sku_id: 0,
+ sales_num: detail.total_sales,
+ groupbuy_price: (detail.groupbuySku && detail.groupbuySku[0] && detail.groupbuySku[0].groupbuy_price) || detail.groupbuy_price,
+ groupbuy_stock: (detail.groupbuySku && detail.groupbuySku[0] && detail.groupbuySku[0].groupbuy_stock) || detail.groupbuy_stock,
+ groupbuy_product_id: detail.groupbuy_product_id,
+ join_num: detail.join_num,
+ limit_num: detail.limit_num,
+ groupbuy_num: detail.groupbuy_num,
+ sort: detail.sort,
+ sales_initial: detail.sales_initial,
+ };
+ this.form.tableData = [obj];
}
})
},
// 获取活动列表
getActiveList() {
- PlusApi.activeList({}).then(res => {
+ return PlusApi.activeList({}).then(res => {
this.activeList = res.data.list.data
+ // 如果当前有选定的活动ID,确保在列表加载后仍然保留
+ if (this.form && this.form.groupbuy_active_id) {
+ this.$nextTick(() => {
+ // 确保下拉框显示正确的值
+ this.$set(this.form, 'groupbuy_active_id', this.form.groupbuy_active_id)
+ })
+ }
+ return res
})
},
@@ -433,17 +466,26 @@
this.$refs.form.validate(valid => {
if (valid) {
// 整理SKU数据
- const skuData = this.form.tableData.map(item => ({
- product_sku_id: item.product_sku_id,
- groupbuy_price: item.groupbuy_price,
- groupbuy_stock: item.groupbuy_stock,
- product_attr: item.spec_name,
- product_price: item.product_price,
- groupbuy_num: item.groupbuy_num,
- limit_num: item.limit_num,
- sales_initial: item.sales_initial,
- sort: item.sort
- }));
+ const skuData = this.form.tableData.map(item => {
+ const skuItem = {
+ product_sku_id: item.product_sku_id,
+ groupbuy_price: item.groupbuy_price,
+ groupbuy_stock: item.groupbuy_stock,
+ product_attr: item.spec_name,
+ product_price: item.product_price,
+ groupbuy_num: item.groupbuy_num,
+ limit_num: item.limit_num,
+ sales_initial: item.sales_initial,
+ sort: item.sort
+ };
+
+ // 如果是已有SKU,保留其ID
+ if (item.groupbuy_product_sku_id) {
+ skuItem.groupbuy_product_sku_id = item.groupbuy_product_sku_id;
+ }
+
+ return skuItem;
+ });
const params = {
...this.form,
@@ -452,6 +494,11 @@
product_list: undefined // 移除临时数据
}
+ // 如果有要删除的商品ID,也要一并提交
+ if (this.form.product_del_ids && this.form.product_del_ids.length > 0) {
+ params.product_del_ids = this.form.product_del_ids
+ }
+
PlusApi.updateProduct(params).then(res => {
this.$message.success('更新成功')
this.$router.back()
--
Gitblit v1.9.2