瀏覽代碼

Merge branch 'testToMerge' into allTestUrgent

# Conflicts:
#	package-lock.json
#	src/HDrpManagement/salerPortrait/index.vue
xiaohaizhao 7 月之前
父節點
當前提交
9d51246e87

文件差異過大導致無法顯示
+ 1726 - 1210
package-lock.json


+ 1 - 1
src/HManagement/marketing2/agent/details/index.vue

@@ -9,7 +9,7 @@
     turnPageId="20221011144903"
     idname="sa_agentsid"
     :tags="[]"
-    :tabs="[$t('经销商团队'),$t('授权营销类别'),$t('授权领域'),$t('授权标准'),$t('账户余额查询'),$t('地址管理'),$t('财务信息'),$t('银行卡信息'),$t('关联合同'),$t('联系人管理'),$t('业绩目标'),$t('代理区域')]"
+    :tabs="[$t('合作伙伴团队'),$t('授权营销类别'),$t('授权领域'),$t('授权标准'),$t('账户余额查询'),$t('地址管理'),$t('财务信息'),$t('银行卡信息'),$t('关联合同'),$t('联系人管理'),$t('业绩目标'),$t('代理区域')]"
     @pageChange="pageChange"
     @onEditSuccess="queryMainData($route.query.id)">
     <div slot="tags">

+ 3 - 2
src/HManagement/marketing2/agent/details/modules/contract/index.vue

@@ -19,10 +19,11 @@
       <tableLayout :layout="tablecols" :data="list" :opwidth="200"  :custom="true" :width="false"  :height="tableHieght" fixedName="operation writeoffamount unwriteoffamount">
         <template v-slot:customcol="scope">
           <div v-if="scope.column.columnname == 'type'">
-            <span v-if="scope.column.data[[scope.column.columnname]] == '框架'">经销商合作协议</span>
+            <span v-if="scope.column.data[[scope.column.columnname]] == '框架'">{{$t(`经销商合作协议`)}}</span>
             <span v-else-if="scope.column.data.typemx == '经销'">{{$t(`经销项目协议`)}}</span>
             <span v-else-if="scope.column.data.typemx == '直销'">{{$t(`直销项目协议`)}}</span>
-            <span v-else-if="scope.column.data[[scope.column.columnname]] == '工具借用'">工具使用协议</span>
+            <span v-else-if="scope.column.data[[scope.column.columnname]] == '直销'">{{$t(`直销客户合作协议`)}}</span>
+            <span v-else-if="scope.column.data[[scope.column.columnname]] == '工具借用'">{{$t(`工具使用协议`)}}</span>
             <span v-else-if="scope.column.data[[scope.column.columnname]] == '居间'">{{$t(`居间协议`)}}</span>
           </div>
            <div v-else-if="scope.column.columnname == 'status'">

+ 9 - 5
src/WebsiteManagement/marketproductMag/compents/upload.vue

@@ -165,14 +165,12 @@ export default {
         document: ".txt,.doc,.docx,.xls,.xlsx,.ppt,.pptx",
         pdf: ".pdf",
       };
-      return this.classType.map((v) => (obj[v] ? obj[v] : v)).join(",")
+      return this.classType.map((v) => (obj[v] ? obj[v] : v)).join(",");
     },
   },
   methods: {
     handleChange(file, filelist) {
-      if (!this.filelist.some((v) => v.uid == file.uid))
-        this.filelist = filelist;
-      console.log("filelist", JSON.parse(JSON.stringify(filelist)));
+      this.$set(this.filelist, this.filelist.length, file);
       this.loading = true;
       let filename = file.raw.name,
         filetype = file.name.substr(file.raw.name.lastIndexOf(".") + 1);
@@ -202,6 +200,7 @@ export default {
     async upoladFileToServer(url, file, ext, obsfilename) {
       let that = this,
         item = this.filelist.find((v) => v.uid === file.uid);
+        console.log("itemitem",item)
       let config = {
         headers:
           ext === "pdf"
@@ -232,22 +231,27 @@ export default {
           },
         })
         .then((res) => {
-          console.log("res", res);
+          console.log("res", res, file);
           if (res.code == 0) return this.failUpload(res, file);
           let data = JSON.parse(res.attinfos).data,
             index = this.filelist.findIndex((v) => v.uid == file.uid),
             attachmentid = res.data.attachmentids[0],
             item = data.find((v) => v.attachmentid == attachmentid);
+          console.log(item);
+          console.log("this.filelist",this.filelist)
           delete file.row;
           this.$set(
             this.filelist,
             index,
             Object.assign(this.filelist[index], item)
           );
+          console.log("this.filelist",this.filelist)
           this.loading = this.filelist.some((v) => v.row);
+          this.filelist = this.filelist;
         });
     },
     failUpload(res, file) {
+      console.log("失败",res)
       Message.error(file.name + res.msg);
       this.filelist = this.filelist.filter((v) => v.uid !== file.uid);
       this.loading = this.filelist.some((v) => v.row);

+ 26 - 26
src/WebsiteManagement/marketproductMag/modules/add.vue

@@ -84,22 +84,8 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item :label="$t('分类')" prop="class">
-                <el-select
-                  v-model="form.class"
-                  clearable
-                  :placeholder="$t('请选择分类')"
-                  @focus="queryClass"
-                  style="width: 100%"
-                >
-                  <el-option
-                    v-for="item in classData"
-                    :key="item.value"
-                    :label="$t(item.remarks)"
-                    :value="item.value"
-                  >
-                  </el-option>
-                </el-select>
+              <el-form-item :label="$t('分类')" prop="classmx">
+                <el-cascader ref="selectdep" size="small" style="width: 100%" :placeholder='$t("分类")' v-model="form.classmx" :options="classData" filterable :props="{emitPath:false,expandTrigger:'hover',checkStrictly:false,label:'remarks',value:'value',children:'subvalues'}"  clearable></el-cascader>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -184,22 +170,22 @@ export default {
         technicalparam: "",
         contentstr: "",
         isonsale: "1",
+        classmx:''
       },
       rules: {
         itemname: [
           { required: true, message: this.$t("请选择商品"), trigger: "change" },
         ],
-        class: [
-          { required: true, message: this.$t("请选择分类"), trigger: "change" },
-        ],
+        classmx: [{ required: true,  message: this.$t( "请选择分类"), trigger: "change" }],
       },
     };
   },
+  mounted() {
+  },
   methods: {
-    oploadIng(e) {
-      this.disabled = e;
+    addBtn() {
+      this.queryClass()
     },
-    addBtn() {},
     onSubmit() {
       this.$refs.form.validate(async (valid) => {
         if (!valid) return false;
@@ -234,11 +220,25 @@ export default {
     },
     async queryClass() {
       const res = await this.$store.dispatch(
-        "optiontypeselect",
-        "marketproductclass"
+          "optiontypeselect",
+          "marketproductclass"
       );
-      console.log("获取分类", res);
-      this.classData = res.data;
+      this.classData = []
+      this.classData = res.data.map(item => {
+        return {
+          value:item.value,
+          remarks:item.remarks,
+          subvalues:[]
+        }
+      })
+      res.data.forEach((item,index)=>{
+        this.classData[index].subvalues = item.subvalues.map(k=>{
+          return {
+            value:k,
+            remarks:k,
+          }
+        })
+      })
     },
     onClose() {
       this.dialogFormVisible = false;

+ 50 - 32
src/WebsiteManagement/marketproductMag/modules/edit.vue

@@ -81,22 +81,25 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item :label="$t('分类')" prop="class">
-                <el-select
-                  v-model="form.class"
-                  clearable
-                  :placeholder="$t('请选择分类')"
-                  @focus="queryClass"
+              <el-form-item :label="$t('分类')" prop="classmx">
+                <el-cascader
+                  ref="selectdep"
+                  size="small"
                   style="width: 100%"
-                >
-                  <el-option
-                    v-for="item in classData"
-                    :key="item.value"
-                    :label="$t(item.remarks)"
-                    :value="item.value"
-                  >
-                  </el-option>
-                </el-select>
+                  :placeholder="$t('分类')"
+                  v-model="form.classmx"
+                  :options="classData"
+                  filterable
+                  :props="{
+                    emitPath: false,
+                    expandTrigger: 'hover',
+                    checkStrictly: false,
+                    label: 'remarks',
+                    value: 'value',
+                    children: 'subvalues',
+                  }"
+                  clearable
+                ></el-cascader>
               </el-form-item>
             </el-col>
             <el-col :span="24">
@@ -184,12 +187,13 @@ export default {
         technicalparam: "",
         contentstr: "",
         isonsale: "1",
+        classmx: "",
       },
       rules: {
         itemname: [
           { required: true, message: this.$t("请选择商品"), trigger: "change" },
         ],
-        class: [
+        classmx: [
           { required: true, message: this.$t("请选择分类"), trigger: "change" },
         ],
       },
@@ -202,21 +206,22 @@ export default {
       this.$refs.materialdescription.innerHTML = this.form.materialdescription;
     if (this.$refs.contentstr)
       this.$refs.contentstr.innerHTML = this.form.contentstr;
-
-    this.$refs.upload.filelist = this.fileType
-      .fileList(this.data.attinfos)
-      .map((v) => {
-        v.progress = 100;
-        v.type = v.postfix;
-        v.uid = v.attachmentid;
-        return v;
-      });
+    if (!this.$refs.upload.filelist.length)
+      this.$refs.upload.filelist = this.fileType
+        .fileList(this.data.attinfos)
+        .map((v) => {
+          v.progress = 100;
+          v.type = v.postfix;
+          v.uid = v.attachmentid;
+          return v;
+        });
   },
   methods: {
     oploadIng(e) {
       this.disabled = e;
     },
     async editBtn() {
+      this.queryClass();
       const res = await this.$api.requested({
         id: "20240920101403",
         content: {
@@ -276,13 +281,26 @@ export default {
       this.form.itemno = data.itemno;
     },
     async queryClass() {
-      if (this.classData.length == 0) {
-        const res = await this.$store.dispatch(
-          "optiontypeselect",
-          "marketproductclass"
-        );
-        this.classData = res.data;
-      }
+      const res = await this.$store.dispatch(
+        "optiontypeselect",
+        "marketproductclass"
+      );
+      this.classData = [];
+      this.classData = res.data.map((item) => {
+        return {
+          value: item.value,
+          remarks: item.remarks,
+          subvalues: [],
+        };
+      });
+      res.data.forEach((item, index) => {
+        this.classData[index].subvalues = item.subvalues.map((k) => {
+          return {
+            value: k,
+            remarks: k,
+          };
+        });
+      });
     },
     onClose() {
       this.loading = false;

+ 8 - 0
src/components/newLayout/modules/header.vue

@@ -293,6 +293,7 @@ export default {
       this.languagename =
         this.langusge.find((v) => v.languagecode == this.nowType)
           .languagename || "简体中文";
+      localStorage.setItem("languagename", this.languagename);
       this.editorChangeLanguage();
     },
     async changeLanguage(type) {
@@ -300,6 +301,7 @@ export default {
       this.languagename =
         this.langusge.find((v) => v.languagecode == this.nowType)
           .languagename || "简体中文";
+      localStorage.setItem("languagename", this.languagename);
       localStorage.setItem("lang", type);
       localStorage.setItem("languagename", this.languagename);
       this.$nextTick(() => {
@@ -358,6 +360,12 @@ export default {
     
     this.languagename = localStorage.getItem("languagename") ||"简体中文";
 
+    try {
+      this.languagename = localStorage.getItem("languagename") || "简体中文";
+    } catch (error) {
+      this.languagename = "简体中文";
+    }
+    
     this.accountInfo = JSON.parse(sessionStorage.getItem("active_account"));
     this.accountList = JSON.parse(
       sessionStorage.getItem("account_list")

+ 0 - 6
src/components/newLayout/modules/headercopynew.vue

@@ -161,12 +161,6 @@ export default {
     changeAccount () {
       this.$router.push('/accounts')
     },
-    handleCommand (command) {
-      localStorage.setItem('lang',command)
-      this.basicData.query_userauth().then(()=>{
-              this.$router.go(0)
-      })
-
     },
     //跳转到应用,并设设置激活模块
     handelMenuAppClick (app,type) {

+ 5 - 0
src/views/login/login.vue

@@ -174,6 +174,11 @@ export default {
       this.checked = true;
     }
     this.languagelist();
+    try {
+      this.languagename = localStorage.getItem("languagename") || "简体中文";
+    } catch (error) {
+      this.languagename = "简体中文";
+    }
     /*this.qusetLanguage();*/
   },
   methods: {

部分文件因文件數量過多而無法顯示