Quellcode durchsuchen

lizhuo merges Goal Management into dev at 2023-8-1 9:00

002637 vor 1 Jahr
Ursprung
Commit
9820743744

+ 101 - 26
src/views/business/spd/goal_management/AnnualSaleGoal.vue

@@ -134,15 +134,13 @@
         </el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-dropdown @command="handleCommand">
-          <el-button type="primary" size="mini" plain icon="el-icon-upload">
-            导入<i class="el-icon-arrow-down el-icon--right"></i>
-          </el-button>
-          <el-dropdown-menu slot="dropdown">
-            <el-dropdown-item command="importModel">导入模板</el-dropdown-item>
-            <el-dropdown-item command="import">导入</el-dropdown-item>
-          </el-dropdown-menu>
-        </el-dropdown>
+        <el-button
+          type="info"
+          plain
+          icon="el-icon-upload2"
+          size="mini"
+          @click="handleImport"
+        >导入</el-button>
       </el-col>
       <el-col :span="1.5">
         <el-dropdown @command="handleCommand">
@@ -297,9 +295,9 @@
             <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddDetails">增行</el-button>
           </el-col>
         </el-row>
-        <el-table v-loading="loading" :data="annualSaleGoalDetailsList" @selection-change="handleSelectionChange">
-          <el-table-column type="selection" width="55" align="center" fixed />
-          <el-table-column label="销售组织" align="center" prop="saleOrg" width="180" :render-header="addRedStar">
+        <el-table show-summary sum-text="小计" v-loading="loading" :data="annualSaleGoalDetailsList" @selection-change="handleSelectionChange" style="width: 100%; margin-top: 20px">
+          <el-table-column label="序号" type="index" width="70" align="center" fixed />
+          <el-table-column label="销售组织" align="center" width="180" :render-header="addRedStar">
             <template slot-scope="scope">
               <el-popover-select-v2 v-model="annualSaleGoalDetailsList[scope.$index].saleOrg" title="销售组织" valueKey="name"
                                     referName="ORG_PARAM"
@@ -308,7 +306,7 @@
               </el-popover-select-v2>
             </template>
           </el-table-column>
-          <el-table-column label="销售区域" align="center" prop="saleZone" width="180" :render-header="addRedStar">
+          <el-table-column label="销售区域" align="center" width="180" :render-header="addRedStar">
             <template slot-scope="scope">
               <el-popover-select-v2 v-model="annualSaleGoalDetailsList[scope.$index].saleZone" title="销售区域" valueKey="name"
                                     referName="MK_SALESAREA_PARAM"
@@ -317,7 +315,7 @@
               </el-popover-select-v2>
             </template>
           </el-table-column>
-          <el-table-column label="客户" align="center" prop="custom" width="180" :render-header="addRedStar">
+          <el-table-column label="客户" align="center" width="180" :render-header="addRedStar">
             <template slot-scope="scope">
               <el-popover-select-v2 v-model="annualSaleGoalDetailsList[scope.$index].custom" title="客户" valueKey="name"
                                     referName="CUSTOMER_PARAM"
@@ -326,7 +324,7 @@
               </el-popover-select-v2>
             </template>
           </el-table-column>
-          <el-table-column label="负责人" align="center" prop="creator" width="180" :render-header="addRedStar">
+          <el-table-column label="负责人" align="center" width="180" :render-header="addRedStar">
             <template slot-scope="scope">
               <el-popover-select-v2 v-model="annualSaleGoalDetailsList[scope.$index].creator" title="负责人" valueKey="name"
                                     referName="CONTACTS_PARAM"
@@ -335,7 +333,7 @@
               </el-popover-select-v2>
             </template>
           </el-table-column>
-          <el-table-column label="一级分类" align="center" prop="oneLevelClassify" width="220" :render-header="addRedStar">
+          <el-table-column label="一级分类" align="center" width="220" :render-header="addRedStar">
             <template slot-scope="scope">
               <el-select v-model="annualSaleGoalDetailsList[scope.$index].oneLevelClassify" size="mini" clearable
                          @focus="chooseTreeReferForDetails('MATERIALCLASSIFY_PARAM', false, '一级物料分类', scope.$index)"
@@ -344,7 +342,7 @@
               </el-select>
             </template>
           </el-table-column>
-          <el-table-column label="二级分类" align="center" prop="twoLevelClassify" width="220">
+          <el-table-column label="二级分类" align="center" width="220">
             <template slot-scope="scope">
               <el-select v-model="annualSaleGoalDetailsList[scope.$index].twoLevelClassify" size="mini" clearable
                          @focus="chooseTreeReferForDetails('MATERIALCLASSIFY_PARAM', false, '二级物料分类', scope.$index)"
@@ -353,7 +351,7 @@
               </el-select>
             </template>
           </el-table-column>
-          <el-table-column label="物料" align="center" prop="material" width="180">
+          <el-table-column label="物料" align="center" width="180">
             <template slot-scope="scope">
               <el-popover-select-v2 v-model="annualSaleGoalDetailsList[scope.$index].material" title="物料" valueKey="name"
                                     referName="MATERIAL_PARAM"
@@ -451,6 +449,36 @@
       </div>
     </el-drawer>
 
+    <!-- 用户导入对话框 -->
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+      <el-upload
+        ref="upload"
+        :limit="1"
+        accept=".xlsx, .xls"
+        :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport"
+        :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess"
+        :auto-upload="false"
+        drag
+      >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+        <div class="el-upload__tip text-center" slot="tip">
+          <div class="el-upload__tip" slot="tip">
+            <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
+          </div>
+          <span>仅允许导入xls、xlsx格式文件。</span>
+          <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
+        </div>
+      </el-upload>
+      <div slot="footer">
+        <el-button type="primary" @click="submitFileForm">确 定</el-button>
+        <el-button @click="upload.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
+
     <TreeRefers ref="treeDetails" @doSubmit="selectionsToInputForDetails" :single="true"/>
   </div>
 </template>
@@ -468,6 +496,7 @@ import {
   delAnnualSaleGoalDetails,
   getAnnualSaleGoalDetails
 } from "@/api/business/spd/goal_management/annualSaleGoalDetails"
+import { getToken } from "@/utils/auth";
 
 // 树形参照
 import TreeRefers from '@/components/Refers/treeRefer.vue'
@@ -608,7 +637,22 @@ export default {
       referCondition: {type: '', isPage: true, title: '', index: null},
       classOptions: [],
       // 子表数组
-      annualSaleGoalDetailsList: []
+      annualSaleGoalDetailsList: [],
+      // 用户导入参数
+      upload: {
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: { Authorization: "Bearer " + getToken() },
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/goal_management/annualSaleGoal/importData"
+      },
     };
   },
   created() {
@@ -948,19 +992,50 @@ export default {
     },
     handleCommand(command) {
       // 执行对应的功能
-      if (command === 'importModel') {
-        // 执行选项1的功能
-        console.log('导入模板');
-      } else if (command === 'import') {
-        // 执行选项2的功能
-        console.log('导入');
-      } else if (command === 'export') {
+      if (command === 'export') {
         console.log('导出主表');
         this.handleExport()
       } else if (command === 'exportDetails') {
         console.log('导出明细');
         this.handleExportDetails()
       }
+    },
+    /** 导入按钮操作 */
+    handleImport() {
+      this.upload.open = true;
+      if (this.open && this.form.id !== null) {
+        this.upload.title = "年销售目标填报明细导入"
+        this.upload.url = process.env.VUE_APP_BASE_API + "goal_management/annualSaleGoalDetails/importData/" + this.form.id
+      } else {
+        this.upload.title = "年销售目标填报导入";
+        this.upload.url = process.env.VUE_APP_BASE_API + "goal_management/annualSaleGoal/importData"
+      }
+    },
+    /** 下载模板操作 */
+    importTemplate() {
+      if (this.open && this.form.id !== null) {
+        this.download('goal_management/annualSaleGoalDetails/importTemplate', {
+        }, `annualSaleGoalDetails_${new Date().getTime()}.xlsx`)
+      } else {
+        this.download('goal_management/annualSaleGoal/importTemplate', {
+        }, `annualSaleGoal_${new Date().getTime()}.xlsx`)
+      }
+    },
+    // 文件上传中处理
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+    // 文件上传成功处理
+    handleFileSuccess(response, file, fileList) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
+      this.getList();
+    },
+    // 提交上传文件
+    submitFileForm() {
+      this.$refs.upload.submit();
     }
   }
 };

+ 23 - 38
src/views/business/spd/goal_management/AnnualSaleGoalMerge.vue

@@ -332,9 +332,9 @@
         </el-row>
         <el-tabs v-model="activeName" @tab-click="getNewTwoArray">
           <el-tab-pane label="年销售目标合并明细" name="annualSaleGoalMergeDetails">
-            <el-table v-loading="loading" :data="annualSaleGoalMergeDetailsList">
-              <el-table-column label="序号" type="index" width="55" align="center" fixed />
-              <el-table-column label="销售组织" align="center" prop="saleOrg" width="180">
+            <el-table show-summary sum-text="小计" v-loading="loading" :data="annualSaleGoalMergeDetailsList">
+              <el-table-column label="序号" type="index" width="70" align="center" fixed />
+              <el-table-column label="销售组织" align="center" width="180">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="annualSaleGoalMergeDetailsList[scope.$index].saleOrg" title="销售组织" valueKey="name"
                                         referName="ORG_PARAM" disabled
@@ -343,7 +343,7 @@
                   </el-popover-select-v2>
                 </template>
               </el-table-column>
-              <el-table-column label="销售区域" align="center" prop="saleZone" width="180">
+              <el-table-column label="销售区域" align="center" width="180">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="annualSaleGoalMergeDetailsList[scope.$index].saleZone" title="销售区域" valueKey="name"
                                         referName="MK_SALESAREA_PARAM" disabled
@@ -352,7 +352,7 @@
                   </el-popover-select-v2>
                 </template>
               </el-table-column>
-              <el-table-column label="客户" align="center" prop="custom" width="180">
+              <el-table-column label="客户" align="center" width="180">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="annualSaleGoalMergeDetailsList[scope.$index].custom" title="客户" valueKey="name"
                                         referName="CUSTOMER_PARAM" disabled
@@ -361,7 +361,7 @@
                   </el-popover-select-v2>
                 </template>
               </el-table-column>
-              <el-table-column label="负责人" align="center" prop="creator" width="180">
+              <el-table-column label="负责人" align="center" width="180">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="annualSaleGoalMergeDetailsList[scope.$index].creator" title="负责人" valueKey="name"
                                         referName="CONTACTS_PARAM" disabled
@@ -370,7 +370,7 @@
                   </el-popover-select-v2>
                 </template>
               </el-table-column>
-              <el-table-column label="一级分类" align="center" prop="oneLevelClassify" width="220">
+              <el-table-column label="一级分类" align="center" width="220">
                 <template slot-scope="scope">
                   <el-select v-model="annualSaleGoalMergeDetailsList[scope.$index].oneLevelClassify" size="mini" clearable
                              @focus="chooseTreeReferForDetails('MATERIALCLASSIFY_PARAM', false, '一级物料分类', scope.$index)"
@@ -379,7 +379,7 @@
                   </el-select>
                 </template>
               </el-table-column>
-              <el-table-column label="二级分类" align="center" prop="twoLevelClassify" width="220">
+              <el-table-column label="二级分类" align="center" width="220">
                 <template slot-scope="scope">
                   <el-select v-model="annualSaleGoalMergeDetailsList[scope.$index].twoLevelClassify" size="mini" clearable
                              @focus="chooseTreeReferForDetails('MATERIALCLASSIFY_PARAM', false, '二级物料分类', scope.$index)"
@@ -453,28 +453,12 @@
                   <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])" v-model="annualSaleGoalMergeDetailsList[scope.$index].decemberGoal" :precision="2" :step="0.1" :min="0"></el-input-number>
                 </template>
               </el-table-column>
-              <!--            <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120px" fixed="right">
-                            <template slot-scope="scope">
-                              <el-button
-                                size="mini"
-                                type="text"
-                                icon="el-icon-delete"
-                                @click="handleDeleteDetails(scope.$index, scope.row)"
-                              >删除</el-button>
-                              <el-button
-                                size="mini"
-                                type="text"
-                                icon="el-icon-delete"
-                                @click="handleCopyDetails(scope.row)"
-                              >复制</el-button>
-                            </template>
-                          </el-table-column>-->
             </el-table>
           </el-tab-pane>
           <el-tab-pane label="区域目标汇总(年)" name="zoneGoalSum(year)">
-            <el-table v-loading="loading" :data="areaDetailList">
-              <el-table-column label="序号" type="index" width="55" align="center" fixed />
-              <el-table-column label="销售组织" align="center" prop="saleOrg" width="180">
+            <el-table show-summary sum-text="小计" v-loading="loading" :data="areaDetailList">
+              <el-table-column label="序号" type="index" width="70" align="center" fixed />
+              <el-table-column label="销售组织" align="center" width="180">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="areaDetailList[scope.$index].saleOrg" title="销售组织" valueKey="name"
                                         referName="CUSTOMER_PARAM" disabled
@@ -483,7 +467,7 @@
                   </el-popover-select-v2>
                 </template>
               </el-table-column>
-              <el-table-column label="销售区域" align="center" prop="saleZone" width="180">
+              <el-table-column label="销售区域" align="center" width="180">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="areaDetailList[scope.$index].saleZone" title="销售区域" valueKey="name"
                                         referName="CUSTOMER_PARAM" disabled
@@ -492,7 +476,7 @@
                   </el-popover-select-v2>
                 </template>
               </el-table-column>
-              <el-table-column label="负责人" align="center" prop="creator" width="180">
+              <el-table-column label="负责人" align="center" width="180">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="areaDetailList[scope.$index].creator" title="负责人" valueKey="name"
                                         referName="CONTACTS_PARAM" disabled
@@ -569,9 +553,9 @@
             </el-table>
           </el-tab-pane>
           <el-tab-pane label="客户目标汇总(年)" name="customerGoalSum(year)">
-            <el-table v-loading="loading" :data="customerDetailList">
-              <el-table-column label="序号" type="index" width="55" align="center" fixed />
-              <el-table-column label="销售组织" align="center" prop="saleOrg" width="180">
+            <el-table show-summary sum-text="小计" v-loading="loading" :data="customerDetailList">
+              <el-table-column label="序号" type="index" width="70" align="center" fixed />
+              <el-table-column label="销售组织" align="center" width="180">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="customerDetailList[scope.$index].saleOrg" title="销售组织" valueKey="name"
                                         referName="CUSTOMER_PARAM" disabled
@@ -580,7 +564,7 @@
                   </el-popover-select-v2>
                 </template>
               </el-table-column>
-              <el-table-column label="销售区域" align="center" prop="saleZone" width="180">
+              <el-table-column label="销售区域" align="center" width="180">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="customerDetailList[scope.$index].saleZone" title="销售区域" valueKey="name"
                                         referName="CUSTOMER_PARAM" disabled
@@ -589,7 +573,7 @@
                   </el-popover-select-v2>
                 </template>
               </el-table-column>
-              <el-table-column label="客户" align="center" prop="custom" width="180">
+              <el-table-column label="客户" align="center" width="180">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="customerDetailList[scope.$index].custom" title="客户" valueKey="name"
                                         referName="CUSTOMER_PARAM" disabled
@@ -692,7 +676,6 @@ import {
   delAnnualSaleMergeDetails,
   getAnnualSaleMergeDetails
 } from "@/api/business/spd/goal_management/annualSaleMergeDetails"
-import deepCopy from "@gby/deep-copy";
 
 // 树形参照
 import TreeRefers from '@/components/Refers/treeRefer.vue'
@@ -965,7 +948,7 @@ export default {
       this.customerDetailList = []
       this.activeName = 'annualSaleGoalMergeDetails'
       this.open = true;
-      this.title = "添加年度销售目标明细";
+      this.title = "添加--年度销售目标合并明细";
       this.form.documentDate = new Date().getFullYear().toString() + '-' + (new Date().getMonth() + 1).toString().padStart(2, '0') + '-' + new Date().getDate().toString().padStart(2, '0')
       this.form.annual = new Date().getFullYear().toString()
       this.form.creator = this.$store.state.user.nickName
@@ -1015,7 +998,7 @@ export default {
         this.form = response.data;
         this.annualSaleGoalMergeDetailsList = response.data.annualGoalMergeDetailsList
         this.open = true;
-        this.title = "修改年度销售目标明细";
+        this.title = "修改--年度销售目标合并明细";
       });
     },
     // 复制按钮操作
@@ -1029,9 +1012,10 @@ export default {
         this.form = response.data
         this.form.id = null
         this.form.code = null
-        this.title = "添加--年度销售目标明细";
+        this.title = "添加--年度销售目标合并明细";
         this.form.documentDate = new Date().getFullYear().toString() + '-' + (new Date().getMonth() + 1).toString().padStart(2, '0') + '-' + new Date().getDate().toString().padStart(2, '0')
         this.form.annual = new Date().getFullYear().toString()
+        this.form.goalTotal = 0
         this.open = true
       })
     },
@@ -1297,6 +1281,7 @@ export default {
         return this.$message.error('当前标签不是年销售目标合并明细')
       }
       let query = JSON.parse(JSON.stringify(this.form))
+      query.annualGoalMergeDetailsList = []
       console.log(query);
       if (query.goalCategory === null || query.goalCategory === '') {
         return this.$message.error('请输入目标分类')

+ 7 - 21
src/views/business/spd/goal_management/MonthGoalMerge.vue

@@ -365,8 +365,8 @@
         </el-row>
         <el-tabs v-model="activeName" @tab-click="getNewTwoArray">
           <el-tab-pane label="月销售目标合并明细" name="monthGoalMergeDetails">
-            <el-table v-loading="loading" :data="monthGoalMergeDetailsList" @selection-change="handleSelectionChange">
-              <el-table-column type="selection" width="55" align="center" fixed />
+            <el-table show-summary sum-text="小计" v-loading="loading" :data="monthGoalMergeDetailsList" @selection-change="handleSelectionChange">
+              <el-table-column label="序号" type="index" width="70" align="center" fixed />
               <el-table-column label="销售组织" align="center" prop="saleOrg" width="180">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="monthGoalMergeDetailsList[scope.$index].saleOrg" title="销售组织" valueKey="name"
@@ -450,27 +450,11 @@
                   </el-date-picker>
                 </template>
               </el-table-column>
-              <el-table-column label="目标值" align="center" prop="totalGoal" width="220">
+              <el-table-column label="目标值" align="center" prop="goalValue" width="220">
                 <template slot-scope="scope">
                   <el-input-number @change="computeTotal" v-model="monthGoalMergeDetailsList[scope.$index].goalValue" :precision="2" :step="1" :min="0"></el-input-number>
                 </template>
               </el-table-column>
-              <!--            <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120px" fixed="right">
-                            <template slot-scope="scope">
-                              <el-button
-                                size="mini"
-                                type="text"
-                                icon="el-icon-delete"
-                                @click="handleDeleteDetails(scope.$index, scope.row)"
-                              >删除</el-button>
-                              <el-button
-                                size="mini"
-                                type="text"
-                                icon="el-icon-delete"
-                                @click="handleCopyDetails(scope.row)"
-                              >复制</el-button>
-                            </template>
-                          </el-table-column>-->
             </el-table>
           </el-tab-pane>
           <el-tab-pane label="区域目标汇总(月)" name="zoneGoalSum">
@@ -500,7 +484,7 @@
                   </el-date-picker>
                 </template>
               </el-table-column>
-              <el-table-column label="目标值" align="center" prop="totalGoal" width="220">
+              <el-table-column label="目标值" align="center" prop="goalValue" width="220">
                 <template slot-scope="scope">
                   <el-input-number @change="computeTotal" v-model="zoneGoalSumList[scope.$index].goalValue" :precision="2" :step="1" :min="0" disabled></el-input-number>
                 </template>
@@ -543,7 +527,7 @@
                   </el-date-picker>
                 </template>
               </el-table-column>
-              <el-table-column label="目标值" align="center" prop="totalGoal" width="220">
+              <el-table-column label="目标值" align="center" prop="goalValue" width="220">
                 <template slot-scope="scope">
                   <el-input-number @change="computeTotal" v-model="customGoalSumList[scope.$index].goalValue" :precision="2" :step="1" :min="0" disabled></el-input-number>
                 </template>
@@ -899,6 +883,7 @@ export default {
         this.form.documentDate = new Date().getFullYear().toString() + '-' + (new Date().getMonth() + 1).toString().padStart(2, '0') + '-' + new Date().getDate().toString().padStart(2, '0')
         this.form.annual = new Date().getFullYear().toString()
         this.form.monthly = new Date().getFullYear().toString() + '-' + (new Date().getMonth() + 1).toString().padStart(2, '0')
+        this.form.goalSum = 0
         this.open = true
         this.changeGoalCategoryForm()
       })
@@ -1198,6 +1183,7 @@ export default {
         return this.$message.error('当前标签不是月销售目标合并明细')
       }
       let query = JSON.parse(JSON.stringify(this.form))
+      query.monthGoalMergeDetailsList = []
       if (query.goalCategory === null || query.goalCategory === '') {
         return this.$message.error('请输入目标分类')
       } else if (query.goalCategory === '销售区域') {

+ 98 - 17
src/views/business/spd/goal_management/MonthReturnGoal.vue

@@ -132,15 +132,13 @@
         </el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-dropdown @command="handleCommand">
-          <el-button type="primary" size="mini" plain icon="el-icon-upload">
-            导入<i class="el-icon-arrow-down el-icon--right"></i>
-          </el-button>
-          <el-dropdown-menu slot="dropdown">
-            <el-dropdown-item command="importModel">导入模板</el-dropdown-item>
-            <el-dropdown-item command="import">导入</el-dropdown-item>
-          </el-dropdown-menu>
-        </el-dropdown>
+        <el-button
+          type="info"
+          plain
+          icon="el-icon-upload2"
+          size="mini"
+          @click="handleImport"
+        >导入</el-button>
       </el-col>
       <el-col :span="1.5">
         <el-dropdown @command="handleCommand">
@@ -304,9 +302,9 @@
         </el-row>
         <el-tabs v-model="activeName">
           <el-tab-pane label="月回款目标明细" name="monthReturnGoalDetails">
-            <el-table v-loading="loading" :data="monthReturnGoalDetailsList" @selection-change="handleSelectionChange">
-              <el-table-column type="selection" width="55" align="center" fixed />
-              <el-table-column label="销售组织" align="center" prop="saleOrg" width="180" :render-header="addRedStar">
+            <el-table show-summary sum-text="小计" v-loading="loading" :data="monthReturnGoalDetailsList" @selection-change="handleSelectionChange">
+              <el-table-column label="序号" type="index" width="70" align="center" fixed />
+              <el-table-column label="销售组织" align="center" width="180" :render-header="addRedStar">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="monthReturnGoalDetailsList[scope.$index].saleOrg" title="销售组织" valueKey="name"
                                         referName="ORG_PARAM"
@@ -315,7 +313,7 @@
                   </el-popover-select-v2>
                 </template>
               </el-table-column>
-              <el-table-column label="销售区域" align="center" prop="saleZone" width="180" :render-header="addRedStar">
+              <el-table-column label="销售区域" align="center" width="180" :render-header="addRedStar">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="monthReturnGoalDetailsList[scope.$index].saleZone" title="销售区域" valueKey="name"
                                         referName="MK_SALESAREA_PARAM"
@@ -324,7 +322,7 @@
                   </el-popover-select-v2>
                 </template>
               </el-table-column>
-              <el-table-column label="客户" align="center" prop="custom" width="180" :render-header="addRedStar">
+              <el-table-column label="客户" align="center" width="180" :render-header="addRedStar">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="monthReturnGoalDetailsList[scope.$index].custom" title="客户" valueKey="name"
                                         referName="CUSTOMER_PARAM"
@@ -333,7 +331,7 @@
                   </el-popover-select-v2>
                 </template>
               </el-table-column>
-              <el-table-column label="部门" align="center" prop="dept" width="180" :render-header="addRedStar">
+              <el-table-column label="部门" align="center" width="180" :render-header="addRedStar">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="monthReturnGoalDetailsList[scope.$index].dept" title="部门" valueKey="name"
                                         referName="DEPT_PARAM"
@@ -342,7 +340,7 @@
                   </el-popover-select-v2>
                 </template>
               </el-table-column>
-              <el-table-column label="制单人" align="center" prop="creator" width="180" :render-header="addRedStar">
+              <el-table-column label="制单人" align="center" width="180" :render-header="addRedStar">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="monthReturnGoalDetailsList[scope.$index].creator" title="负责人" valueKey="name"
                                         referName="CONTACTS_PARAM"
@@ -351,7 +349,7 @@
                   </el-popover-select-v2>
                 </template>
               </el-table-column>
-              <el-table-column label="月份" align="center" prop="monthly" width="250" :render-header="addRedStar">
+              <el-table-column label="月份" align="center" width="250" :render-header="addRedStar">
                 <template slot-scope="scope">
                   <el-date-picker v-model="monthReturnGoalDetailsList[scope.$index].monthly" value-format="yyyy-MM" type="month" placeholder="选择月份">
                   </el-date-picker>
@@ -388,6 +386,36 @@
       </div>
     </el-drawer>
 
+    <!-- 用户导入对话框 -->
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+      <el-upload
+        ref="upload"
+        :limit="1"
+        accept=".xlsx, .xls"
+        :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport"
+        :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess"
+        :auto-upload="false"
+        drag
+      >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+        <div class="el-upload__tip text-center" slot="tip">
+          <div class="el-upload__tip" slot="tip">
+            <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
+          </div>
+          <span>仅允许导入xls、xlsx格式文件。</span>
+          <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
+        </div>
+      </el-upload>
+      <div slot="footer">
+        <el-button type="primary" @click="submitFileForm">确 定</el-button>
+        <el-button @click="upload.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
+
   </div>
 </template>
 
@@ -404,6 +432,7 @@ import {
   getMonthReturnGoalDetails,
   delMonthReturnGoalDetails
 } from "@/api/business/spd/goal_management/monthReturnGoalDetails"
+import { getToken } from "@/utils/auth";
 
 // 树形参照
 import TreeRefers from '@/components/Refers/treeRefer.vue'
@@ -525,6 +554,21 @@ export default {
             picker.$emit('pick', [start, end]);
           }
         }]
+      },
+      // 用户导入参数
+      upload: {
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: { Authorization: "Bearer " + getToken() },
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/mk/monthReturnGoal/importData"
       }
     }
   },
@@ -817,6 +861,43 @@ export default {
         console.log('导出明细');
         this.handleExportDetails()
       }
+    },
+    /** 导入按钮操作 */
+    handleImport() {
+      this.upload.open = true;
+      if (this.open && this.form.id !== null) {
+        this.upload.title = "月回款目标填报明细导入"
+        this.upload.url = process.env.VUE_APP_BASE_API + "mk/monthReturnGoalDetails/importData/" + this.form.id
+      } else {
+        this.upload.title = "月回款目标填报导入";
+        this.upload.url = process.env.VUE_APP_BASE_API + "mk/monthReturnGoal/importData"
+      }
+    },
+    /** 下载模板操作 */
+    importTemplate() {
+      if (this.open && this.form.id !== null) {
+        this.download('mk/monthReturnGoalDetails/importTemplate', {
+        }, `monthReturnGoalDetails_${new Date().getTime()}.xlsx`)
+      } else {
+        this.download('mk/monthReturnGoal/importTemplate', {
+        }, `monthReturnGoal_${new Date().getTime()}.xlsx`)
+      }
+    },
+    // 文件上传中处理
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+    // 文件上传成功处理
+    handleFileSuccess(response, file, fileList) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
+      this.getList();
+    },
+    // 提交上传文件
+    submitFileForm() {
+      this.$refs.upload.submit();
     }
   }
 }

+ 57 - 15
src/views/business/spd/goal_management/MonthReturnMerge.vue

@@ -322,9 +322,9 @@
       </el-row>
       <el-tabs v-model="activeName" @tab-click="getNewTwoArray">
         <el-tab-pane label="月回款目标合并明细" name="monthReturnMergeDetails">
-          <el-table v-loading="loading" :data="monthReturnMergeDetailsList">
+          <el-table show-summary sum-text="小计" v-loading="loading" :data="monthReturnMergeDetailsList">
             <el-table-column label="序号" type="index" width="55" align="center" fixed />
-            <el-table-column label="销售组织" align="center" prop="saleOrg" width="180">
+            <el-table-column label="销售组织" align="center" width="180">
               <template slot-scope="scope">
                 <el-popover-select-v2 v-model="monthReturnMergeDetailsList[scope.$index].saleOrg" title="销售组织" valueKey="name"
                                       referName="ORG_PARAM" disabled
@@ -333,7 +333,7 @@
                 </el-popover-select-v2>
               </template>
             </el-table-column>
-            <el-table-column label="销售区域" align="center" prop="saleZone" width="180">
+            <el-table-column label="销售区域" align="center" width="180">
               <template slot-scope="scope">
                 <el-popover-select-v2 v-model="monthReturnMergeDetailsList[scope.$index].saleZone" title="销售区域" valueKey="name"
                                       referName="MK_SALESAREA_PARAM" disabled
@@ -342,7 +342,7 @@
                 </el-popover-select-v2>
               </template>
             </el-table-column>
-            <el-table-column label="客户" align="center" prop="custom" width="180">
+            <el-table-column label="客户" align="center" width="180">
               <template slot-scope="scope">
                 <el-popover-select-v2 v-model="monthReturnMergeDetailsList[scope.$index].custom" title="客户" valueKey="name"
                                       referName="CUSTOMER_PARAM" disabled
@@ -351,7 +351,7 @@
                 </el-popover-select-v2>
               </template>
             </el-table-column>
-            <el-table-column label="部门" align="center" prop="dept" width="180">
+            <el-table-column label="部门" align="center" width="180">
               <template slot-scope="scope">
                 <el-popover-select-v2 v-model="monthReturnMergeDetailsList[scope.$index].dept" title="部门" valueKey="name"
                                       referName="DEPT_PARAM" disabled
@@ -360,7 +360,7 @@
                 </el-popover-select-v2>
               </template>
             </el-table-column>
-            <el-table-column label="制单人" align="center" prop="creator" width="180">
+            <el-table-column label="制单人" align="center" width="180">
               <template slot-scope="scope">
                 <el-popover-select-v2 v-model="monthReturnMergeDetailsList[scope.$index].creator" title="制单人" valueKey="name"
                                       referName="CONTACTS_PARAM" disabled
@@ -369,13 +369,13 @@
                 </el-popover-select-v2>
               </template>
             </el-table-column>
-            <el-table-column label="月份" align="center" prop="monthly" width="250">
+            <el-table-column label="月份" align="center" width="250">
               <template slot-scope="scope">
                 <el-date-picker disabled v-model="monthReturnMergeDetailsList[scope.$index].monthly" value-format="yyyy-MM" type="month" placeholder="选择月份">
                 </el-date-picker>
               </template>
             </el-table-column>
-            <el-table-column label="目标值" align="center" prop="totalGoal" width="220">
+            <el-table-column label="目标值" align="center" prop="goalSum" width="220">
               <template slot-scope="scope">
                 <el-input-number @change="computeTotal" v-model="monthReturnMergeDetailsList[scope.$index].goalSum" :precision="2" :step="1" :min="0"></el-input-number>
               </template>
@@ -383,14 +383,55 @@
           </el-table>
         </el-tab-pane>
         <el-tab-pane label="区域目标汇总(月回款)" name="zoneGoalSum(monthReturn)">
-          <el-table :data="zoneGoalSumList">
+          <el-table show-summary sum-text="小计" :data="zoneGoalSumList">
             <el-table-column label="序号" type="index" width="55" align="center" fixed />
-            <el-table-column label="销售组织" align="center" prop="saleOrg" width="180" />
-            <el-table-column label="区域" align="center" prop="saleZone" width="180" />
-            <el-table-column label="部门" align="center" prop="dept" width="180" />
-            <el-table-column label="制单人" align="center" prop="creator" width="180" />
-            <el-table-column label="月份" align="center" prop="monthly" width="180" />
-            <el-table-column label="目标值" align="center" prop="goalSum" width="180" />
+            <el-table-column label="销售组织" align="center" width="180">
+              <template slot-scope="scope">
+                <el-popover-select-v2 v-model="zoneGoalSumList[scope.$index].saleOrg" title="销售组织" valueKey="name"
+                                      referName="ORG_PARAM" disabled
+                                      :dataMapping="{ saleOrgCode: 'code', saleOrg: 'name'}"
+                                      :source.sync="zoneGoalSumList[scope.$index]" placeholder="请输入销售组织">
+                </el-popover-select-v2>
+              </template>
+            </el-table-column>
+            <el-table-column label="销售区域" align="center" width="180">
+              <template slot-scope="scope">
+                <el-popover-select-v2 v-model="zoneGoalSumList[scope.$index].saleZone" title="销售区域" valueKey="name"
+                                      referName="MK_SALESAREA_PARAM" disabled
+                                      :dataMapping="{ saleZoneCode: 'code', saleZone: 'name'}"
+                                      :source.sync="zoneGoalSumList[scope.$index]" placeholder="请输入销售区域">
+                </el-popover-select-v2>
+              </template>
+            </el-table-column>
+            <el-table-column label="部门" align="center" width="180">
+              <template slot-scope="scope">
+                <el-popover-select-v2 v-model="zoneGoalSumList[scope.$index].dept" title="部门" valueKey="name"
+                                      referName="DEPT_PARAM" disabled
+                                      :dataMapping="{ deptCode: 'code', dept: 'name'}"
+                                      :source.sync="zoneGoalSumList[scope.$index]" placeholder="请输入客户">
+                </el-popover-select-v2>
+              </template>
+            </el-table-column>
+            <el-table-column label="制单人" align="center" width="180">
+              <template slot-scope="scope">
+                <el-popover-select-v2 v-model="zoneGoalSumList[scope.$index].creator" title="制单人" valueKey="name"
+                                      referName="CONTACTS_PARAM" disabled
+                                      :dataMapping="{ creatorCode: 'code', creator: 'name'}"
+                                      :source.sync="zoneGoalSumList[scope.$index]" placeholder="请输入制单人">
+                </el-popover-select-v2>
+              </template>
+            </el-table-column>
+            <el-table-column label="月份" align="center" width="250">
+              <template slot-scope="scope">
+                <el-date-picker disabled v-model="zoneGoalSumList[scope.$index].monthly" value-format="yyyy-MM" type="month" placeholder="选择月份">
+                </el-date-picker>
+              </template>
+            </el-table-column>
+            <el-table-column label="目标值" align="center" prop="goalSum" width="220">
+              <template slot-scope="scope">
+                <el-input-number disabled @change="computeTotal" v-model="zoneGoalSumList[scope.$index].goalSum" :precision="2" :step="1" :min="0"></el-input-number>
+              </template>
+            </el-table-column>
           </el-table>
         </el-tab-pane>
       </el-tabs>
@@ -688,6 +729,7 @@ export default {
         this.form = response.data
         this.form.id = null
         this.form.code = null
+        this.form.goalSum = 0
         this.title = "添加--月销售目标合并";
         this.form.documentDate = new Date().getFullYear().toString() + '-' + (new Date().getMonth() + 1).toString().padStart(2, '0') + '-' + new Date().getDate().toString().padStart(2, '0')
         this.form.annual = new Date().getFullYear().toString()

+ 104 - 30
src/views/business/spd/goal_management/MonthSaleGoal.vue

@@ -133,15 +133,13 @@
         </el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-dropdown @command="handleCommand">
-          <el-button type="primary" size="mini" plain icon="el-icon-upload">
-            导入<i class="el-icon-arrow-down el-icon--right"></i>
-          </el-button>
-          <el-dropdown-menu slot="dropdown">
-            <el-dropdown-item command="importModel">导入模板</el-dropdown-item>
-            <el-dropdown-item command="import">导入</el-dropdown-item>
-          </el-dropdown-menu>
-        </el-dropdown>
+        <el-button
+          type="info"
+          plain
+          icon="el-icon-upload2"
+          size="mini"
+          @click="handleImport"
+        >导入</el-button>
       </el-col>
       <el-col :span="1.5">
         <el-dropdown @command="handleCommand">
@@ -306,9 +304,9 @@
         </el-row>
         <el-tabs v-model="activeName">
           <el-tab-pane label="月销售目标明细" name="monthSaleGoalDetails">
-            <el-table v-loading="loading" :data="monthSaleGoalDetailsList" @selection-change="handleSelectionChange">
-              <el-table-column type="selection" width="55" align="center" fixed />
-              <el-table-column label="销售组织" align="center" prop="saleOrg" width="180" :render-header="addRedStar">
+            <el-table show-summary sum-text="小计" v-loading="loading" :data="monthSaleGoalDetailsList" @selection-change="handleSelectionChange">
+              <el-table-column label="序号" type="index" width="70" align="center" fixed />
+              <el-table-column label="销售组织" align="center" width="180" :render-header="addRedStar">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="monthSaleGoalDetailsList[scope.$index].saleOrg" title="销售组织" valueKey="name"
                                         referName="ORG_PARAM"
@@ -317,7 +315,7 @@
                   </el-popover-select-v2>
                 </template>
               </el-table-column>
-              <el-table-column label="销售区域" align="center" prop="saleZone" width="180" :render-header="addRedStar">
+              <el-table-column label="销售区域" align="center" width="180" :render-header="addRedStar">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="monthSaleGoalDetailsList[scope.$index].saleZone" title="销售区域" valueKey="name"
                                         referName="MK_SALESAREA_PARAM"
@@ -326,7 +324,7 @@
                   </el-popover-select-v2>
                 </template>
               </el-table-column>
-              <el-table-column label="客户" align="center" prop="custom" width="180" :render-header="addRedStar">
+              <el-table-column label="客户" align="center" width="180" :render-header="addRedStar">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="monthSaleGoalDetailsList[scope.$index].custom" title="客户" valueKey="name"
                                         referName="CUSTOMER_PARAM"
@@ -335,7 +333,7 @@
                   </el-popover-select-v2>
                 </template>
               </el-table-column>
-              <el-table-column label="部门" align="center" prop="dept" width="180" :render-header="addRedStar">
+              <el-table-column label="部门" align="center" width="180" :render-header="addRedStar">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="monthSaleGoalDetailsList[scope.$index].dept" title="部门" valueKey="name"
                                         referName="DEPT_PARAM"
@@ -344,7 +342,7 @@
                   </el-popover-select-v2>
                 </template>
               </el-table-column>
-              <el-table-column label="制单人" align="center" prop="creator" width="180" :render-header="addRedStar">
+              <el-table-column label="制单人" align="center" width="180" :render-header="addRedStar">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="monthSaleGoalDetailsList[scope.$index].creator" title="制单人" valueKey="name"
                                         referName="CONTACTS_PARAM"
@@ -353,7 +351,7 @@
                   </el-popover-select-v2>
                 </template>
               </el-table-column>
-              <el-table-column label="一级分类" align="center" prop="oneLevelClassify" width="220" :render-header="addRedStar">
+              <el-table-column label="一级分类" align="center" width="220" :render-header="addRedStar">
                 <template slot-scope="scope">
                   <el-select v-model="monthSaleGoalDetailsList[scope.$index].oneLevelClassify" size="mini" clearable
                              @focus="chooseTreeReferForDetails('MATERIALCLASSIFY_PARAM', false, '一级物料分类', scope.$index)"
@@ -362,7 +360,7 @@
                   </el-select>
                 </template>
               </el-table-column>
-              <el-table-column label="二级分类" align="center" prop="twoLevelClassify" width="220" :render-header="addRedStar">
+              <el-table-column label="二级分类" align="center" width="220" :render-header="addRedStar">
                 <template slot-scope="scope">
                   <el-select v-model="monthSaleGoalDetailsList[scope.$index].twoLevelClassify" size="mini" clearable
                              @focus="chooseTreeReferForDetails('MATERIALCLASSIFY_PARAM', false, '二级物料分类', scope.$index)"
@@ -371,7 +369,7 @@
                   </el-select>
                 </template>
               </el-table-column>
-              <el-table-column label="物料" align="center" prop="material" width="180">
+              <el-table-column label="物料" align="center" width="180">
                 <template slot-scope="scope">
                   <el-popover-select-v2 v-model="monthSaleGoalDetailsList[scope.$index].material" title="物料" valueKey="name"
                                         referName="MATERIAL_PARAM"
@@ -380,7 +378,7 @@
                   </el-popover-select-v2>
                 </template>
               </el-table-column>
-              <el-table-column label="科室" align="center" prop="department" width="180">
+              <el-table-column label="科室" align="center" width="180">
                 <template slot-scope="scope">
                   <el-input v-model="monthSaleGoalDetailsList[scope.$index].department" placeholder="请输入科室"></el-input>
                 </template>
@@ -390,7 +388,7 @@
                   <el-input-number v-model="monthSaleGoalDetailsList[scope.$index].num" :min="0"></el-input-number>
                 </template>
               </el-table-column>
-              <el-table-column label="月份" align="center" prop="monthly" width="250" :render-header="addRedStar">
+              <el-table-column label="月份" align="center" width="250" :render-header="addRedStar">
                 <template slot-scope="scope">
                   <el-date-picker v-model="monthSaleGoalDetailsList[scope.$index].monthly" value-format="yyyy-MM" type="month" placeholder="选择月份">
                   </el-date-picker>
@@ -427,6 +425,36 @@
       </div>
     </el-drawer>
 
+    <!-- 用户导入对话框 -->
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+      <el-upload
+        ref="upload"
+        :limit="1"
+        accept=".xlsx, .xls"
+        :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport"
+        :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess"
+        :auto-upload="false"
+        drag
+      >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+        <div class="el-upload__tip text-center" slot="tip">
+          <div class="el-upload__tip" slot="tip">
+            <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
+          </div>
+          <span>仅允许导入xls、xlsx格式文件。</span>
+          <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
+        </div>
+      </el-upload>
+      <div slot="footer">
+        <el-button type="primary" @click="submitFileForm">确 定</el-button>
+        <el-button @click="upload.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
+
     <TreeRefers ref="treeDetails" @doSubmit="selectionsToInputForDetails" :single="true"/>
   </div>
 </template>
@@ -443,6 +471,7 @@ import {
   getMonthSaleGoalDetails,
   delMonthSaleGoalDetails
 } from "@/api/business/spd/goal_management/monthSaleGoalDetails"
+import { getToken } from "@/utils/auth";
 
 // 树形参照
 import TreeRefers from '@/components/Refers/treeRefer.vue'
@@ -575,7 +604,22 @@ export default {
       referCondition: { type: '', isPage: true, title: '', index: null },
       classOptions: [],
       // 子表导航名
-      activeName: 'monthSaleGoalDetails'
+      activeName: 'monthSaleGoalDetails',
+      // 用户导入参数
+      upload: {
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: { Authorization: "Bearer " + getToken() },
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/goal_management/monthSaleGoal/importData"
+      },
     };
   },
   created() {
@@ -897,20 +941,50 @@ export default {
       }
     },
     handleCommand(command) {
-      // 执行对应的功能
-      if (command === 'importModel') {
-        // 执行选项1的功能
-        console.log('导入模板');
-      } else if (command === 'import') {
-        // 执行选项2的功能
-        console.log('导入');
-      } else if (command === 'export') {
+      if (command === 'export') {
         console.log('导出主表');
         this.handleExport()
       } else if (command === 'exportDetails') {
         console.log('导出明细');
         this.handleExportDetails()
       }
+    },
+    /** 导入按钮操作 */
+    handleImport() {
+      this.upload.open = true;
+      if (this.open && this.form.id !== null) {
+        this.upload.title = "月销售目标填报明细导入"
+        this.upload.url = process.env.VUE_APP_BASE_API + "goal_management/monthSaleGoalDetails/importData/" + this.form.id
+      } else {
+        this.upload.title = "月销售目标填报导入";
+        this.upload.url = process.env.VUE_APP_BASE_API + "goal_management/monthSaleGoal/importData"
+      }
+    },
+    /** 下载模板操作 */
+    importTemplate() {
+      if (this.open && this.form.id !== null) {
+        this.download('goal_management/monthSaleGoalDetails/importTemplate', {
+        }, `monthSaleGoalDetails_${new Date().getTime()}.xlsx`)
+      } else {
+        this.download('goal_management/monthSaleGoal/importTemplate', {
+        }, `monthSaleGoal_${new Date().getTime()}.xlsx`)
+      }
+    },
+    // 文件上传中处理
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+    // 文件上传成功处理
+    handleFileSuccess(response, file, fileList) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
+      this.getList();
+    },
+    // 提交上传文件
+    submitFileForm() {
+      this.$refs.upload.submit();
     }
   }
 }

+ 2 - 2
vue.config.js

@@ -37,7 +37,7 @@ module.exports = {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
         // target: `http://172.16.100.107:8080/drp-admin`, //测试
-       target: `http://test-sy.derom.com/drp-admin`, //测试
+       // target: `http://test-sy.derom.com/drp-admin`, //测试
         // target: `http://release-sy.derom.com/drp-admin`, //预发
         // target: `http://sy.derom.com/drp-admin`, //生产
         // target: `http://172.16.63.202:8000/drp-admin`, // D本地
@@ -46,7 +46,7 @@ module.exports = {
         // target: `http://172.16.13.47:8000/drp-admin`, //这是一个美女的本地
         // target: `http://172.16.13.113:8000/drp-admin`, //DWT本地
         // target: `http://172.16.13.21:8000/drp-admin`, //CKF本地
-        // target: `http://172.16.13.43:8000/drp-admin`, //lz's localhost
+        target: `http://172.16.13.43:8000/drp-admin`, //lz's localhost
          // target: `http://127.0.0.1:8000/drp-admin`,
         changeOrigin: true,
         pathRewrite: {