quanwei
2 days ago 04102f7237efefa744090ed7c25f7b5d0807b679
shop_vue/src/views/plus/groupbuy/product/add.vue
@@ -285,6 +285,7 @@
    },
    // 选择商品
    selectProduct(product) {
      console.log(product.product_id)
      this.form.product_id = product.product_id
      this.form.product_name = product.product_name
      this.selectedProduct = product
@@ -338,6 +339,8 @@
        let arr = [];
        for (let i = 0; i < e.params.length; i++) {
          let item = e.params[i];
          this.form.product_id = item.product_id
          console.log(item)
          let obj = {
            product_name: item.product_name,
            product_id: item.product_id,
@@ -401,7 +404,6 @@
            stock_num: item.product_stock,
            sales_num: 0,
            spec_name: item.spec_name,
            product_sku_id: item.product_sku_id,
            groupbuy_price: null,
            groupbuy_stock: 0,
            limit_num: 2,
@@ -527,29 +529,52 @@
    onSubmit() {
      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
          }));
          // 根据商品ID分组数据,准备批量添加
          const groupedData = {};
          this.form.tableData.forEach(item => {
            if (!groupedData[item.product_id]) {
              groupedData[item.product_id] = {
                product_id: item.product_id,
                product_name: item.product_name,
                groupbuy_active_id: this.form.groupbuy_active_id,
                limit_num: this.form.limit_num,
                stock: this.form.stock,
                join_num: this.form.join_num,
                total_sales: 0,
                sales_initial: item.sales_initial || 0,
                groupbuy_num: item.groupbuy_num || 2,
                sort: item.sort || 100,
                status: 10,
                state: 10,
                sku_list: []
              };
            }
            // 添加SKU数据
            groupedData[item.product_id].sku_list.push({
              product_sku_id: item.product_sku_id,
              product_id: item.product_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 params = {
            ...this.form,
            sku_list: skuData,
            tableData: undefined // 移除临时数据
          }
          // 准备批量请求数据
          const requestData = {
            product_list: Object.values(groupedData)
          };
          PlusApi.addProduct(params).then(res => {
            this.$message.success('添加成功')
            this.$router.back()
          })
          PlusApi.addProduct(requestData).then(res => {
            this.$message.success(res.msg || '添加成功');
            this.$router.back();
          }).catch(error => {
            this.$message.error(error.message || '添加失败');
          });
        }
      })
    }