peng
2025-09-10 616458206a9f9f146554188ec55b9a35cc1f9a81
seller/src/views/goods/goods-seller/goodsOperationSec.vue
@@ -270,12 +270,13 @@
                                      </template>
                                    </div>
                                  </vuedraggable>
<!--                                  todo 3-->
                                  <Upload ref="uploadSku" action="-"
                                  <!--                                  todo 3-->
                                  <Upload ref="uploadSku" :action="uploadFileUrl"
                                          v-if="val.images < 1"
                                          :before-upload="handleBeforeUpload"
                                          :format="['jpg', 'jpeg', 'png', 'webp']"
                                          :max-size="2048"
                                          :headers="{ ...accessToken }"
                                          :on-error="() => { $Spin.hide(); }"
                                          :on-exceeded-size="handleMaxSize"
                                          :on-format-error="handleFormatError"
@@ -327,9 +328,9 @@
                            overflow-x: hidden;
                          }
                        ">
                        <template slot="sn" slot-scope="{ row }">
                          <Input v-model="row.sn" clearable placeholder="请输入货号"
                                 @on-change="updateSkuTable(row, 'sn')"/>
                        <template slot="sn" slot-scope="{ row, index }">
                          <Input v-model="row.sn" placeholder="请输入货号" disabled
                                 @on-change="updateSkuTable(row, 'sn')" />
                        </template>
                        <div v-if="baseInfoForm.goodsType !== 'VIRTUAL_GOODS'" slot="weight" slot-scope="{ row }">
                          <Input v-model="row.weight" clearable placeholder="请输入重量"
@@ -401,7 +402,7 @@
            </div>
            <FormItem class="form-item-view-el" label="PC商品描述" prop="intro" style="width: 100%">
              <editor
                :show-upload="false"
                :show-upload="true"
                ref="editor"
                v-model="baseInfoForm.intro"
                height="800px"
@@ -415,7 +416,7 @@
            <FormItem class="form-item-view-el" label="移动端描述" prop="skuList" style="width: 100%">
              <editor
                :show-upload="false"
                :show-upload="true"
                ref="introEditor"
                v-model="baseInfoForm.mobileIntro"
                height="800px"
@@ -1116,6 +1117,16 @@
      }
    },
    // sku图片上传前钩子
  // async handleBeforeUpload(file) {
  //     const check =
  //       this.selectedSku.images !== undefined &&
  //       this.selectedSku.images.length > 5;
  //     if (check) {
  //       this.$Notice.warning({title: "图片数量不能大于五张"});
  //       return false;
  //     }
  //   },
    // sku图片上传前钩子
  async handleBeforeUpload(file) {
      const check =
        this.selectedSku.images !== undefined &&
@@ -1459,8 +1470,8 @@
        this.$Message.error("已存在相同规格项!");
        return;
      }
      if (this.zz(0, val) > 20) {
        this.$Message.error("规格值最多十个字符长度!");
      if (this.zz(0, val) > 30) {
        this.$Message.error("规格值最多十五个字符长度!");
        // val = val.toString().slice(0, 4);
        this.skuInfo[index].name = this.countCharacters(val, 10);
        this.$forceUpdate();// 调用该方法会触发组件的重新渲染
@@ -1515,8 +1526,8 @@
      if (val.value === '') {
        return;
      }
      if (this.zz(0, val.value) > 20) {
        this.$Message.error("规格值最多十个字符长度!");
      if (this.zz(0, val.value) > 30) {
        this.$Message.error("规格值最多十五个字符长度!");
        // val.value = val.value.toString().slice(0, 4);
        this.skuInfo[$index].spec_values[index].value = this.countCharacters(val.value, 10);
        this.$forceUpdate();// 调用该方法会触发组件的重新渲染
@@ -1703,6 +1714,7 @@
        this.baseInfoForm.regeneratorSkuFlag = true;
        this.newSkuValues[$index] = "";
      }
      this.renderTableData(this.skuTableData);
    },
    handleClearSku() {
      this.skuInfo = [];
@@ -1730,7 +1742,7 @@
     * 渲染table所需要的column 和 data
     */
    renderTableData(skus) {
      console.log('-------------->销售类型',skus)
      console.log('-------------->销售类型', skus)
      this.skuTableColumn = [];
      let pushData = [];
      // 渲染头部
@@ -1756,14 +1768,14 @@
        );
      }
      // 预售模式
      if (this.baseInfoForm.salesModel !== "PRESALE") {
        pushData.push(
          {
            title: "预售时间",
            slot: "price",
          }
        );
      }
      // if (this.baseInfoForm.salesModel !== "PRESALE") {
      //   pushData.push(
      //     {
      //       title: "预售时间",
      //       slot: "price",
      //     }
      //   );
      // }
      if (this.baseInfoForm.salesModel === "WHOLESALE" && this.wholesaleData) {
        this.wholesaleData.forEach((item, index) => {
          pushData.push({
@@ -1819,6 +1831,7 @@
     * array spec数据
     */
    specIterator(result, spec, skus) {
      let table = result;
      if (spec.length > 0) {
        //清除当前循环的分组
@@ -1860,6 +1873,11 @@
      } else {
        this.skuIndex++;
      }
      table.forEach((item,index) =>{
        console.log("元素:" + item +"index:" + (index +1))
          item.sn = index + 1;
      })
      return table;
    },
    /** 根据分类id获取系统设置规格信息*/
@@ -1917,6 +1935,7 @@
          return;
        }
      }
      // else if (item === "alertQuantity") {
      //   if (
      //     !/^[0-9]\d*$/.test(row[item]) ||
@@ -1991,20 +2010,20 @@
            }
            this.baseInfoForm.goodsId = this.goodsId;
            let submit = JSON.parse(JSON.stringify(this.baseInfoForm));
            console.log('----------------->提交',submit);
            console.log('----------------->提交', submit);
            if (
              submit.goodsGalleryFiles &&
                submit.goodsGalleryFiles.length <= 0
              submit.goodsGalleryFiles.length <= 0
            ) {
              this.submitLoading = false;
              this.$Message.error("请上传商品图片");
              return;
            }
            if (!submit.goodsVideo){
              this.submitLoading = false;
              this.$Message.error("请上传商品视频");
              return;
            }
            // if (!submit.goodsVideo){
            //   this.submitLoading = false;
            //   this.$Message.error("请上传商品视频");
            //   return;
            // }
            if (submit.templateId === "") submit.templateId = 0;
            let flag = false;
            let paramValue = "";
@@ -2169,16 +2188,16 @@
          this.$Message.error("刷新失败,请重试");
        }
      }).catch(reason => {
        console.log("获取模板失败",reason)
        console.log("获取模板失败", reason)
      });
    },
    removeVideo(){
    removeVideo() {
      this.baseInfoForm.showGoodsVideo = null;
      this.baseInfoForm.goodsVideo = null;
    },
    // todo 文件上传
    async upLoadImg(file) {
      console.log(file,this.count++);
      console.log(file, this.count++);
      if (this.listImages.length >= 5) {
        this.$Message.error("图片上传不能超过5个");
        return;
@@ -2297,12 +2316,10 @@
        this.baseInfoForm.goodsType = this.firstData.goodsType;
        if (this.categoryId!=null && this.categoryId!=='') {
        if (this.categoryId != null && this.categoryId !== '') {
          /** 获取该商城分类下 商品参数信息 */
          this.GET_GoodsParams();
          console.log('分类id------------------>',this.categoryId);
          console.log('分类id------------------>', this.categoryId);
          /** 查询分类绑定的规格信息 */
          this.Get_SkuInfoByCategory(this.categoryId);
          /** 查询品牌列表 */