From 526954dd5a2fe389a03a217cc827fc19935044c5 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期三, 19 十一月 2025 18:08:59 +0800
Subject: [PATCH] *号问题

---
 seller/src/views/goods/goods-seller/goodsOperationSec.vue |  221 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 200 insertions(+), 21 deletions(-)

diff --git a/seller/src/views/goods/goods-seller/goodsOperationSec.vue b/seller/src/views/goods/goods-seller/goodsOperationSec.vue
index f09f1cc..847423c 100644
--- a/seller/src/views/goods/goods-seller/goodsOperationSec.vue
+++ b/seller/src/views/goods/goods-seller/goodsOperationSec.vue
@@ -82,8 +82,19 @@
                 @on-clear="handleGoodsType"
                 @on-change="handleGoodsType"
               >
-                <Option value="COUPON">浼樻儬鍗�</option>
+                <Option value="COUPON">浼樻儬鍔�</option>
                 </select>
+            </FormItem>
+            <FormItem v-if="baseInfoForm.goodsType == 'PHYSICAL_GOODS'" class="form-item-view-el" label="鍟嗗搧绫诲瀷">
+              <Select
+                v-model="baseInfoForm.customizeFlag"
+                clearable
+                style="width: 160px"
+                @on-clear="handleGoodsType"
+                @on-change="handleGoodsType"
+              >
+                <Option value="CUSTOMIZE">瀹氬埗鍟嗗搧</option>
+              </select>
             </FormItem>
             <FormItem v-if="baseInfoForm.salesModel == 'WHOLESALE'" class="form-item-view-el" label="閿�鍞鍒�"
                       prop="wholesaleRule">
@@ -236,9 +247,9 @@
                                               @on-change="editSkuItem(item.name, $index, item)">
                                 </AutoComplete>
 
-<!--                                <iSwitch v-if="$index === 0" style="margin-left: 10px" size="small"-->
-<!--                                         @on-change="changeSkuOpenImage" v-model="openImage"/>-->
-<!--                                <span v-if="$index === 0" style="margin-left: 5px">娣诲姞瑙勬牸鍥剧墖</span>-->
+                                <iSwitch v-if="$index === 0" style="margin-left: 10px" size="small"
+                                         @on-change="changeSkuOpenImage" v-model="openImage"/>
+                                <span v-if="$index === 0" style="margin-left: 5px">娣诲姞瑙勬牸鍥剧墖</span>
                               </div>
                             </FormItem>
 
@@ -328,8 +339,8 @@
                       </Button>
                     </div>
                     &nbsp;
-                    <!--                    <Button class="add-sku-btn" size="small" type="warning" @click="handleClearSku">娓呯┖瑙勬牸椤�-->
-                    <!--                    </Button>-->
+                                        <Button class="add-sku-btn" size="small" type="warning" @click="handleClearSku">娓呯┖瑙勬牸椤�
+                                        </Button>
                   </div>
                 </Panel>
                 <Panel name="2">
@@ -362,13 +373,22 @@
                           </Input>
                         </template>
                         <template slot="COUPON" slot-scope="{ row }">
-                          <div  @click="showCouponListModal(row)">
-                            <Input v-model="row.couponName" clearable placeholder="閫夋嫨浼樻儬鍗�"
+                          <div  @click="showCouponListModal($event,row)">
+                            <Input v-model="row.couponName" clearable placeholder="閫夋嫨浼樻儬鍔�"
                             >
                             </Input>
                           </div>
 
                         </template>
+                        <template slot="CUSTOMIZE" slot-scope="{ row }">
+                          <div  @click="showTemplateListModal($event,row)">
+                            <Input v-model="row.customizeTemplateName" clearable placeholder="閫夋嫨瀹氬埗妯℃澘"
+                            >
+                            </Input>
+                          </div>
+
+                        </template>
+
                         <template slot="cost" slot-scope="{ row }">
                           <Input v-model="row.cost" clearable placeholder="璇疯緭鍏ユ垚鏈环"
                                  @on-change="updateSkuTable(row, 'cost')">
@@ -528,11 +548,11 @@
         <Button type="primary" @click="saveToDraft">淇濆瓨涓烘ā鐗�</Button>
       </ButtonGroup>
     </div>
-    <Modal v-model="showCouponModal" title="浼樻儬鍗峰垪琛�" width="1200px">
+    <Modal v-model="showCouponModal" title="浼樻儬鍔靛垪琛�" width="1200px">
       <div style="display: flex; align-items: center; margin-bottom: 20px;">
         <!-- 妯℃嫙琛ㄥ崟label鏍峰紡 -->
         <label style="width: 100px; text-align: right; padding-right: 12px; font-size:14px;">
-          宸查�夋嫨浼樻儬鍗�:
+          宸查�夋嫨浼樻儬鍔�:
         </label>
         <Input
           :disabled="true"
@@ -565,6 +585,46 @@
           ></Page>
         </Row>
     </Modal>
+
+    <Modal v-model="showTemplateModal" title="妯℃澘鍒楄〃" width="1200px">
+      <div style="display: flex; align-items: center; margin-bottom: 20px;">
+        <!-- 妯℃嫙琛ㄥ崟label鏍峰紡 -->
+        <label style="width: 100px; text-align: right; padding-right: 12px; font-size:14px;">
+          宸查�夋嫨妯℃澘:
+        </label>
+        <Input
+          :disabled="true"
+          style="width: 30%;"
+          v-model="showTemplate"
+          placeholder="璇风偣鍑婚�夋嫨琛ㄦ牸鍐呮ā鏉�"
+        ></Input>
+      </div>
+      <Table
+        :loading="templateLoading"
+        border
+        :columns="templateColumns"
+        :data="templateData"
+        ref="table"
+        @on-current-change="templateHandleRowClick"
+        highlight-row
+      ></Table>
+      <Row type="flex" justify="center" class="mt_10">
+        <Page
+          :current="templateSearchForm.pageNumber"
+          :total="templateTotal"
+          :page-size="templateSearchForm.pageSize"
+          @on-change="templateChangePage"
+          @on-page-size-change="templateChangePageSize"
+          :page-size-opts="[10, 20, 50]"
+          size="small"
+          show-total
+          show-elevator
+          show-sizer
+        ></Page>
+      </Row>
+    </Modal>
+
+
     <Modal v-model="showGoodsVideo" title="鏌ョ湅瑙嗛">
       <div id="dplayer">
 
@@ -605,6 +665,7 @@
   </div>
 </template>
 <script>
+import * as API_GOODS_CUSTOMEIZE from "@/api/goods-customeize-template"
 import * as API_GOODS from "@/api/goods";
 import * as API_Shop from "@/api/shops";
 import cloneObj from "@/utils/index";
@@ -653,6 +714,42 @@
       }, 1000);
     };
     return {
+      showTemplateModal:false,
+      showTemplate:'',
+      templateSearchForm: {
+        // 鎼滅储妗嗗垵濮嬪寲瀵硅薄
+        pageNumber: 1, // 褰撳墠椤垫暟
+        pageSize: 10, // 椤甸潰澶у皬
+        status:"ENABLE"
+      },
+      templateLoading:false,
+      templateColumns:[
+        {
+          title: "妯℃澘鍚嶇О",
+          key: "templateName",
+          tooltip: true,
+        },
+        {
+          title: '鍚敤鐘舵��',
+          key: 'status',
+          width: 120,
+          align: 'center',
+          render: (h, params) => {
+            const status = params.row.status;
+            const color = status === 'ENABLE' ? 'success' : status === 'DISABLE' ? 'default' : 'warning';
+            const text = status === 'ENABLE' ? '鍚敤' : status === 'DISABLE' ? '鏈惎鐢�' : '鏈煡';
+
+            return h('Tag', {
+              props: {
+                color: color
+              }
+            }, text);
+          }
+        },
+      ],
+      templateData:[],
+      templateTotal:0,
+
       currentRow:null,
       showCouponModal:false,
       showCoupon:'',
@@ -824,6 +921,7 @@
       ],
       /** 鍙戝竷鍟嗗搧鍩烘湰鍙傛暟 */
       baseInfoForm: {
+        customizeFlag:"",
         virtualGoodsType:"",
         salesModel: "RETAIL",
         /** 鍟嗗搧鐩稿唽鍒楄〃 */
@@ -922,6 +1020,8 @@
         "quantity",
         "couponName",
         "couponId",
+        "customizeTemplateName",
+        "customizetemplateId",
         // "alertQuantity",
         "specId",
         "specValueId",
@@ -947,7 +1047,23 @@
     }
   },
   methods: {
-    showCouponListModal(row){
+    showTemplateListModal(event,row){
+      if (event.target.classList.contains('ivu-icon-ios-close-circle') ||
+        event.target.closest('.ivu-input-wrapper-clear-icon')) {
+        return; // 濡傛灉鏄竻闄ゆ寜閽紝涓嶆墽琛屽悗缁�昏緫
+      }
+      console.log(row)
+      console.log("瑙﹀彂鐐瑰嚮")
+      this.showTemplateModal = true;
+      this.showTemplate='';
+      this.getTemplateDataList()
+      this.currentRow = row;
+    },
+    showCouponListModal(event,row){
+      if (event.target.classList.contains('ivu-icon-ios-close-circle') ||
+        event.target.closest('.ivu-input-wrapper-clear-icon')) {
+        return; // 濡傛灉鏄竻闄ゆ寜閽紝涓嶆墽琛屽悗缁�昏緫
+      }
       this.showCouponModal = true;
       this.showCoupon ='';
       this.getCouponDataList()
@@ -956,6 +1072,18 @@
     handleGoodsType(){
       //閲嶆柊娓叉煋
       this.renderTableData(this.skuTableData);
+    },
+    getTemplateDataList() {
+      // 鑾峰彇鏁版嵁
+      this.templateLoading = true;
+      API_GOODS_CUSTOMEIZE.getPage(this.templateSearchForm).then((res) => {
+        this.templateLoading = false;
+        if (res.code === 200) {
+          this.templateData = res.data;
+          this.templateTotal = res.total;
+        }
+      });
+      this.templateLoading = false;
     },
     getCouponDataList() {
       // 鑾峰彇鏁版嵁
@@ -969,6 +1097,16 @@
       });
       this.couponLoading = false;
     },
+    templateHandleRowClick(currentRow ,oldCurrentRow){
+      this.showTemplate = currentRow.templateName;
+      this.$set(this.currentRow, 'customizeTemplateName', currentRow.templateName);
+      this.currentRow.customizeTemplateId = currentRow.id
+      console.log(this.currentRow)
+      this.updateSkuTable(this.currentRow,"customizeTemplateName")
+      this.updateSkuTable(this.currentRow,"customizeTemplateId")
+      console.log(this.skuTableData)
+    },
+
     // 澶勭悊琛岀偣鍑讳簨浠�
     handleRowClick(currentRow ,oldCurrentRow){
       this.showCoupon = currentRow.couponName;
@@ -978,6 +1116,15 @@
       this.updateSkuTable(this.currentRow,"couponName")
       this.updateSkuTable(this.currentRow,"couponId")
       console.log(this.skuTableData)
+    },
+    templateChangePage(v){
+      this.templateSearchForm.pageNumber = v;
+      this.getTemplateDataList();
+    },
+    templateChangePageSize(v){
+      this.templateSearchForm.pageNumber = 1;
+      this.templateSearchForm.pageSize = v;
+      this.getTemplateDataList();
     },
     couponChangePage(v) {
       // 鏀瑰彉椤电爜
@@ -1371,11 +1518,11 @@
           },
         });
         console.log("涓婁紶鎴愬姛", upData)
-        this.$nextTick(() => {
-          this.listImages.push(fileKey);
-          this.showListImages.push(sts.data.endpoint + "/" + fileKey);
-          this.baseInfoForm.goodsGalleryFiles.push(fileKey);
-        })
+        // this.$nextTick(() => {
+        //   this.listImages.push(fileKey);
+        //   this.showListImages.push(sts.data.endpoint + "/" + fileKey);
+        //   this.baseInfoForm.goodsGalleryFiles.push(fileKey);
+        // })
 
       } catch (e) {
         console.log("涓婁紶澶辫触", upData)
@@ -1548,6 +1695,8 @@
           // alertQuantity: e.alertQuantity,
           couponName:e.couponName,
           couponId:e.couponId,
+          customizeTemplateName:e.customizeTemplateName,
+          customizeTemplateId:e.customizeTemplateId,
           weight: e.weight,
         };
         if (e.goodsGalleryList && e.goodsGalleryList.length >= 1) {
@@ -1901,6 +2050,8 @@
               // find.alertQuantity && (find.alertQuantity = "");
               find.couponName && (find.couponName = "");
               find.couponId && (find.couponId = "");
+              find.customizeTemplateName && (find.customizeTemplateName = "");
+              find.customizeTemplateId && (find.customizeTemplateId ="");
               find.weight && (find.weight = "");
 
               this.skuTableData.splice(this.skuTableData.length, 0, find);
@@ -1917,6 +2068,8 @@
               find.quantity && (find.quantity = "");
               find.couponName && (find.couponName = "");
               find.couponId && (find.couponId = "");
+              find.customizeTemplateName && (find.customizeTemplateName = "");
+              find.customizeTemplateId && (find.customizeTemplateId ="");
               // find.alertQuantity && (find.alertQuantity = "");
               find.weight && (find.weight = "");
 
@@ -2012,11 +2165,18 @@
       if (this.baseInfoForm.goodsType ==="VIRTUAL_GOODS" && this.baseInfoForm.virtualGoodsType==="COUPON"){
         pushData.push(
           {
-            title:"浼樻儬鍗�",
+            title:"浼樻儬鍔�",
             slot:"COUPON"
           }
         )
       }
+      if(this.baseInfoForm.goodsType==="PHYSICAL_GOODS" &&this.baseInfoForm.customizeFlag==="CUSTOMIZE"){
+        pushData.push({
+          title:"瀹氬埗鍟嗗搧妯℃澘",
+          slot:"CUSTOMIZE"
+        })
+      }
+
       pushData.push(
         {
           title: "搴撳瓨",
@@ -2070,6 +2230,7 @@
               sn: skus[index].sn,
               quantity: skus[index].quantity,
               coupon: skus[index].coupon,
+              customize: skus[index].customize,
               cost: skus[index].cost,
               price: skus[index].price,
               // [spec[0].name]: skus[index][spec[0].name] ? skus[index][spec[0].name] : specItem.value,
@@ -2219,6 +2380,7 @@
     },
     /**  娣诲姞鍟嗗搧 **/
     save() {
+      console.log(this.skuTableData)
       try {
         this.submitLoading = true;
         this.$refs["baseInfoForm"].validate((valid) => {
@@ -2271,19 +2433,34 @@
                 cost: 1,
                 price: sku.price,
                 quantity: sku.quantity,
-                couponName:sku.couponName,
-                couponId:sku.couponId,
+                couponName:this.baseInfoForm.virtualGoodsType === "COUPON" ? sku.couponName:null,
+                couponId:this.baseInfoForm.virtualGoodsType === "COUPON" ? sku.couponId:null,
+                customizeTemplateName:this.baseInfoForm.customizeFlag === "CUSTOMIZE" ? sku.customizeTemplateName : null,
+                customizeTemplateId:this.baseInfoForm.customizeFlag === "CUSTOMIZE" ? sku.customizeTemplateId :null,
                 // alertQuantity: sku.alertQuantity,
                 sn: sku.sn,
                 images: [],
               };
-              if(this.baseInfoForm.goodsType === "VIRTUAL_GOODS"){
+              if(this.baseInfoForm.goodsType === "VIRTUAL_GOODS" &&
+                this.baseInfoForm.virtualGoodsType === "COUPON"
+              ){
                 if (sku.couponId === null || sku.couponId === undefined){
                   this.$Message.error("璇烽�夋嫨浼樻儬鍔�")
                   return;
                 }
                 if (sku.couponName === null || sku.couponName === undefined){
                   this.$Message.error("璇烽�夋嫨浼樻儬鍔�")
+                  return;
+                }
+              }
+              if(this.baseInfoForm.goodsType === "PHYSICAL_GOODS" &&
+                this.baseInfoForm.customizeFlag === "CUSTOMIZE"){
+                if (sku.customizeTemplateId === null || sku.customizeTemplateId === undefined){
+                  this.$Message.error("璇烽�夋嫨瀹氬埗妯℃澘")
+                  return;
+                }
+                if (sku.customizeTemplateName === null || sku.customizeTemplateName === undefined){
+                  this.$Message.error("璇烽�夋嫨瀹氬埗妯℃澘")
                   return;
                 }
               }
@@ -2332,6 +2509,7 @@
               ? (submit.recommend = true)
               : (submit.recommend = false);
             if (this.goodsId) {
+              console.log(this.submit)
               API_GOODS.editGoods(this.goodsId, submit).then((res) => {
                 if (res.success) {
                   this.submitLoading = false;
@@ -2530,6 +2708,7 @@
     },
   },
   mounted() {
+
     this.accessToken = {
       accessToken: this.getStore("accessToken"),
     };
@@ -2551,7 +2730,7 @@
         this.categoryId = cateId[2];
         this.baseInfoForm.categoryPath = cateId.toString();
         this.baseInfoForm.goodsType = this.firstData.goodsType;
-
+        console.log(this.baseInfoForm)
 
         if (this.categoryId != null && this.categoryId !== '') {
           /** 鑾峰彇璇ュ晢鍩庡垎绫讳笅 鍟嗗搧鍙傛暟淇℃伅 */

--
Gitblit v1.8.0