Pārlūkot izejas kodu

lizhuo merges Goal Management into dev at 2023-8-7 17:00

002637 1 gadu atpakaļ
vecāks
revīzija
f12b0d6a74

+ 92 - 6
src/views/business/spd/goal_management/AnnualSaleGoal.vue

@@ -41,6 +41,9 @@
           <el-form-item>
             <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
             <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+            <el-tooltip class="item" effect="dark" :content="showSearch?'隐藏搜索':'显示搜索'" placement="top">
+              <el-button type="warning" :icon="showSearch?'el-icon-caret-top':'el-icon-caret-bottom'" circle @click="showSearch = !showSearch"></el-button>
+            </el-tooltip>
           </el-form-item>
         </el-col>
       </el-row>
@@ -165,7 +168,6 @@
           </el-dropdown-menu>
         </el-dropdown>
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
     <el-table v-loading="loading" :data="annualSaleGoalList" @selection-change="handleSelectionChange">
@@ -302,13 +304,16 @@
         </el-row>
       </el-form>
       <div id="addDetails">
-        <el-row :gutter="10" class="mb8" style="margin-left: 87%">
+        <el-row :gutter="10" class="mb8" style="margin-left: 80%">
           <el-col :span="1.5">
             <el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport">导入明细</el-button>
           </el-col>
           <el-col :span="1.5">
             <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddDetails">增行</el-button>
           </el-col>
+          <el-col :span="1.5">
+            <el-button type="primary" plain icon="el-icon-edit-outline" size="mini" @click="dialogUpdateMore.dialogFormVisible = true">批量修改</el-button>
+          </el-col>
         </el-row>
         <el-tabs v-model="activeName">
           <el-tab-pane label="年销售目标填报明细" name="annualSaleGoalDetails">
@@ -490,6 +495,46 @@
         <el-button @click="upload.open = false">取 消</el-button>
       </div>
     </el-dialog>
+    <!-- 批量修改对话框-->
+    <el-dialog title="批量修改" width="30%" :visible.sync="dialogUpdateMore.dialogFormVisible" append-to-body @closed="resetDialogUpdateMore">
+      <el-form>
+        <el-form-item label="修改项" label-width="100px">
+          <el-select @change="changeDialogData" v-model="dialogUpdateMore.updateName" placeholder="请选择需要批量修改的字段">
+            <el-option v-for="item in dialogUpdateMore.optionList" :key="item.value" :label="item.label" :value="item.value"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="修改值" label-width="100px">
+          <el-popover-select-v2 v-if="dialogUpdateMore.updateName === 1"
+                                v-model="dialogUpdateMore.updateData" title="销售组织" valueKey="name"
+                                referName="ORG_PARAM"
+                                :dataMapping="{updateData: 'name'}"
+                                :source.sync="dialogUpdateMore" placeholder="请输入销售组织">
+          </el-popover-select-v2>
+          <el-popover-select-v2 v-else-if="dialogUpdateMore.updateName === 2"
+                                v-model="dialogUpdateMore.updateData" title="销售区域" valueKey="name"
+                                referName="MK_SALESAREA_PARAM"
+                                :dataMapping="{updateData: 'name'}"
+                                :source.sync="dialogUpdateMore" placeholder="请输入销售区域">
+          </el-popover-select-v2>
+          <el-popover-select-v2 v-else-if="dialogUpdateMore.updateName === 3"
+                                v-model="dialogUpdateMore.updateData" title="客户" valueKey="name"
+                                referName="CUSTOMER_PARAM"
+                                :dataMapping="{updateData: 'name'}"
+                                :source.sync="dialogUpdateMore" placeholder="请输入客户">
+          </el-popover-select-v2>
+          <el-popover-select-v2 v-else-if="dialogUpdateMore.updateName === 4"
+                                v-model="dialogUpdateMore.updateData" title="制单人" valueKey="name"
+                                referName="CONTACTS_PARAM"
+                                :dataMapping="{updateData: 'name'}"
+                                :source.sync="dialogUpdateMore" placeholder="请输入制单人">
+          </el-popover-select-v2>
+          <el-input v-else placeholder="请输入修改项" disabled></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="dialogUpdateMoreSave">确 定</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -660,7 +705,13 @@ export default {
         // 上传的地址
         url: process.env.VUE_APP_BASE_API + "/goal_management/annualSaleGoal/importData"
       },
-      activeName: 'annualSaleGoalDetails'
+      activeName: 'annualSaleGoalDetails',
+      dialogUpdateMore: {
+        updateName: null,
+        dialogFormVisible: false,
+        updateData: null,
+        optionList:[{value: 1, label: '销售组织'}, {value: 2, label: '销售区域'}, {value: 3, label: '客户'}, {value: 4, label: '制单人'},]
+      }
     };
   },
   created() {
@@ -962,11 +1013,13 @@ export default {
     justiceDetailsList() {
       const arr = JSON.parse(JSON.stringify(this.annualSaleGoalDetailsList))
       for (const element of arr) {
-        if (element.saleOrg === null || element.saleZone === null || element.custom === null || element.creator === null || element.oneLevelClassify === null) {
-          return false
+        const flag1 = (element.saleZone !== null) && (element.saleOrg !== null) && (element.custom !== null) && (element.creator !== null) && (element.materialCode !== null) && (element.material !== null)
+        const flag2 = (element.saleOrg !== undefined) && (element.saleZone !== undefined) && (element.custom !== undefined) && (element.creator !== undefined) && (element.materialCode != undefined) && (element.material !== undefined)
+        if (flag1 && flag2) {
+          return true
         }
       }
-      return true
+      return false
     },
     handleCommand(command) {
       // 执行对应的功能
@@ -1034,6 +1087,39 @@ export default {
       obj.twoLevelClassifyCode = twoArray[1]
       obj.twoLevelClassify = twoArray[0]
       console.log(obj);
+    },
+    // 批量修改对话框的方法
+    dialogUpdateMoreSave() {
+      console.log(this.dialogUpdateMore);
+      if (this.dialogUpdateMore.updateData === null) {
+        return this.$message.error('请输入修改值')
+      }
+      const array = JSON.parse(JSON.stringify(this.annualSaleGoalDetailsList))
+      if (array.length !== 0) {
+        let condition = this.dialogUpdateMore.updateName
+        for (const element of array) {
+          if (condition === 1) {
+            element.saleOrg = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
+          } else if (condition === 2) {
+            element.saleZone = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
+          } else if (condition === 3) {
+            element.custom = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
+          } else if (condition === 4) {
+            element.creator = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
+          }
+        }
+      }
+      this.annualSaleGoalDetailsList = array
+      this.dialogUpdateMore.dialogFormVisible = !this.dialogUpdateMore.dialogFormVisible
+      this.dialogUpdateMore.updateData = null
+      this.dialogUpdateMore.updateName = null
+    },
+    changeDialogData() {
+      this.dialogUpdateMore.updateData = null
+    },
+    resetDialogUpdateMore() {
+      this.dialogUpdateMore.updateName = null
+      this.dialogUpdateMore.updateData = null
     }
   }
 };

+ 3 - 1
src/views/business/spd/goal_management/AnnualSaleGoalMerge.vue

@@ -32,6 +32,9 @@
           <el-form-item>
             <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
             <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+            <el-tooltip class="item" effect="dark" :content="showSearch?'隐藏搜索':'显示搜索'" placement="top">
+              <el-button type="warning" :icon="showSearch?'el-icon-caret-top':'el-icon-caret-bottom'" circle @click="showSearch = !showSearch"></el-button>
+            </el-tooltip>
           </el-form-item>
         </el-col>
       </el-row>
@@ -178,7 +181,6 @@
           </el-dropdown-menu>
         </el-dropdown>
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
     <el-table v-loading="loading" :data="annualSaleGoalMergeList" @selection-change="handleSelectionChange">

+ 3 - 2
src/views/business/spd/goal_management/MonthGoalMerge.vue

@@ -32,6 +32,9 @@
           <el-form-item>
             <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
             <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+            <el-tooltip class="item" effect="dark" :content="showSearch?'隐藏搜索':'显示搜索'" placement="top">
+              <el-button type="warning" :icon="showSearch?'el-icon-caret-top':'el-icon-caret-bottom'" circle @click="showSearch = !showSearch"></el-button>
+            </el-tooltip>
           </el-form-item>
         </el-col>
       </el-row>
@@ -191,7 +194,6 @@
           </el-dropdown-menu>
         </el-dropdown>
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
     <el-table v-loading="loading" :data="monthGoalMergeList" @selection-change="handleSelectionChange">
@@ -1193,7 +1195,6 @@ export default {
       this.$confirm('确认关闭?')
         .then(_ => {
           done();
-          this.resetQuery()
         })
         .catch(_ => {});
     },

+ 108 - 6
src/views/business/spd/goal_management/MonthReturnGoal.vue

@@ -41,6 +41,9 @@
           <el-form-item>
             <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
             <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+            <el-tooltip class="item" effect="dark" :content="showSearch?'隐藏搜索':'显示搜索'" placement="top">
+              <el-button type="warning" :icon="showSearch?'el-icon-caret-top':'el-icon-caret-bottom'" circle @click="showSearch = !showSearch"></el-button>
+            </el-tooltip>
           </el-form-item>
         </el-col>
       </el-row>
@@ -163,7 +166,6 @@
           </el-dropdown-menu>
         </el-dropdown>
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
     <el-table v-loading="loading" :data="monthReturnGoalList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
@@ -307,13 +309,16 @@
         </el-row>
       </el-form>
       <div>
-        <el-row :gutter="10" class="mb8" style="margin-left: 87%">
+        <el-row :gutter="10" class="mb8" style="margin-left: 80%">
           <el-col :span="1.5">
             <el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport">导入明细</el-button>
           </el-col>
           <el-col :span="1.5">
             <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddDetails">增行</el-button>
           </el-col>
+          <el-col :span="1.5">
+            <el-button type="primary" plain icon="el-icon-edit-outline" size="mini" @click="dialogUpdateMore.dialogFormVisible = true">批量修改</el-button>
+          </el-col>
         </el-row>
         <el-tabs v-model="activeName">
           <el-tab-pane label="月回款目标明细" name="monthReturnGoalDetails">
@@ -431,6 +436,58 @@
       </div>
     </el-dialog>
 
+    <!-- 批量修改对话框-->
+    <el-dialog title="批量修改" width="30%" :visible.sync="dialogUpdateMore.dialogFormVisible" append-to-body @closed="resetDialogUpdateMore">
+      <el-form>
+        <el-form-item label="修改项" label-width="100px">
+          <el-select @change="changeDialogData" v-model="dialogUpdateMore.updateName" placeholder="请选择需要批量修改的字段">
+            <el-option v-for="item in dialogUpdateMore.optionList" :key="item.value" :label="item.label" :value="item.value"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="修改值" label-width="100px">
+          <el-popover-select-v2 v-if="dialogUpdateMore.updateName === 1"
+                                v-model="dialogUpdateMore.updateData" title="销售组织" valueKey="name"
+                                referName="ORG_PARAM"
+                                :dataMapping="{updateData: 'name'}"
+                                :source.sync="dialogUpdateMore" placeholder="请输入销售组织">
+          </el-popover-select-v2>
+          <el-popover-select-v2 v-else-if="dialogUpdateMore.updateName === 2"
+                                v-model="dialogUpdateMore.updateData" title="销售区域" valueKey="name"
+                                referName="MK_SALESAREA_PARAM"
+                                :dataMapping="{updateData: 'name'}"
+                                :source.sync="dialogUpdateMore" placeholder="请输入销售区域">
+          </el-popover-select-v2>
+          <el-popover-select-v2 v-else-if="dialogUpdateMore.updateName === 3"
+                                v-model="dialogUpdateMore.updateData" title="客户" valueKey="name"
+                                referName="CUSTOMER_PARAM"
+                                :dataMapping="{updateData: 'name'}"
+                                :source.sync="dialogUpdateMore" placeholder="请输入客户">
+          </el-popover-select-v2>
+          <el-popover-select-v2 v-else-if="dialogUpdateMore.updateName === 4"
+                                v-model="dialogUpdateMore.updateData" title="部门" valueKey="name"
+                                referName="DEPT_PARAM"
+                                :dataMapping="{updateData: 'name'}"
+                                :source.sync="dialogUpdateMore" placeholder="请输入部门">
+          </el-popover-select-v2>
+          <el-popover-select-v2 v-else-if="dialogUpdateMore.updateName === 5"
+                                v-model="dialogUpdateMore.updateData" title="制单人" valueKey="name"
+                                referName="CONTACTS_PARAM"
+                                :dataMapping="{updateData: 'name'}"
+                                :source.sync="dialogUpdateMore" placeholder="请输入制单人">
+          </el-popover-select-v2>
+          <el-date-picker v-else-if="dialogUpdateMore.updateName === 6"
+                          v-model="dialogUpdateMore.updateData" value-format="yyyy-MM"
+                          type="month"
+                          placeholder="选择月">
+          </el-date-picker>
+          <el-input v-else placeholder="请输入修改项" disabled></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="dialogUpdateMoreSave">确 定</el-button>
+      </div>
+    </el-dialog>
+
   </div>
 </template>
 
@@ -584,6 +641,12 @@ export default {
         headers: { Authorization: "Bearer " + getToken() },
         // 上传的地址
         url: process.env.VUE_APP_BASE_API + "/mk/monthReturnGoal/importData"
+      },
+      dialogUpdateMore: {
+        updateName: null,
+        dialogFormVisible: false,
+        updateData: null,
+        optionList:[{value: 1, label: '销售组织'}, {value: 2, label: '销售区域'}, {value: 3, label: '客户'}, {value: 4, label: '部门'}, {value: 5, label: '制单人'}, {value: 6, label: '月份'}]
       }
     }
   },
@@ -735,7 +798,7 @@ export default {
     /** 提交按钮 */
     submitForm() {
       if (!this.justiceDetailsList()) {
-        return this.$message.error('子表中有必填字段未填')
+        return this.$message.error('子表中有必填字段未填,或者目标值为0')
       }
       this.$refs["form"].validate(valid => {
         if (valid) {
@@ -855,11 +918,13 @@ export default {
     justiceDetailsList() {
       const arr = JSON.parse(JSON.stringify(this.monthReturnGoalDetailsList))
       for (const element of arr) {
-        if (element.saleOrg === null || element.saleZone === 'null' || element.custom === null || element.dept === null || element.creator === null || element.monthly === null || element.goalSum === null) {
-          return false
+        const flag1 = (element.saleOrg !== null) && (element.saleZone !== null) && (element.custom !== null) && (element.dept !== null) && (element.creator !== null) && (element.monthly !== null) && (element.goalSum !== 0)
+        const flag2 = (element.saleOrg !== undefined) && (element.saleZone !== undefined) && (element.custom !== undefined) && (element.dept !== undefined) && (element.creator !== undefined) && (element.monthly !== undefined)
+        if (flag1 && flag2) {
+          return true
         }
       }
-      return true
+      return false
     },
     handleCommand(command) {
       // 执行对应的功能
@@ -922,6 +987,43 @@ export default {
     // 提交上传文件
     submitFileForm() {
       this.$refs.upload.submit();
+    },
+    // 批量修改对话框的方法
+    dialogUpdateMoreSave() {
+      console.log(this.dialogUpdateMore);
+      if (this.dialogUpdateMore.updateData === null) {
+        return this.$message.error('请输入修改值')
+      }
+      const array = JSON.parse(JSON.stringify(this.monthReturnGoalDetailsList))
+      if (array.length !== 0) {
+        let condition = this.dialogUpdateMore.updateName
+        for (const element of array) {
+          if (condition === 1) {
+            element.saleOrg = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
+          } else if (condition === 2) {
+            element.saleZone = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
+          } else if (condition === 3) {
+            element.custom = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
+          } else if (condition === 4) {
+            element.dept = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
+          } else if (condition === 5) {
+            element.creator = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
+          } else if (condition === 6) {
+            element.monthly = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
+          }
+        }
+      }
+      this.monthReturnGoalDetailsList = array
+      this.dialogUpdateMore.dialogFormVisible = !this.dialogUpdateMore.dialogFormVisible
+      this.dialogUpdateMore.updateData = null
+      this.dialogUpdateMore.updateName = null
+    },
+    changeDialogData() {
+      this.dialogUpdateMore.updateData = null
+    },
+    resetDialogUpdateMore() {
+      this.dialogUpdateMore.updateName = null
+      this.dialogUpdateMore.updateData = null
     }
   }
 }

+ 3 - 1
src/views/business/spd/goal_management/MonthReturnMerge.vue

@@ -32,6 +32,9 @@
         <el-form-item>
           <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
           <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+          <el-tooltip class="item" effect="dark" :content="showSearch?'隐藏搜索':'显示搜索'" placement="top">
+            <el-button type="warning" :icon="showSearch?'el-icon-caret-top':'el-icon-caret-bottom'" circle @click="showSearch = !showSearch"></el-button>
+          </el-tooltip>
         </el-form-item>
       </el-col>
     </el-row>
@@ -167,7 +170,6 @@
         </el-dropdown-menu>
       </el-dropdown>
     </el-col>
-    <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
   </el-row>
   <el-table v-loading="loading" :data="monthReturnMergeList" @selection-change="handleSelectionChange">
     <el-table-column type="selection" width="55" align="center"/>

+ 113 - 7
src/views/business/spd/goal_management/MonthSaleGoal.vue

@@ -41,6 +41,9 @@
           <el-form-item>
             <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
             <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+            <el-tooltip class="item" effect="dark" :content="showSearch?'隐藏搜索':'显示搜索'" placement="top">
+              <el-button type="warning" :icon="showSearch?'el-icon-caret-top':'el-icon-caret-bottom'" circle @click="showSearch = !showSearch"></el-button>
+            </el-tooltip>
           </el-form-item>
         </el-col>
       </el-row>
@@ -164,7 +167,6 @@
           </el-dropdown-menu>
         </el-dropdown>
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
     <el-table v-loading="loading" :data="monthSaleGoalList" @selection-change="handleSelectionChange">
@@ -309,13 +311,16 @@
         </el-row>
       </el-form>
       <div>
-        <el-row :gutter="10" class="mb8" style="margin-left: 87%">
+        <el-row :gutter="10" class="mb8" style="margin-left: 80%">
           <el-col :span="1.5">
             <el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport">导入明细</el-button>
           </el-col>
           <el-col :span="1.5">
             <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddDetails">增行</el-button>
           </el-col>
+          <el-col :span="1.5">
+            <el-button type="primary" plain icon="el-icon-edit-outline" size="mini" @click="dialogUpdateMore.dialogFormVisible = true">批量修改</el-button>
+          </el-col>
         </el-row>
         <el-tabs v-model="activeName">
           <el-tab-pane label="月销售目标明细" name="monthSaleGoalDetails">
@@ -462,6 +467,60 @@
         <el-button @click="upload.open = false">取 消</el-button>
       </div>
     </el-dialog>
+    <!-- 批量修改对话框-->
+    <el-dialog title="批量修改" width="30%" :visible.sync="dialogUpdateMore.dialogFormVisible" append-to-body @closed="resetDialogUpdateMore">
+      <el-form>
+        <el-form-item label="修改项" label-width="100px">
+          <el-select @change="changeDialogData" v-model="dialogUpdateMore.updateName" placeholder="请选择需要批量修改的字段">
+            <el-option v-for="item in dialogUpdateMore.optionList" :key="item.value" :label="item.label" :value="item.value"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="修改值" label-width="100px">
+          <el-popover-select-v2 v-if="dialogUpdateMore.updateName === 1"
+                                v-model="dialogUpdateMore.updateData" title="销售组织" valueKey="name"
+                                referName="ORG_PARAM"
+                                :dataMapping="{updateData: 'name'}"
+                                :source.sync="dialogUpdateMore" placeholder="请输入销售组织">
+          </el-popover-select-v2>
+          <el-popover-select-v2 v-else-if="dialogUpdateMore.updateName === 2"
+                                v-model="dialogUpdateMore.updateData" title="销售区域" valueKey="name"
+                                referName="MK_SALESAREA_PARAM"
+                                :dataMapping="{updateData: 'name'}"
+                                :source.sync="dialogUpdateMore" placeholder="请输入销售区域">
+          </el-popover-select-v2>
+          <el-popover-select-v2 v-else-if="dialogUpdateMore.updateName === 3"
+                                v-model="dialogUpdateMore.updateData" title="客户" valueKey="name"
+                                referName="CUSTOMER_PARAM"
+                                :dataMapping="{updateData: 'name'}"
+                                :source.sync="dialogUpdateMore" placeholder="请输入客户">
+          </el-popover-select-v2>
+          <el-popover-select-v2 v-else-if="dialogUpdateMore.updateName === 4"
+                                v-model="dialogUpdateMore.updateData" title="部门" valueKey="name"
+                                referName="DEPT_PARAM"
+                                :dataMapping="{updateData: 'name'}"
+                                :source.sync="dialogUpdateMore" placeholder="请输入部门">
+          </el-popover-select-v2>
+          <el-popover-select-v2 v-else-if="dialogUpdateMore.updateName === 5"
+                                v-model="dialogUpdateMore.updateData" title="制单人" valueKey="name"
+                                referName="CONTACTS_PARAM"
+                                :dataMapping="{updateData: 'name'}"
+                                :source.sync="dialogUpdateMore" placeholder="请输入制单人">
+          </el-popover-select-v2>
+          <el-input v-else-if="dialogUpdateMore.updateName === 6"
+                    v-model="dialogUpdateMore.updateData" placeholder="请输入科室"
+          ></el-input>
+          <el-date-picker v-else-if="dialogUpdateMore.updateName === 7"
+            v-model="dialogUpdateMore.updateData" value-format="yyyy-MM"
+            type="month"
+            placeholder="选择月">
+          </el-date-picker>
+          <el-input v-else placeholder="请输入修改项" disabled></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="dialogUpdateMoreSave">确 定</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -623,6 +682,12 @@ export default {
         // 上传的地址
         url: process.env.VUE_APP_BASE_API + "/goal_management/monthSaleGoal/importData"
       },
+      dialogUpdateMore: {
+        updateName: null,
+        dialogFormVisible: false,
+        updateData: null,
+        optionList:[{value: 1, label: '销售组织'}, {value: 2, label: '销售区域'}, {value: 3, label: '客户'}, {value: 4, label: '部门'}, {value: 5, label: '制单人'}, {value: 6, label: '科室'}, {value: 7, label: '月份'}]
+      }
     };
   },
   created() {
@@ -742,7 +807,7 @@ export default {
         material: null,
         department: null,
         num: null,
-        monthly: null,
+        monthly: new Date().getFullYear().toString() + '-' + (new Date().getMonth() + 1).toString().padStart(2, '0'),
         goalValue: 0
       }
       this.monthSaleGoalDetailsList.push(list)
@@ -780,7 +845,7 @@ export default {
     /** 提交按钮 */
     submitForm() {
       if (!this.justiceDetailsList()) {
-        return this.$message.error('子表有必填字段未填')
+        return this.$message.error('子表有必填字段未填,或者目标值为0')
       }
       this.$refs["form"].validate(valid => {
         if (valid) {
@@ -897,11 +962,13 @@ export default {
     justiceDetailsList() {
       const arr = JSON.parse(JSON.stringify(this.monthSaleGoalDetailsList))
       for (const element of arr) {
-        if (element.saleOrg === null || element.saleZone === null || element.custom === null || element.dept === null || element.creator === null || element.oneLevelClassify === null || element.twoLevelClassify === null || element.monthly === null || element.goalValue === 0) {
-          return false
+        const flag1 = (element.saleOrg !== null) && (element.saleZone !== null) && (element.custom !== null) && (element.dept !== null) && (element.creator !== null) && (element.materialCode !== null) && (element.material !== null) && (element.monthly !== null) && (element.goalValue !== 0)
+        const flag2 = (element.saleOrg !== undefined) && (element.saleZone !== undefined) && (element.custom !== undefined) && (element.dept !== undefined) && (element.creator !== undefined) && (element.materialCode !== undefined) && (element.material !== undefined) && (element.monthly !== undefined)
+        if (flag1 && flag2) {
+          return true
         }
       }
-      return true
+      return false
     },
     setBeginAndEnd() {
       let array = this.documentDateRange
@@ -976,6 +1043,45 @@ export default {
       obj.oneLevelClassify = oneArray[0]
       obj.twoLevelClassifyCode = twoArray[1]
       obj.twoLevelClassify = twoArray[0]
+    },
+    // 批量修改对话框的方法
+    dialogUpdateMoreSave() {
+      console.log(this.dialogUpdateMore);
+      if (this.dialogUpdateMore.updateData === null) {
+        return this.$message.error('请输入修改值')
+      }
+      const array = JSON.parse(JSON.stringify(this.monthSaleGoalDetailsList))
+      if (array.length !== 0) {
+        let condition = this.dialogUpdateMore.updateName
+        for (const element of array) {
+          if (condition === 1) {
+            element.saleOrg = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
+          } else if (condition === 2) {
+            element.saleZone = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
+          } else if (condition === 3) {
+            element.custom = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
+          } else if (condition === 4) {
+            element.dept = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
+          } else if (condition === 5) {
+            element.creator = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
+          } else if (condition === 6) {
+            element.department = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
+          } else if (condition === 7) {
+            element.monthly = JSON.parse(JSON.stringify(this.dialogUpdateMore.updateData))
+          }
+        }
+      }
+      this.monthSaleGoalDetailsList = array
+      this.dialogUpdateMore.dialogFormVisible = !this.dialogUpdateMore.dialogFormVisible
+      this.dialogUpdateMore.updateData = null
+      this.dialogUpdateMore.updateName = null
+    },
+    changeDialogData() {
+      this.dialogUpdateMore.updateData = null
+    },
+    resetDialogUpdateMore() {
+      this.dialogUpdateMore.updateName = null
+      this.dialogUpdateMore.updateData = null
     }
   }
 }