浏览代码

Merge branch 'dev' into 'purchaseDev'

Dev

See merge request new-business/drp-web!555
黄梓星 1 年之前
父节点
当前提交
2249ac0cd4

+ 9 - 0
src/api/business/spd/goal_management/monthSaleGoalDetails.js

@@ -53,4 +53,13 @@ export function importData(data) {
       'Content-Type': 'multipart/form-data'
     }
   })
+}
+
+//查询物料
+export function getMaterialRangeList(data) {
+  return request({
+    url: `/goal_management/monthSaleGoalDetails/getMaterialRangeList`,
+    method: 'post',
+    data: data
+  })
 }

+ 5 - 4
src/views/business/spd/target/AnnualSaleGoalMerge.vue

@@ -213,7 +213,7 @@
           </el-col>
           <el-col :span="6">
             <el-form-item label="目标分类" prop="goalCategory">
-              <el-select v-model="form.goalCategory" placeholder="请选择" @change="changeGoalCategoryForm">
+              <el-select :disabled="this.openStatus == 'edit'" v-model="form.goalCategory" placeholder="请选择" @change="changeGoalCategoryForm">
                 <el-option v-for="item in goalCategoryList" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
@@ -1026,7 +1026,7 @@
       },
       /** 新增按钮操作 */
       handleAdd() {
-        this.openStatus = 'edit';
+        this.openStatus = 'add';
         this.reset();
         this.annualSaleGoalMergeDetailsList = []
         this.areaDetailList = []
@@ -1408,7 +1408,7 @@
       // 合并数据
       clickMerge() {
         if (this.form.id !== null) {
-          this.form.oldAnnualGoalMergeDetailsList = JSON.parse(JSON.stringify(this.annualGoalMergeDetailsList))
+          this.form.oldAnnualGoalMergeDetailsList = JSON.parse(JSON.stringify(this.form.annualGoalMergeDetailsList))
         }
         if (this.activeName !== 'annualSaleGoalMergeDetails') {
           return this.$message.error('当前标签不是年销售目标合并明细')
@@ -1431,8 +1431,9 @@
             return this.$message.error('请输入二级分类')
           }
         }
+        console.log(query, 'query')
         mergeAnnualSaleMergeDetails(query).then(response => {
-          console.log(response);
+          console.log(response, 'response');
           if (response.data.consolidatedDetail.length > 0) {
             // for (const consolidatedDetail of response.data.consolidatedDetail) {
             //   consolidatedDetail.totalGoal = consolidatedDetail.totalGoal.toFixed(2)

+ 5 - 5
src/views/business/spd/target/MonthGoalMerge.vue

@@ -223,7 +223,7 @@
           <el-col :span="6">
             <el-form-item label="目标类型" prop="goalCategory">
               <el-select v-model="form.goalCategory" placeholder="请输入目标类型" @change="changeGoalCategoryForm"
-                @keyup.enter.native="handleQuery">
+                @keyup.enter.native="handleQuery" :disabled="this.openStatus == 'edit'">
                 <el-option v-for="item in goalCategoryList" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
@@ -233,7 +233,7 @@
         <el-row :gutter="20">
           <el-col :span="6">
             <el-form-item label="目标合计(元)" prop="goalSum" label-width="120px">
-              <el-input v-model="form.goalSum" placeholder="目标值合计自动计算" disabled/>
+              <el-input v-model="form.goalSum" placeholder="目标值合计自动计算" disabled />
             </el-form-item>
           </el-col>
           <el-col :span="6">
@@ -838,7 +838,7 @@
       },
       /** 新增按钮操作 */
       handleAdd() {
-        this.openStatus = 'edit';
+        this.openStatus = 'add';
         this.reset();
         this.monthGoalMergeDetailsList = []
         this.customGoalSumList = []
@@ -1243,7 +1243,7 @@
       // 合并数据
       clickMerge() {
         if (this.form.id !== null) {
-          this.form.oldMonthMergeDetailsList = JSON.parse(JSON.stringify(this.monthGoalMergeDetailsList))
+          this.form.oldMonthMergeDetailsList = JSON.parse(JSON.stringify(this.form.monthMergeDetailsList))
         }
         if (this.activeName !== 'monthGoalMergeDetails') {
           return this.$message.error('当前标签不是月销售目标合并明细')
@@ -1270,7 +1270,7 @@
           }
         }
         mergeMonthSaleMergeDetails(query).then(response => {
-          console.log(response);
+          console.log(response, 'response');
           if (response.data.monthGoalMergeDetails.length > 0) {
             this.monthGoalMergeDetailsList = response.data.monthGoalMergeDetails
             this.computeTotal()

+ 56 - 2
src/views/business/spd/target/MonthSaleGoal.vue

@@ -224,9 +224,21 @@
               </el-select>
             </el-form-item>
           </el-col>
+          <el-col :span="6">
+            <el-form-item label="时间范围" prop="materialRange">
+              <el-select v-model="materialRange" placeholder="请选择获取物料的时间范围">
+                <el-option v-for="item in dateOptions" :key="item.value" :label="item.label" :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
         </el-row>
         <div>
-          <el-row :gutter="10" class="mb8" style="margin-left: 75%">
+          <el-row :gutter="10" class="mb8" style="margin-left: 67%">
+            <el-col :span="1.5">
+              <el-button type="primary" icon="el-icon-search" size="mini" @click="getMaterialList">查询物料
+              </el-button>
+            </el-col>
             <el-col :span="1.5">
               <el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleTemplateDownload">模板下载
               </el-button>
@@ -435,7 +447,8 @@
   import {
     getMonthSaleGoalDetails,
     delMonthSaleGoalDetails,
-    importData
+    importData,
+    getMaterialRangeList
   } from "@/api/business/spd/goal_management/monthSaleGoalDetails"
   import {
     getToken
@@ -651,6 +664,21 @@
         },
         //打开状态
         openStatus: null,
+        //物料来源时间
+        dateOptions: [{
+          value: '0',
+          label: '近一个月'
+        }, {
+          value: '1',
+          label: '近三个月'
+        }, {
+          value: '2',
+          label: '近半年'
+        }, {
+          value: '3',
+          label: '近一年'
+        }],
+        materialRange: '',
       };
     },
     created() {
@@ -1166,6 +1194,32 @@
           this.loading = false;
         })
       },
+      //查询该时间范围内对应客户的物料数据
+      getMaterialList() {
+        this.loading = true;
+        let data = {
+          customCode: this.form.customCode,
+          type: this.materialRange
+        }
+        console.log(data, 'data')
+        getMaterialRangeList(data).then((res) => {
+          console.log(res, 'res')
+          this.monthSaleGoalDetailsList = res;
+          for (const item of this.monthSaleGoalDetailsList) {
+            item.saleOrg = this.$store.state.user.orgName,
+            item.saleZone = this.form.saleZone,
+            item.custom = this.form.custom,
+            item.dept = this.form.dept,
+            item.creator = this.form.creator
+            item.monthly = new Date().getFullYear().toString() + '-' + (new Date().getMonth() + 1).toString().padStart(2,
+            '0')
+          }
+        }).catch((e) => {
+          this.$message.error(e.message)
+        }).finally((e) => {
+          this.loading = false;
+        })
+      }
     }
   }