浏览代码

目标管理-更改页面字段排序,以及修复一级分类和二级分类查询。

DongZ 1 年之前
父节点
当前提交
61e1c66977

+ 0 - 1
src/views/business/spd/target/AnnualSaleGoal.vue

@@ -1132,7 +1132,6 @@
         importData(formData).then((res) => {
           console.log('res', res);
           if (res.code == '200') {
-            // this.form.annualGoalMergeDetails.push.apply(this.form.annualGoalMergeDetails, res.data);
             this.annualSaleGoalDetailsList.push.apply(this.annualSaleGoalDetailsList, res.data);
             this.$message.success(res.msg);
           } else {

+ 49 - 47
src/views/business/spd/target/AnnualSaleGoalMerge.vue

@@ -43,6 +43,21 @@
           </el-form-item>
         </el-col>
         <el-col :span="6">
+          <el-form-item label="单据状态" prop="status">
+            <el-select v-model="queryParams.status" clearable>
+              <el-option v-for="dict in dict.type.sys_status" :key="dict.value" :label="dict.label" :value="dict.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="制单人" prop="creator">
+            <el-popover-select-v2 v-model="queryParams.creator" title="制单人" valueKey="name" referName="CONTACTS_PARAM"
+              :dataMapping="{ creatorCode: 'code', creator: 'name'}" :source.sync="queryParams" placeholder="请输入负责人">
+            </el-popover-select-v2>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
           <el-form-item label="部门" prop="dept">
             <el-popover-select-v2 v-model="queryParams.dept" title="部门" valueKey="name" referName="DEPT_PARAM"
               :dataMapping="{ deptId: 'id', dept: 'name'}" :source.sync="queryParams" placeholder="请输入部门"
@@ -50,6 +65,8 @@
             </el-popover-select-v2>
           </el-form-item>
         </el-col>
+      </el-row>
+      <el-row :gutter="20">
         <el-col :span="6">
           <el-form-item label="目标类型" prop="goalCategory">
             <el-select v-model="queryParams.goalCategory" placeholder="请输入目标类型">
@@ -61,43 +78,26 @@
           </el-form-item>
         </el-col>
         <el-col :span="6">
-          <el-form-item label="销售区域" prop="saleZone">
+          <el-form-item v-if="queryParams.goalCategory === '销售区域'" label="销售区域" prop="saleZone">
             <el-popover-select-v2 v-model="queryParams.saleZoneCode" title="销售区域" valueKey="name"
               referName="MK_SALESAREA_PARAM" :dataMapping="{ saleZoneCode: 'code', saleZone: 'name'}"
               :source.sync="queryParams" placeholder="请输入销售区域">
             </el-popover-select-v2>
           </el-form-item>
         </el-col>
-      </el-row>
-      <el-row :gutter="20">
         <el-col :span="6">
-          <el-form-item label="制单人" prop="creator">
-            <el-popover-select-v2 v-model="queryParams.creator" title="制单人" valueKey="name" referName="CONTACTS_PARAM"
-              :dataMapping="{ creatorCode: 'code', creator: 'name'}" :source.sync="queryParams" placeholder="请输入负责人">
-            </el-popover-select-v2>
-          </el-form-item>
-        </el-col>
-        <el-col :span="6">
-          <el-form-item label="一级分类" prop="oneLevelClassify">
+          <el-form-item v-if="queryParams.goalCategory === '一级分类'" label="一级分类" prop="oneLevelClassify">
             <el-select v-model="queryParams.oneLevelClassify" size="mini" clearable placeholder="请输入一级分类"
               @focus="chooseTreeReferForQuery('MATERIALCLASSIFY_PARAM', false, '一级物料分类')" style="width: 200px">
-              <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.id" />
+              <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.code" />
             </el-select>
           </el-form-item>
         </el-col>
         <el-col :span="6">
-          <el-form-item label="二级分类" prop="twoLevelClassify">
+          <el-form-item v-if="queryParams.goalCategory === '二级分类'" label="二级分类" prop="twoLevelClassify">
             <el-select v-model="queryParams.twoLevelClassify" size="mini" clearable placeholder="请输入二级分类"
               @focus="chooseTreeReferForQuery('MATERIALCLASSIFY_PARAM', false, '二级物料分类')" style="width: 200px">
-              <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.id" />
-            </el-select>
-          </el-form-item>
-        </el-col>
-        <el-col :span="6">
-          <el-form-item label="单据状态" prop="status">
-            <el-select size="mini" v-model="queryParams.status" clearable>
-              <el-option v-for="dict in dict.type.sys_status" :key="dict.value" :label="dict.label" :value="dict.value">
-              </el-option>
+              <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.code" />
             </el-select>
           </el-form-item>
         </el-col>
@@ -238,13 +238,13 @@
             <el-form-item v-if="form.goalCategory === '一级分类'" label="一级分类" prop="oneLevelClassify">
               <el-select v-model="form.oneLevelClassify" clearable
                 @focus="chooseTreeReferForMain('MATERIALCLASSIFY_PARAM', false, '一级物料分类')" style="width: 200px">
-                <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.id" />
+                <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.code" />
               </el-select>
             </el-form-item>
             <el-form-item v-if="form.goalCategory === '二级分类'" label="二级分类" prop="twoLevelClassify">
               <el-select v-model="form.twoLevelClassify" clearable
                 @focus="chooseTreeReferForMain('MATERIALCLASSIFY_PARAM', false, '二级物料分类')" style="width: 200px">
-                <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.id" />
+                <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.code" />
               </el-select>
             </el-form-item>
           </el-col>
@@ -1184,19 +1184,20 @@
         this.$refs.treeQuery.init(this.referCondition)
       },
       selectionsToInputForQuery(selection) {
-        this.classOptions.push(selection)
+        this.classOptions = selection;
         if (this.referCondition.title === '一级物料分类') {
-          if (selection.code.length !== 1) {
-            return this.$message.info('请在一级分类下选择')
+          if (this.classOptions[0].code.length > 2) {
+            return this.$message.info('请在一级分类下选择');
           }
-          this.queryParams.oneLevelClassifyCode = selection.code
-          this.queryParams.oneLevelClassify = selection.name
+          this.queryParams.oneLevelClassifyCode = selection[0].code
+          this.queryParams.oneLevelClassify = selection[0].name
         } else if (this.referCondition.title === '二级物料分类') {
-          if (selection.code.length !== 4) {
+          if (this.classOptions[0].code.lastIndexOf("-") == 3 || this.classOptions[0].code.indexOf("90") == 0) {
+            this.queryParams.twoLevelClassifyCode = selection[0].code
+            this.queryParams.twoLevelClassify = selection[0].name
+          } else {
             return this.$message.info('请在二级分类下选择')
           }
-          this.queryParams.twoLevelClassifyCode = selection.code
-          this.queryParams.twoLevelClassify = selection.name
         }
       },
       chooseTreeReferForMain(type, isPage, title) {
@@ -1206,19 +1207,20 @@
         this.$refs.treeMain.init(this.referCondition)
       },
       selectionsToInputForMain(selection) {
-        this.classOptions.push(selection)
+        this.classOptions = selection;
         if (this.referCondition.title === '一级物料分类') {
-          if (selection.code.length !== 1) {
-            return this.$message.info('请在一级分类下选择')
+          if (this.classOptions[0].code.length > 2) {
+            return this.$message.info('请在一级分类下选择');
           }
-          this.form.oneLevelClassifyCode = selection.code
-          this.form.oneLevelClassify = selection.name
+          this.form.oneLevelClassifyCode = selection[0].code
+          this.form.oneLevelClassify = selection[0].name
         } else if (this.referCondition.title === '二级物料分类') {
-          if (selection.code.length !== 4) {
+          if (this.classOptions[0].code.lastIndexOf("-") == 3 || this.classOptions[0].code.indexOf("90") == 0) {
+            this.form.twoLevelClassifyCode = selection[0].code
+            this.form.twoLevelClassify = selection[0].name
+          } else {
             return this.$message.info('请在二级分类下选择')
           }
-          this.form.twoLevelClassifyCode = selection.code
-          this.form.twoLevelClassify = selection.name
         }
       },
       chooseTreeReferForDetails(type, isPage, title, index) {
@@ -1229,9 +1231,9 @@
         this.$refs.treeDetails.init(this.referCondition)
       },
       selectionsToInputForDetails(selection) {
-        this.classOptions.push(selection)
+        this.classOptions = selection;
         if (this.referCondition.title === '一级物料分类') {
-          if (selection.code.length !== 1) {
+          if (this.classOptions[0].code.length > 2) {
             return this.$message.info('请在一级分类中选择')
           }
           if (selection.code !== this.annualSaleGoalMergeDetailsList[this.referCondition.index].oneLevelClassifyCode) {
@@ -1241,7 +1243,7 @@
           this.annualSaleGoalMergeDetailsList[this.referCondition.index].oneLevelClassifyCode = selection.code
           this.annualSaleGoalMergeDetailsList[this.referCondition.index].oneLevelClassify = selection.name
         } else if (this.referCondition.title === '二级物料分类') {
-          if (selection.code.length !== 4) {
+          if (this.classOptions[0].code.lastIndexOf("-") == 3 || this.classOptions[0].code.indexOf("90") == 0) {
             return this.$message.info('请在二级分类中选择')
           } else if (selection.code[0] !== this.annualSaleGoalMergeDetailsList[this.referCondition.index]
             .oneLevelClassifyCode) {
@@ -1370,7 +1372,7 @@
       // 合并数据
       clickMerge() {
         if (this.form.id !== null) {
-          this.form.oldAnnualGoalMergeDetailsList = JSON.parse(JSON.stringify(this.form.annualGoalMergeDetailsList))
+          this.form.oldAnnualGoalMergeDetailsList = JSON.parse(JSON.stringify(this.annualGoalMergeDetailsList))
         }
         if (this.activeName !== 'annualSaleGoalMergeDetails') {
           return this.$message.error('当前标签不是年销售目标合并明细')
@@ -1396,9 +1398,9 @@
         mergeAnnualSaleMergeDetails(query).then(response => {
           console.log(response);
           if (response.data.consolidatedDetail.length > 0) {
-            for (const consolidatedDetail of response.data.consolidatedDetail) {
-              consolidatedDetail.totalGoal = consolidatedDetail.totalGoal.toFixed(2)
-            }
+            // for (const consolidatedDetail of response.data.consolidatedDetail) {
+            //   consolidatedDetail.totalGoal = consolidatedDetail.totalGoal.toFixed(2)
+            // }
             this.annualSaleGoalMergeDetailsList = response.data.consolidatedDetail
             this.computeTotal()
           } else {

+ 43 - 39
src/views/business/spd/target/MonthGoalMerge.vue

@@ -66,6 +66,14 @@
       </el-row>
       <el-row :gutter="20">
         <el-col :span="6">
+          <el-form-item label="单据状态" prop="status">
+            <el-select v-model="queryParams.status" clearable>
+              <el-option v-for="dict in dict.type.sys_status" :key="dict.value" :label="dict.label" :value="dict.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
           <el-form-item label="目标类型" prop="goalCategory">
             <el-select v-model="queryParams.goalCategory" placeholder="请输入目标类型" @change="changeGoalCategoryQuery"
               @keyup.enter.native="handleQuery">
@@ -87,23 +95,15 @@
             </el-popover-select-v2>
           </el-form-item>
           <el-form-item v-if="queryParams.goalCategory === '一级分类'" label="一级分类" prop="oneLevelClassify">
-            <el-select v-model="queryParams.oneLevelClassify" size="mini" clearable
+            <el-select v-model="queryParams.oneLevelClassify" clearable
               @focus="chooseTreeReferForQuery('MATERIALCLASSIFY_PARAM', false, '一级物料分类')" style="width: 200px">
-              <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.id" />
+              <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.code" />
             </el-select>
           </el-form-item>
-          <el-form-item v-if="queryParams.goalCategory === '二级分类'" label="二级分类" prop="custom">
-            <el-select v-model="queryParams.twoLevelClassify" size="mini" clearable
+          <el-form-item v-if="queryParams.goalCategory === '二级分类'" label="二级分类" prop="twoLevelClassify">
+            <el-select v-model="queryParams.twoLevelClassify" clearable
               @focus="chooseTreeReferForQuery('MATERIALCLASSIFY_PARAM', false, '二级物料分类')" style="width: 200px">
-              <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.id" />
-            </el-select>
-          </el-form-item>
-        </el-col>
-        <el-col :span="6">
-          <el-form-item label="单据状态" prop="status">
-            <el-select size="mini" v-model="queryParams.status" clearable>
-              <el-option v-for="dict in dict.type.sys_status" :key="dict.value" :label="dict.label" :value="dict.value">
-              </el-option>
+              <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.code" />
             </el-select>
           </el-form-item>
         </el-col>
@@ -246,15 +246,15 @@
               </el-popover-select-v2>
             </el-form-item>
             <el-form-item v-if="form.goalCategory === '一级分类'" label="一级分类" prop="oneLevelClassify">
-              <el-select v-model="form.oneLevelClassify" size="mini" clearable
+              <el-select v-model="form.oneLevelClassify" clearable
                 @focus="chooseTreeReferForMain('MATERIALCLASSIFY_PARAM', false, '一级物料分类')" style="width: 200px">
-                <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.id" />
+                <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.code" />
               </el-select>
             </el-form-item>
-            <el-form-item v-if="form.goalCategory === '二级分类'" label="二级分类" prop="custom">
-              <el-select v-model="form.twoLevelClassify" size="mini" clearable
+            <el-form-item v-if="form.goalCategory === '二级分类'" label="二级分类" prop="twoLevelClassify">
+              <el-select v-model="form.twoLevelClassify" clearable
                 @focus="chooseTreeReferForMain('MATERIALCLASSIFY_PARAM', false, '二级物料分类')" style="width: 200px">
-                <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.id" />
+                <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.code" />
               </el-select>
             </el-form-item>
           </el-col>
@@ -335,7 +335,7 @@
                   <el-select v-model="monthGoalMergeDetailsList[scope.$index].oneLevelClassify" size="mini" clearable
                     @focus="chooseTreeReferForDetails('MATERIALCLASSIFY_PARAM', false, '一级物料分类', scope.$index)"
                     style="width: 200px" disabled>
-                    <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.id" />
+                    <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.code" />
                   </el-select>
                 </template>
               </el-table-column>
@@ -344,7 +344,7 @@
                   <el-select v-model="monthGoalMergeDetailsList[scope.$index].twoLevelClassify" size="mini" clearable
                     @focus="chooseTreeReferForDetails('MATERIALCLASSIFY_PARAM', false, '二级物料分类', scope.$index)"
                     style="width: 200px" disabled>
-                    <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.id" />
+                    <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.code" />
                   </el-select>
                 </template>
               </el-table-column>
@@ -991,41 +991,45 @@
         this.$refs.treeDetails.init(this.referCondition)
       },
       selectionsToInputForQuery(selection) {
-        this.classOptions.push(selection)
+        this.classOptions = selection;
         if (this.referCondition.title === '一级物料分类') {
-          if (selection.code.length !== 1) {
-            return this.$message.info('请在一级分类下选择')
+          if (this.classOptions[0].code.length > 2) {
+            return this.$message.info('请在一级分类下选择');
           }
-          this.queryParams.oneLevelClassifyCode = selection.code
-          this.queryParams.oneLevelClassify = selection.name
+          this.queryParams.oneLevelClassifyCode = selection[0].code
+          this.queryParams.oneLevelClassify = selection[0].name
+          console.log(this.queryParams.oneLevelClassifyCode, 'this.queryParams.oneLevelClassifyCode')
+          console.log(this.queryParams.oneLevelClassify, 'this.queryParams.oneLevelClassify')
         } else if (this.referCondition.title === '二级物料分类') {
-          if (selection.code.length !== 4) {
+          if (this.classOptions[0].code.lastIndexOf("-") == 3 || this.classOptions[0].code.indexOf("90") == 0) {
+            this.queryParams.twoLevelClassifyCode = selection[0].code
+            this.queryParams.twoLevelClassify = selection[0].name
+          } else {
             return this.$message.info('请在二级分类下选择')
           }
-          this.queryParams.twoLevelClassifyCode = selection.code
-          this.queryParams.twoLevelClassify = selection.name
         }
       },
       selectionsToInputForMain(selection) {
-        this.classOptions.push(selection)
+        this.classOptions = selection;
         if (this.referCondition.title === '一级物料分类') {
-          if (selection.code.length !== 1) {
-            return this.$message.info('请在一级分类下选择')
+          if (this.classOptions[0].code.length > 2) {
+            return this.$message.info('请在一级分类下选择');
           }
-          this.form.oneLevelClassifyCode = selection.code
-          this.form.oneLevelClassify = selection.name
+          this.form.oneLevelClassifyCode = selection[0].code
+          this.form.oneLevelClassify = selection[0].name
         } else if (this.referCondition.title === '二级物料分类') {
-          if (selection.code.length !== 4) {
+          if (this.classOptions[0].code.lastIndexOf("-") == 3 || this.classOptions[0].code.indexOf("90") == 0) {
+            this.form.twoLevelClassifyCode = selection[0].code
+            this.form.twoLevelClassify = selection[0].name
+          } else {
             return this.$message.info('请在二级分类下选择')
           }
-          this.form.twoLevelClassifyCode = selection.code
-          this.form.twoLevelClassify = selection.name
         }
       },
       selectionsToInputForDetails(selection) {
-        this.classOptions.push(selection)
+        this.classOptions = selection;
         if (this.referCondition.title === '一级物料分类') {
-          if (selection.code.length !== 1) {
+          if (this.classOptions[0].code.length > 2) {
             return this.$message.info('请在一级分类中选择')
           }
           if (selection.code !== this.monthGoalMergeDetailsList[this.referCondition.index].oneLevelClassifyCode) {
@@ -1035,7 +1039,7 @@
           this.monthGoalMergeDetailsList[this.referCondition.index].oneLevelClassifyCode = selection.code
           this.monthGoalMergeDetailsList[this.referCondition.index].oneLevelClassify = selection.name
         } else if (this.referCondition.title === '二级物料分类') {
-          if (selection.code.length !== 4) {
+          if (this.classOptions[0].code.lastIndexOf("-") == 3 || this.classOptions[0].code.indexOf("90") == 0) {
             return this.$message.info('请在二级分类中选择')
           } else if (selection.code[0] !== this.monthGoalMergeDetailsList[this.referCondition.index]
             .oneLevelClassifyCode) {

+ 0 - 1
src/views/business/spd/target/MonthReturnGoal.vue

@@ -1044,7 +1044,6 @@
         importData(formData).then((res) => {
           console.log('res', res);
           if (res.code == '200') {
-            // this.form.monthReturnGoalDetailsList.push.apply(this.form.monthReturnGoalDetailsList, res.data);
             this.monthReturnGoalDetailsList.push.apply(this.monthReturnGoalDetailsList, res.data);
             this.$message.success(res.msg);
           } else {