瀏覽代碼

Merge branch 'dev' into 'purchaseDev'

Dev

See merge request new-business/drp-web!293
黄梓星 1 年之前
父節點
當前提交
55807655a2

+ 8 - 0
src/api/business/spd/starget/targetTemplate.js

@@ -57,4 +57,12 @@ export function checkQuote(id) {
     url: '/mk/target/targetTemplate/checkQuote/' + id,
     method: 'get'
   })
+}
+
+//校验目标模板是否被引用
+export function download(id) {
+  return request({
+    url: '/mk/target/targetTemplate/download/' + id,
+    method: 'get'
+  })
 }

+ 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('请输入目标分类')

+ 8 - 22
src/views/business/spd/goal_management/MonthGoalMerge.vue

@@ -201,7 +201,7 @@
       <el-table-column label="目标类型" align="center" prop="goalCategory"/>
       <el-table-column label="目标值合计" align="center" prop="goalSum"/>
       <el-table-column label="单据状态" align="center" prop="documentStatus"/>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <el-table-column label="操作" align="center" width="180" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -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 === '销售区域') {

+ 121 - 19
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">
@@ -172,7 +170,7 @@
       <el-table-column label="目标合计" align="center" prop="goalSum"/>
       <el-table-column label="备注" align="center" prop="notes"/>
       <el-table-column label="单据状态" align="center" prop="documentStatus"/>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="140" fixed="right">
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180" fixed="right">
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -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"
       }
     }
   },
@@ -587,6 +631,27 @@ export default {
     },
     /** 重置按钮操作 */
     resetQuery() {
+      this.queryParams = {
+        pageNum: 1,
+        pageSize: 10,
+        code: null,
+        goalName: null,
+        documentDate: null,
+        annual: null,
+        customCode: null,
+        custom: null,
+        creatorCode: null,
+        creator: null,
+        saleZoneCode: null,
+        saleZone: null,
+        deptCode: null,
+        dept: null,
+        goalSum: null,
+        notes: null,
+        documentStatus: null,
+        params: { beginTime: null, endTime: null,}
+      }
+      this.documentDateRange = null
       this.resetForm("queryForm");
       this.handleQuery();
     },
@@ -775,7 +840,7 @@ 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) {
+        if (element.saleOrg === null || element.saleZone === 'null' || element.custom === null || element.dept === null || element.creator === null || element.monthly === null || element.goalSum === null) {
           return false
         }
       }
@@ -796,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();
     }
   }
 }

+ 80 - 16
src/views/business/spd/goal_management/MonthReturnMerge.vue

@@ -177,7 +177,7 @@
     <el-table-column label="目标类型" align="center" prop="goalCategory" width="180"/>
     <el-table-column label="目标值合计" align="center" prop="goalSum" width="180"/>
     <el-table-column label="单据状态" align="center" prop="documentStatus" width="180"/>
-    <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120" fixed="right">
+    <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180" fixed="right">
       <template slot-scope="scope">
         <el-button
           size="mini"
@@ -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>
@@ -606,6 +647,28 @@ export default {
     },
     /** 重置按钮操作 */
     resetQuery() {
+      this.queryParams = {
+        pageNum: 1,
+        pageSize: 10,
+        code: null,
+        goalName: null,
+        documentDate: null,
+        annual: null,
+        monthly: null,
+        customCode: null,
+        custom: null,
+        saleZoneCode: null,
+        saleZone: null,
+        creatorCode: null,
+        creator: null,
+        deptCode: null,
+        dept: null,
+        goalCategory: null,
+        goalSum: null,
+        documentStatus: null,
+        params: { beginTime: null, endTime: null }
+      }
+      this.documentDateRange = null
       this.resetForm("queryForm");
       this.handleQuery();
     },
@@ -666,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()

+ 105 - 31
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">
@@ -174,7 +172,7 @@
       <el-table-column label="目标合计" align="center" prop="goalSum"/>
       <el-table-column label="备注" align="center" prop="notes"/>
       <el-table-column label="单据状态" align="center" prop="documentStatus"/>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="140" fixed="right">
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180" fixed="right">
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -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();
     }
   }
 }

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

@@ -11,7 +11,6 @@
                 disabled
                 style="width: 200px"
               />
-              <!-- <div>{{form.code}}</div> -->
             </el-form-item>
           </el-col>
           <el-col :span="1.5">

+ 50 - 12
src/views/business/spd/target/targetMk/index.vue

@@ -5,6 +5,22 @@
         <el-form class="search_area" label-width="120px">
           <el-row :gutter="10">
             <el-col :span="1.5">
+              <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-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="1.5">
               <el-form-item label="单据编号">
                 <el-input
                   v-model="queryParams.code"
@@ -61,22 +77,28 @@
       
         <div class="btn_grooup">
           <el-button type="primary" size="mini" @click="useAdd">新增</el-button>
-          <el-button type="primary" size="mini" @click="useAdd">模板导出</el-button>
-          <el-button type="primary" size="mini" @click="useAdd">导入</el-button>
+          <TemplateDownload/>
+          <el-button type="primary" size="mini" @click="useUpload">导入</el-button>
         </div>
 
         <el-table 
-          :data="tableList" 
-          fit
-          max-height="480"
-          style="font-size: 12px;"
+          :data="tableList"
           @selection-change="useSelectionRow"
           @row-dblclick="useDoubleClick"
         >
           <el-table-column show-overflow-tooltip type="selection" width="55" />
+          <el-table-column label="序号" type="index" width="50" align="center" fixed/>
           <el-table-column show-overflow-tooltip label="单据编号" align="center" width="200" prop="code"/>
           <el-table-column show-overflow-tooltip label="单据日期" align="center" width="200" prop="date"/>
           <el-table-column show-overflow-tooltip label="目标名称" align="center" width="200" prop="name"/>
+          <el-table-column show-overflow-tooltip label="状态" align="center" width="200" prop="status">
+            <template slot-scope="scope">
+              <dict-tag
+                :options="dict.type.sys_status"
+                :value="scope.row.status"
+              />
+            </template>
+          </el-table-column>
           <el-table-column show-overflow-tooltip label="年度" align="center" width="200" prop="templateData.year"/>
           <el-table-column show-overflow-tooltip label="模板" align="center" width="200" prop="templateData.name"/>
           <el-table-column show-overflow-tooltip label="开始日期" align="center" width="200" prop="templateData.startTime" />
@@ -117,11 +139,16 @@
           <el-table-column show-overflow-tooltip label="创建时间" align="center" width="200" prop="createTime" />
           <el-table-column show-overflow-tooltip label="修改人" align="center" width="200" prop="updateByName" />
           <el-table-column show-overflow-tooltip label="修改时间" align="center" width="200" prop="updateTime" />
-          <el-table-column fixed="right" label="操作" align="center" width="200">
+          <el-table-column fixed="right" label="操作" align="center" width="150">
             <template slot-scope="scope">
-              <!-- <el-button type="text" size="mini" @click="useSubmit(scope.row)">提交</el-button> -->
-              <el-button type="text" size="mini" @click="useEdit(scope.row)">编辑</el-button>
-              <el-button type="text" size="mini" @click="useDel(scope.row)">删除</el-button>
+              <div v-if="scope.row.status == '0' || scope.row.status == '3'">
+                <el-button type="text" size="mini" @click="useSubmit(scope.row)">提交</el-button>
+                <el-button type="text" size="mini" @click="useEdit(scope.row)">编辑</el-button>
+                <el-button type="text" size="mini" @click="useDel(scope.row)">删除</el-button>
+              </div>
+              <div v-if="scope.row.status == '1'">
+                <el-button type="text" size="mini" @click="useRevocation(scope.row)">撤回</el-button>
+              </div>
             </template>
           </el-table-column>
         </el-table>
@@ -144,14 +171,15 @@
 
 <script>
 import Add from './add.vue'
+import TemplateDownload from './templateDownload.vue'
 import CollapseTransition from '@/components/MyCollapse/collapse.vue'
 import { listTarget,delTarget } from "@/api/business/spd/starget/target";
 export default {
   name: 'target',
   dicts: [
-    "mk_periodic_unit","mk_dimensionality","mk_index_type"
+    "sys_status","mk_periodic_unit","mk_dimensionality","mk_index_type"
   ],
-  components: { Add,CollapseTransition},
+  components: { Add,TemplateDownload,CollapseTransition},
   data() {
     return {
       expanded: false,
@@ -161,6 +189,7 @@ export default {
       page: '',
       // 搜索框参数
       queryParams: {
+        status: '',
         code: '',
         name: '',
         template:'',
@@ -174,6 +203,7 @@ export default {
       tableList:[],
       disable: false,
       rowDetail:{},
+      openTemplateDownload:false,
     }
   },
   created() {
@@ -186,10 +216,18 @@ export default {
       this.page = 'add'
       this.disable = false
     },
+    //导入
+    useUpload(){
+
+    },
     //提交
     useSubmit(){
       
     },
+    //撤回
+    useRevocation(){
+
+    },
     //修改
     useEdit(row){
       this.isList = false

+ 1 - 1
src/views/business/spd/target/targetMk/item.vue

@@ -9,7 +9,7 @@
     <el-table :data="items" style="width: 100%" height="500px">
       <el-table-column label="序号" type="index" width="50" align="center" fixed>
       </el-table-column>
-      <el-table-column show-overflow-tooltip v-for="head in headers" :prop="head.prop" :label="head.modelName" width="150" align="center">
+      <el-table-column show-overflow-tooltip v-for="head in headers" :prop="head.prop" :label="head.modelName" width="200" align="center">
         <template slot-scope="scope">
           <div v-if="pageStu == 'add' || pageStu == 'edit'">
             <div v-if="scope.row[head.prop].type == 'D'">

+ 0 - 131
src/views/business/spd/target/targetTemplate/add/columns.js

@@ -1,131 +0,0 @@
-import CONFIG from "@/config";
-
-export default function useColumns() {
-  const TableColumns = [
-    {
-      item: { key: "year", title: "年度", require: true },
-      attr: {
-        is: "el-date-picker",
-        type: "year",
-        valueFormat: "yyyy-MM-dd",
-      },
-    },
-    {
-      item: { key: "name", title: "模板名称", require: true },
-      attr: { is: "el-input" },
-    },
-    {
-      item: { key: "startTime", title: "开始日期", require: true },
-      attr: {
-        is: "el-date-picker",
-        valueFormat: "yyyy-MM-dd",
-      },
-    },
-    {
-      item: { key: "deadlineTime", title: "结束日期", require: true },
-      attr: {
-        is: "el-date-picker",
-        valueFormat: "yyyy-MM-dd",
-      },
-    },
-    {
-      item: { key: "cycle", title: "周期", require: true },
-      attr: {
-        is: "el-select",
-        dictName: "mk_periodic_unit",
-      },
-    },
-    {
-      item: { key: "unfold", title: "按列展开"},
-      attr: {
-        is: "el-select",
-        dictName: "mk_expansion_mode",
-        clearable: true,
-      },
-    },
-  ].map(({ item, attr }) => ({
-    attr,
-    item: { ...item, hidden: true, span: item.span || 6 },
-  }));
-
-  const TabColumns = [
-    {
-      item: {
-        title: "指标",
-        key: "indexs",
-      },
-      attr: {
-        value: [],
-      },
-      TableColumns: [
-        {
-          item: { key: "target", title: "指标", width: 'auto' },
-          attr: {
-            is: "el-select",
-            dictName: "mk_index_type",
-          },
-        },
-      ],
-    },
-    {
-      item: {
-        title: "维度",
-        key: "dimensionalitys"
-      },
-      attr: {
-        value: [],
-      },
-      TableColumns: [
-        {
-          item: { key: "dimensionality", title: "维度", width: 'auto' },
-          attr: {
-            is: "el-select",
-            dictName: "mk_dimensionality",
-          },
-        },
-      ],
-    },
-    {
-      item: {
-        title: "周期",
-        key: "cycles",
-      },
-      attr: {
-        value: [],
-      },
-      TableColumns: [
-        {
-          item: { key: "name", title: "周期名称", require: true },
-          attr: { is: "el-input" },
-        },
-        {
-          item: {
-            key: "startTime",
-            title: "周期开始日期",
-            require: true,
-          },
-          attr: {
-            is: "el-date-picker",
-            // valueFormat: "yyyy-MM-dd",
-            // value: new Date(),
-          },
-        },
-        {
-          item: {
-            key: "deadlineTime",
-            title: "周期结束日期",
-            require: true,
-            width: 'auto'
-          },
-          attr: {
-            is: "el-date-picker",
-            // valueFormat: "yyyy-MM-dd",
-            // value: new Date(),
-          },
-        },
-      ],
-    },
-  ];
-
-  return { TableColumns, TabColumns };
-}

+ 0 - 453
src/views/business/spd/target/targetTemplate/add/index.vue

@@ -1,453 +0,0 @@
-<script>
-import useColumns from "./columns";
-import {
-  addTargetTemplate,
-  updateTargetTemplate,
-  getTargetTemplate,
-  checkQuote,
-} from "@/api/business/spd/starget/targetTemplate";
-export default {
-  name: "AddDrawer",
-  props: {
-    dict: {
-      type: Object,
-    },
-    selectData: {
-      type: Object,
-      require: true,
-    },
-    addType: {
-      type: String,
-      default: "add",
-    },
-  },
-  components: {
-    ElSuperForm: () => import("@/components/super-form/index.vue"),
-    ElSuperTable: () => import("@/components/super-table/index.vue"),
-    ElPopoverSelectV2: () => import("@/components/popover-select-v2/index.vue"),
-  },
-  data() {
-    const {
-      TabColumns,
-      TableColumns,
-      TabColumns: [
-        {
-          item: { key: tabName },
-        },
-      ],
-    } = useColumns();
-    const rules = this.$init.rules([...TabColumns, ...TableColumns]);
-    const params = this.$init.params([...TabColumns, ...TableColumns]);
-    return {
-      width: "100%",
-      visible: false,
-      loading: false,
-      rules: rules,
-      params: params,
-      tabName: tabName,
-      TabColumns: TabColumns,
-      TableColumns: TableColumns,
-    };
-  },
-  computed: {
-    title: {
-      get() {
-        const { addType } = this;
-        if (addType === "add") {
-          return "新 增";
-        }
-        if (addType === "edit") {
-          return "编 辑";
-        }
-      },
-      set() {},
-    },
-  },
-  watch: {},
-  methods: {
-    changePuOrgName(prop) {
-      console.log("changePuOrgName", prop);
-    },
-    changeMaterialName(prop) {
-      console.log("changeMaterialName", prop);
-    },
-
-    //查询目标模板详情
-    async fetchTemplate(prop) {
-      try {
-        // try
-        this.loading = true;
-        const { code, data } = await getTargetTemplate(prop);
-        if (code === 200) {
-          this.params = data;
-          return true;
-        } else {
-          return false;
-        }
-      } catch (err) {
-        // catch
-        console.error(err);
-      } finally {
-        // finally
-        this.loading = false;
-      }
-    },
-    //打开组件
-    async open() {
-      const { addType, selectData } = this.$props;
-      if (addType === "add") {
-        this.visible = true;
-        var date = new Date();
-        this.params.year = date.getFullYear() + '-' + '01' + '-' + '01';
-        this.params.startTime = date.getFullYear() + '-' + '01' + '-' + '01';
-        this.params.deadlineTime = date.getFullYear() + '-' + '12' + '-' + '31';
-        this.params.cycle = 'month';
-      }
-      if (addType === "edit") {
-        //校验目标模板是否存在引用
-        const { code, data } = await checkQuote(selectData.id);
-        if (code == "200") {
-          if (data) {
-            this.$modal.msgError("该目标模板存在引用,无法修改!");
-            this.visible = false;
-            return;
-          }
-        } else {
-          this.$modal.msgError("校验该目标模板是否存在引用异常,无法修改!");
-          this.visible = false;
-          return;
-        }
-        this.visible = await this.fetchTemplate(selectData.id);
-        this.params.indexs = this.params.indexs.map((item) => ({ ...item}));
-        this.params.dimensionalitys = this.params.dimensionalitys.map(
-          (item) => ({ ...item})
-        );
-        this.params.cycles = this.params.cycles.map((item) => ({ ...item}));
-        console.log("this.params",this.params);
-      }
-    },
-    //关闭页面
-    async hide() {
-      const {
-        TabColumns,
-        TableColumns,
-        TabColumns: [
-          {
-            item: { key: tabName },
-          },
-        ],
-      } = useColumns();
-      this.visible = false;
-      this.tabName = tabName;
-      this.params = this.$init.params([...TabColumns, ...TableColumns]);
-    },
-    //增行
-    async useRowAdd(prop) {
-      const { TabColumns } = this;
-      const { TableColumns } = TabColumns.find(
-        ({ item: { key } }) => key === prop
-      );
-      this.params[prop].push({
-        delFlag: "0",
-        $index: new Date().getTime(),
-        ...this.$init.params(TableColumns),
-      });
-    },
-    //删行
-    async useRowRemove(prop, scope) {
-      // const { addType } = this.$props;
-      if (scope.row.id) {
-        this.params[prop].forEach(e => {
-          if(e.id == scope.row.id){
-            e.delFlag = '2'
-          }
-        });
-      }else{
-        this.params[prop] = this.params[prop].filter(item => item.$index != scope.row.$index);
-      }
-      console.log("this.params[prop]",this.params[prop]);
-    },
-    //确认
-    async useSubmit(prop) {
-      this.$refs[prop].$refs[prop].validate(async (valid) => {
-        if (valid) {
-          try {
-            this.loading = true;
-            const { addType } = this.$props;
-            let res = null;
-            if (addType === "add") {
-              res = await addTargetTemplate(this.params);
-            }
-            if (addType === "edit") {
-              res = await updateTargetTemplate(this.params);
-            }
-            if (res.code === 200) {
-              this.hide();
-              this.$emit("success");
-              this.$notify.success(res.msg);
-            }
-          } catch (err) {
-            // catch
-            console.error(err);
-          } finally {
-            // finally
-            this.loading = false;
-          }
-        } else {
-          return false;
-        }
-      });
-    },
-    //保存并新增
-    useSaveAndAdd(prop){
-      this.$refs[prop].$refs[prop].validate(async (valid) => {
-        if (valid) {
-          try {
-            this.loading = true;
-            const { addType } = this.$props;
-            let res = null;
-            if (addType === "add") {
-              res = await addTargetTemplate(this.params);
-            }
-            if (addType === "edit") {
-              res = await updateTargetTemplate(this.params);
-            }
-            if (res.code === 200) {
-              this.$notify.success(res.msg);
-              this.params={};
-            }
-          } catch (err) {
-            // catch
-            console.error(err);
-          } finally {
-            // finally
-            this.loading = false;
-          }
-        } else {
-          return false;
-        }
-      });
-    },
-    //重置周期
-    useResetCycle(){
-      if(!this.params.startTime || !this.params.deadlineTime || !this.params.cycle){
-        this.$modal.msgError("开始日期、结束日期、周期不能存在空值!");
-        return;
-      }
-      if(this.params.startTime > this.params.deadlineTime){
-        this.$modal.msgError("开始日期不能大于结束日期!");
-        return;
-      }
-      this.params.cycles = [];
-      var cycles = [];
-      var start = new Date(this.params.startTime);
-      var deadline = new Date(this.params.deadlineTime);
-      start.setHours( 0, 0, 0);
-      deadline.setHours( 0, 0, 0);
-      if(this.params.cycle == 'period'){
-        cycles.push({
-          name:'目标期间',
-          startTime:start,
-          deadlineTime:deadline,
-        });
-      }else{
-        while(deadline >= start){
-          console.log(start);
-          if(this.params.cycle == 'day'){
-            var cy = {
-              name:this.formatDateTime(start, 'yyyy-MM-dd'),
-              startTime:start,
-              deadlineTime:start,
-            }
-            console.log(cy);
-            cycles.push(cy);
-            start = start.setDate(start.getDate()+1);
-            start = new Date(start);
-          }
-          if(this.params.cycle == 'week'){
-            var de = start;
-            var cy = {
-              name:this.formatDateTime(start, 'yyyy-MM-dd'),
-              startTime:start,
-              deadlineTime:de.setDate(de.getDate()+7),
-            }
-            console.log(cy);
-            cycles.push(cy);
-            start = start.setDate(start.getDate()+7);
-            start = new Date(start);
-          }
-          if(this.params.cycle == 'month'){
-            var de = start;
-            var cy = {
-              name:this.formatDateTime(start, 'yyyy-MM-dd'),
-              startTime:start,
-              deadlineTime:de.setDate(de.getDate()+30),
-            }
-            console.log(cy);
-            cycles.push(cy);
-            start = start.setDate(start.getDate()+30);
-            start = new Date(start);
-          }
-          if(this.params.cycle == 'season'){
-            var de = start;
-            var cy = {
-              name:this.formatDateTime(start, 'yyyy-MM-dd'),
-              startTime:start,
-              deadlineTime:de.setDate(de.getDate()+90),
-            }
-            console.log(cy);
-            cycles.push(cy);
-            start = start.setDate(start.getDate()+90);
-            start = new Date(start);
-          }
-        }
-      }
-      this.params.cycles = cycles;
-      console.log('this.params.cycles',this.params.cycles);
-    },
-    //日期名称格式化
-    formatDateTime(date, format) {
-      const o = {
-        'M+': date.getMonth() + 1, // 月份
-        'd+': date.getDate(), // 日
-        'h+': date.getHours() % 12 === 0 ? 12 : date.getHours() % 12, // 小时
-        'H+': date.getHours(), // 小时
-        'm+': date.getMinutes(), // 分
-        's+': date.getSeconds(), // 秒
-        'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
-        S: date.getMilliseconds(), // 毫秒
-        a: date.getHours() < 12 ? '上午' : '下午', // 上午/下午
-        A: date.getHours() < 12 ? 'AM' : 'PM', // AM/PM
-      };
-      if (/(y+)/.test(format)) {
-        format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
-      }
-      for (let k in o) {
-        if (new RegExp('(' + k + ')').test(format)) {
-          format = format.replace(
-            RegExp.$1,
-            RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)
-          );
-        }
-      }
-      return format;
-    }
-  },
-  created() {
-  },
-  mounted() {},
-  destroyed() {},
-};
-</script>
-<template>
-  <el-button v-bind="$attrs" v-on="$listeners" @click="open">
-    {{ title }}
-    <el-drawer
-      :size="width"
-      :title="title"
-      :visible.sync="visible"
-      append-to-body
-      destroy-on-close
-      @close="hide"
-    >
-      <el-super-form
-        v-model="params"
-        :dict="dict"
-        :rules="rules"
-        :size="$attrs.size"
-        :columns="TableColumns"
-        ref="superForm"
-        label-width="auto"
-        label-position="right"
-        style="padding: 20px"
-      >
-        <!-- <template slot="puOrgName" slot-scope="scope">
-          <component
-            v-bind="scope.attr"
-            v-model="scope.row[scope.item.key]"
-            :size="$attrs.size"
-            :source.sync="scope.row"
-            @change="changePuOrgName({ ...scope, select: $event })"
-          >
-          </component
-        ></template> -->
-      </el-super-form>
-      <el-tabs v-model="tabName" style="padding: 0 20px 20px">
-        <el-tab-pane
-          v-for="({ item, TableColumns: columns }, index) in TabColumns"
-          :key="index"
-          :label="item.title"
-          :name="item.key"
-          lazy
-        >
-          <el-super-table
-            v-model="params[item.key]"
-            :dict="dict"
-            :ref="tabName"
-            :columns="columns"
-            :size="$attrs.size"
-          >
-            <!-- <template slot="materialName" slot-scope="scope">
-              <component
-                v-bind="scope.attr"
-                v-model="scope.row[scope.item.key]"
-                :size="$attrs.size"
-                :source.sync="scope.row"
-                @change="changeMaterialName(scope)"
-              >
-              </component>
-            </template> -->
-            <el-table-column fixed="right" label="操作" width="100">
-              <template slot="header" slot-scope="scope">
-                <el-button v-if="tabName == 'cycles'" type="primary" size="mini" @click="useResetCycle">重算周期</el-button>
-                <el-button
-                  v-else
-                  circle
-                  icon="el-icon-plus"
-                  :size="$attrs.size"
-                  @click="useRowAdd(tabName)"
-                >
-                </el-button>
-              </template>
-              <template slot-scope="scope">
-                <el-button
-                  v-if="tabName == 'indexs' || tabName == 'dimensionalitys'"
-                  circle
-                  icon="el-icon-minus"
-                  :size="$attrs.size"
-                  @click.native.prevent="useRowRemove(tabName, scope)"
-                >
-                </el-button>
-              </template>
-            </el-table-column>
-          </el-super-table>
-        </el-tab-pane>
-      </el-tabs>
-      <div style="padding: 20px; text-align: right">
-        <el-button :size="$attrs.size" :loading="loading" @click="hide"
-          >取 消</el-button
-        >
-        <!-- <el-button
-          type="primary"
-          :size="$attrs.size"
-          :loading="loading"
-          @click="useSaveAndAdd('superForm')"
-          >保存并新增</el-button
-        > -->
-        <el-button
-          type="primary"
-          :size="$attrs.size"
-          :loading="loading"
-          @click="useSubmit('superForm')"
-          >确 认</el-button
-        >
-      </div>
-    </el-drawer>
-  </el-button>
-</template>
-
-<style scoped>
-::v-deep .el-table__row.is-hidden {
-  display: none;
-}
-</style>

+ 0 - 38
src/views/business/spd/target/targetTemplate/columns.js

@@ -1,38 +0,0 @@
-import CONFIG from "@/config";
-
-export default function useColumns() {
-  const TableColumns = [
-    { item: { key: "year", title: "年度" }, attr: {} },
-    { item: { key: "name", title: "模板名称" }, attr: {} },
-    { item: { key: "startTime", title: "开始日期" }, attr: {} },
-    { item: { key: "deadlineTime", title: "结束日期" }, attr: {} },
-    {
-      item: { key: "cycle", title: "周期" },
-      attr: { is: "el-dict-tag", dictName: "mk_periodic_unit" },
-    },
-    {
-      item: { key: "unfold", title: "按列展开" },
-      attr: { is: "el-dict-tag", dictName: "mk_expansion_mode" },
-    },
-    { item: { key: "createByName", title: "创建人" }, attr: {} },
-    { item: { key: "createTime", title: "创建时间" }, attr: {} },
-    { item: { key: "updateByName", title: "修改人" }, attr: {} },
-    { item: { key: "updateTime", title: "修改时间" }, attr: {} },
-  ].map(({ item, attr }) => ({
-    attr,
-    item: { ...item, hidden: true, fixed: false },
-  }));
-  const SearchColumns = [
-    { item: { key: "year", title: "年度",},attr: {
-      is: "el-date-picker",
-      type: "year",
-      valueFormat: "yyyy-MM-dd",
-    }, },
-    { item: { key: "name", title: "模板名称"},attr: { is: "el-input" }, },
-  ].map(({ item, attr }) => ({
-    attr,
-    item: { ...item, hidden: true, span: item.span || 6 },
-  }));
-
-  return { TableColumns, SearchColumns };
-}

+ 0 - 74
src/views/business/spd/target/targetTemplate/delete/index.vue

@@ -1,74 +0,0 @@
-<script>
-import { delTargetTemplate,checkQuote, } from "@/api/business/spd/starget/targetTemplate";
-
-export default {
-  name: "DeleteDialog",
-  props: ['selectData'],
-  data() {
-    return {
-      title: "删 除",
-    };
-  },
-  watch: {},
-  methods: {
-    async open() {
-      const { selectData } = this.$props;
-      const { code, data } = await checkQuote(selectData.id);
-      if(code == '200'){
-        if(data){
-          this.$modal.msgError("该目标模板存在引用,无法删除!");
-          this.visible = false;
-          return;
-        }
-      }else{
-        this.$modal.msgError("校验该目标模板是否存在引用异常,无法删除!");
-        this.visible = false;
-        return;
-      }
-      this.$confirm(`是否删除数据项?`, "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "info",
-        beforeClose: async (action, instance, done) => {
-          if (action === "confirm") {
-            instance.confirmButtonLoading = true;
-            instance.confirmButtonText = "执行中...";
-            try {
-              // try
-              const { msg, code } = await delTargetTemplate(selectData.id);
-              if (code === 200) {
-                done();
-                this.$emit("success");
-                this.$notify.success(msg);
-              }
-            } catch (err) {
-              // catch
-              console.error(err);
-              instance.confirmButtonText = "确认";
-            } finally {
-              // finally
-              instance.confirmButtonLoading = false;
-            }
-          } else {
-            done();
-          }
-        },
-      })
-        .then(() => {})
-        .catch(() => {});
-    },
-  },
-  created() {},
-  mounted() {},
-  destroyed() {},
-};
-</script>
-<template>
-  <el-button
-    v-bind="$attrs"
-    v-on="$listeners"
-    @click="open"
-  >
-    {{ title }}
-  </el-button>
-</template>

+ 0 - 14
src/views/business/spd/target/targetTemplate/dicts.js

@@ -1,14 +0,0 @@
-import { initDicts } from "@/utils/init.js";
-const modules = require.context("./", true, /columns.js$/);
-const columns = [];
-modules.keys().forEach((fileName) => {
-  const data = modules(fileName).default();
-  for (const key in data) {
-    if (key === "TabColumns") {
-      columns.push(...data[key].map((item) => item.TableColumns).flat());
-    } else {
-      columns.push(...data[key]);
-    }
-  }
-});
-export const dicts = initDicts(columns);

+ 208 - 126
src/views/business/spd/target/targetTemplate/index.vue

@@ -1,151 +1,224 @@
+
+<template>
+  <div>
+    <div v-if="!openDetail">
+      <el-card>
+        <el-form size="mini" class="search_area" label-width="120px">
+          <el-row :gutter="10">
+            <el-col :span="1.5">
+              <el-form-item label="年份">
+                <el-date-picker
+                  v-model="queryParams.year"
+                  type="year"
+                  clearable
+                  >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="1.5">
+              <el-form-item label="目标名称">
+                <el-input
+                  v-model="queryParams.name"
+                  clearable
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="1.5">
+              <el-form-item label="" label-width="20px">
+                <el-button type="primary" size="mini" icon="el-icon-search" plain @click="useSearch">搜索</el-button>
+                <el-button size="mini" icon="el-icon-refresh" plain @click="useReset">重置</el-button>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+        <el-divider></el-divider>
+        <div class="btn_grooup">
+          <el-button type="primary" size="mini" @click="useAdd">新增</el-button>
+        </div>
+
+        <el-table 
+          :data="tableList"
+          @row-dblclick="useDoubleClick"
+        >
+          <el-table-column label="序号" type="index" width="50" align="center" fixed/>
+          <el-table-column show-overflow-tooltip label="年度" align="center" width="200" prop="year">
+            <template slot-scope="scope">
+              {{scope.row.year.substring(0,4)}}
+            </template>
+          </el-table-column>
+          <el-table-column show-overflow-tooltip label="模板名称" align="center" width="200" prop="name"/>
+          <el-table-column show-overflow-tooltip label="开始日期" align="center" width="200" prop="startTime"/>
+          <el-table-column show-overflow-tooltip label="结束日期" align="center" width="200" prop="deadlineTime"/>
+          <el-table-column show-overflow-tooltip label="周期" align="center" width="200" prop="cycle">
+            <template slot-scope="scope">
+              <dict-tag
+                :options="dict.type.mk_periodic_unit"
+                :value="scope.row.cycle"
+              />
+            </template>
+          </el-table-column>
+          <el-table-column show-overflow-tooltip label="按列展开" align="center" width="200" prop="unfold">
+            <template slot-scope="scope">
+              <dict-tag
+                :options="dict.type.mk_expansion_mode"
+                :value="scope.row.unfold"
+              />
+            </template>
+          </el-table-column>
+          <el-table-column show-overflow-tooltip label="创建人" align="center" width="200" prop="createByName" />
+          <el-table-column show-overflow-tooltip label="创建时间" align="center" width="200" prop="createTime" />
+          <el-table-column show-overflow-tooltip label="修改人" align="center" width="200" prop="updateByName" />
+          <el-table-column show-overflow-tooltip label="修改时间" align="center" width="200" prop="updateTime" />
+          <el-table-column fixed="right" label="操作" align="center" width="150">
+            <template slot-scope="scope">
+              <el-button type="text" size="mini" @click="useEdit(scope.row)">编辑</el-button>
+              <el-button type="text" size="mini" @click="useDel(scope.row)">删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+
+        <el-pagination
+          background
+          @size-change="useChangePageSize"
+          @current-change="useCurrentChange"
+          :current-page="queryParams.pageNum"
+          :page-sizes="[10, 15, 20]"
+          :page-size="100"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total=total>
+        </el-pagination>
+      </el-card>
+    </div>
+    <Detail v-if="openDetail" :openMode="openMode" :row="row"/>
+  </div>
+</template>
+
 <script>
-import { dicts } from "./dicts";
-import useColumns from "./columns";
-import { listTargetTemplate } from "@/api/business/spd/starget/targetTemplate";
+import Detail from './detail.vue'
+import { listTargetTemplate,delTargetTemplate,checkQuote, } from "@/api/business/spd/starget/targetTemplate";
 
 export default {
   name: "targettemplate",
-  dicts: dicts,
-  components: {
-    SeeButton: () => import("./see/index.vue"),
-    AddButton: () => import("./add/index.vue"),
-    DeleButton: () => import("./delete/index.vue"),
-    ElSuperTable: () => import("@/components/super-table/index.vue"),
-    ElSuperSearch: () => import("@/components/super-search/index.vue"),
-  },
+  dicts: ["mk_periodic_unit","mk_expansion_mode"],
+  components: {Detail},
   data() {
-    const { TableColumns, SearchColumns } = useColumns();
-    const params = this.$init.params(SearchColumns);
     return {
-      size: "mini",
-      loading: false,
-      params: params,
-      tableData: [],
-      selectData: [],
-      SearchColumns: SearchColumns,
-      TableColumns: TableColumns,
-      page: { pageNum: 1, pageSize: 10, total: 0 },
+      // 搜索框参数
+      queryParams: {
+        year:'',
+        name:'',
+        pageNum: 1,
+        pageSize: 10
+      },
+      //总条数
+      total: 0,
+      //列表数据
+      tableList:[],
+      //是否打开详情页面
+      openDetail:false,
+      //编辑页面打开方式,add或edit或see
+      openMode:'',
+      //行数据
+      row:{},
     };
   },
   created() {
-    console.log('this.$refs',this.$refs);
-    this.useQuery(this.params, this.page);
+    this.getList(this.queryParams);
   },
   methods: {
-    async fetchList(prop, page) {
-      try {
-        this.loading = true;
-        const { code, rows, total } = await listTargetTemplate(
-          {...prop,...page}
-        );
-        if (code === 200) {
-          this.tableData = rows;
-          this.page.total = total;
-          console.log('this.tableData',this.tableData);
+    //是否打开详情页面
+    useOpenDetail(){
+      this.openDetail = !this.openDetail;
+    },
+    //新增
+    useAdd(){
+      this.openMode = 'add';
+      this.openDetail = true;
+    },
+    //编辑
+    async useEdit(row){
+      const { code, data } = await checkQuote(row.id);
+      if (code == "200") {
+        if (data) {
+          this.$modal.msgError("该目标模板存在引用,无法修改!");
+          this.visible = false;
+          return;
+        }
+      } else {
+        this.$modal.msgError("校验该目标模板是否存在引用异常,无法修改!");
+        this.visible = false;
+        return;
+      }
+      this.openMode = 'edit';
+      this.row = row;
+      this.openDetail = true;
+    },
+    //删除
+    async useDel(row){
+      const { code, data } = await checkQuote(row.id);
+      if (code == "200") {
+        if (data) {
+          this.$modal.msgError("该目标模板存在引用,无法修改!");
+          this.visible = false;
+          return;
         }
-      } catch (err) {
-        // catch
-        console.error(err);
-      } finally {
-        // finally
-        this.loading = false;
+      } else {
+        this.$modal.msgError("校验该目标模板是否存在引用异常,无法修改!");
+        this.visible = false;
+        return;
       }
+      this.$modal.confirm('确认删除选择数据').then(() => {
+        delTarget(row.id).then(res => {
+          if (res.code === 200) {
+            this.$modal.msgSuccess("删除成功");
+            this.getList(this.queryParams)
+          }
+        })
+      }).catch(() => {})
+    },
+    //查询列表
+    getList(params){
+      listTargetTemplate(params).then(res => {
+        if (res.code === 200) {
+          this.tableList = res.rows
+          this.total = res.total
+        }
+      })
+    },
+    //双击
+    useDoubleClick(row){
+      this.openMode = 'see';
+      this.row = row;
+      this.openDetail = true;
     },
-    // 查 询
-    useQuery(prop, page) {
-      this.selectData = [];
-      this.fetchList(prop, page);
+    //改变一页显示条数
+    useChangePageSize(val){
+      this.queryParams.pageSize = val
+      this.getList(this.queryParams)
     },
-    // 重 置
-    useReset() {
-      this.page.pageNum = 1;
-      this.page.pageSize = 10;
-      this.params = this.$init.params(this.SearchColumns);
-      this.useQuery(this.params, this.page);
+    //翻页
+    useCurrentChange(val){
+      this.queryParams.pageNum = val
+      this.getList(this.queryParams)
     },
-    // 选 择
-    useSelect(prop) {
-      this.selectData = prop;
+    //搜索
+    useSearch() {
+      this.getList(this.queryParams);
     },
-    // 明 细
-    async useSee(prop) {
-      const { open } = this.$refs.SeeButton;
-      await open([prop]);
+    //重置
+    useReset(){
+      this.queryParams = {
+        year:'',
+        name: '',
+        pageNum: 1,
+        pageSize: 10
+      }
+      this.getList(this.queryParams);
     },
   },
 };
 </script>
 
-<template>
-  <el-card v-loading="loading" :body-style="{ padding: 0 }">
-    <el-super-search
-      v-model="params"
-      :size="size"
-      :dict="dict"
-      :columns="SearchColumns"
-      @reset="useReset"
-      @submit="useQuery(params, page)"
-    ></el-super-search>
-    <div style="margin: 0 0 20px 0; text-align: right">
-      <el-button-group>
-        <add-button
-          :size="size"
-          :select-data="[]"
-          :dict="dict"
-          add-type="add"
-          @success="useQuery(params, page)"
-        ></add-button>
-      </el-button-group>
-      <el-button-group>
-        <see-button
-          v-show="false"
-          :size="size"
-          :dict="dict"
-          :model="params"
-          :select-data="selectData"
-          ref="SeeButton"
-          @success="useQuery(params, page)"
-        ></see-button>
-      </el-button-group>
-    </div>
-    <el-super-table
-      v-model="tableData"
-      :size="size"
-      :dict="dict"
-      :columns="TableColumns"
-      stroage
-      hideOperationColumns
-      @row-dblclick="useSee"
-      @selection-change="useSelect"
-    >
-      <el-table-column fixed="right" label="操作" align="center" width="150">
-        <template slot-scope="scope">
-          <add-button
-          :size="size"
-          :dict="dict"
-          :select-data="scope.row"
-          add-type="edit"
-          @success="useQuery(params, page)"
-        ></add-button>
-        <dele-button
-          :size="size"
-          :select-data="scope.row"
-          @success="useQuery(params, page)"
-        ></dele-button>
-        </template>
-      </el-table-column>
-      <!-- <el-table-column fixed width="55" align="center" type="selection">
-      </el-table-column> -->
-    </el-super-table>
-    <pagination
-      :total="page.total"
-      :page.sync="page.pageNum"
-      :limit.sync="page.pageSize"
-      @pagination="useQuery(params, page)"
-      style="height: 32px; margin: 20px 0 0 0; padding: 0 !important"
-    />
-  </el-card>
-</template>
 <style scoped lang="scss">
 .el-card {
   width: calc(100% - 20px);
@@ -156,4 +229,13 @@ export default {
 .el-button-group + .el-button-group {
   margin: 0 0 0 10px;
 }
+.btn_grooup {
+  margin-bottom: 10px;
+  display: flex;
+  justify-content: flex-end;
+}
+.el-pagination {
+  margin-top: 10px;
+  text-align: right;
+}
 </style>

+ 0 - 110
src/views/business/spd/target/targetTemplate/see/columns.js

@@ -1,110 +0,0 @@
-import CONFIG from "@/config";
-
-export default function useColumns() {
-  const TableColumns = [
-    {
-      item: { key: "year", title: "年度" },
-      attr: {},
-    },
-    {
-      item: { key: "name", title: "模板名称" },
-      attr: {},
-    },
-    {
-      item: { key: "startTime", title: "开始日期" },
-      attr: {},
-    },
-    {
-      item: { key: "deadlineTime", title: "结束日期" },
-      attr: {},
-    },
-    {
-      item: { key: "cycle", title: "周期" },
-      attr: {
-        is: "el-dict-tag",
-        dictName: "mk_periodic_unit",
-      },
-    },
-    {
-      item: { key: "unfold", title: "按列展开" },
-      attr: {
-        is: "el-dict-tag",
-        dictName: "mk_expansion_mode",
-      },
-    },
-    
-   
-  ];
-
-  const TabColumns = [
-    {
-      item: {
-        title: "指标",
-        key: "indexs",
-      },
-      attr: {
-        value: [],
-      },
-      TableColumns: [
-        {
-          item: { key: "target", title: "指标" },
-          attr: {
-            is: "el-dict-tag",
-            dictName: "mk_index_type",
-          },
-        },
-      ],
-    },
-    {
-      item: {
-        title: "维度",
-        key: "dimensionalitys",
-      },
-      attr: {
-        value: [],
-      },
-      TableColumns: [
-        {
-          item: { key: "dimensionality", title: "维度" },
-          attr: {
-            is: "el-dict-tag",
-            dictName: "mk_dimensionality",
-          },
-        },
-      ],
-    },
-    {
-      item: {
-        title: "周期",
-        key: "cycles",
-      },
-      attr: {
-        value: [],
-      },
-      TableColumns: [
-        {
-          item: { key: "name", title: "周期名称", require: true },
-          attr: {},
-        },
-        {
-          item: {
-            key: "startTime",
-            title: "周期开始日期",
-            require: true,
-          },
-          attr: {},
-        },
-        {
-          item: {
-            key: "deadlineTime",
-            title: "周期结束日期",
-            require: true,
-          },
-          attr: {},
-        },
-      ],
-    },
-  ];
-
-  return { TableColumns, TabColumns };
-}

+ 0 - 170
src/views/business/spd/target/targetTemplate/see/index.vue

@@ -1,170 +0,0 @@
-<script>
-import useColumns from "./columns";
-import { getTargetTemplate } from "@/api/business/spd/starget/targetTemplate";
-
-export default {
-  name: "SeeDrawer",
-  components: {
-    ElSuperDescriptions: () =>
-      import("@/components/super-descriptions/index.vue"),
-    ElSuperTable: () => import("@/components/super-table/index.vue"),
-  },
-  data() {
-    const {
-      TabColumns,
-      TableColumns,
-      TabColumns: [
-        {
-          item: { key: tabName },
-        },
-      ],
-    } = useColumns();
-    return {
-      width: "50%",
-      column: 2,
-      title: "明 细",
-      visible: false,
-      loading: false,
-      params: {},
-      tabName,
-      TabColumns: TabColumns,
-      TableColumns: TableColumns,
-    };
-  },
-  props: {
-    dict: {
-      type: Object,
-    },
-    model: {
-      type: Object,
-    },
-    selectData: {
-      type: [Array],
-      require: true,
-    },
-  },
-  computed: {
-    disabled: {
-      get() {
-        const { selectData } = this;
-        if (selectData.length !== 1) {
-          return true;
-        }
-      },
-      set() {},
-    },
-  },
-  watch: {},
-  methods: {
-    //
-    async fetchTemplate(id) {
-      try {
-        this.loading = true;
-        const { code, data } = await getTargetTemplate(id);
-        if (code === 200) {
-          this.params = data;
-          return true;
-        } else {
-          return false;
-        }
-      } catch (err) {
-        // catch
-        console.error(err);
-      } finally {
-        // finally
-        this.loading = false;
-      }
-    },
-    //
-    async open(prop) {
-      this.visible = await this.fetchTemplate(prop[0].id);
-    },
-    //
-    async hide() {
-      const {
-        TabColumns: [
-          {
-            item: { key: tabName },
-          },
-        ],
-      } = useColumns();
-      this.visible = false;
-      this.tabName = tabName;
-    },
-  },
-  created() {},
-  mounted() {},
-  destroyed() {},
-};
-</script>
-<template>
-  <el-button
-    v-bind="$attrs"
-    v-on="$listeners"
-    :disabled="disabled"
-    @click="open"
-  >
-    {{ title }}
-    <el-drawer
-      :size="width"
-      :title="title"
-      :visible.sync="visible"
-      append-to-body
-      @close="hide(selectData)"
-    >
-      <div
-        style="
-          z-index: 6666;
-          position: fixed;
-          right: 20px;
-          top: 50%;
-          transform: translateY(-50%);
-          display: flex;
-          flex-direction: column;
-        "
-      >
-        <el-button
-          :size="$attrs.size"
-          :disabled="params.$index === 1"
-          circle
-          icon="el-icon-top"
-          @click="fetchItem(params.$index - 1)"
-          style="margin: 0 0 10px 0"
-        ></el-button>
-        <el-button
-          :size="$attrs.size"
-          :disabled="params.$index === params.$total"
-          circle
-          icon="el-icon-bottom"
-          @click="fetchItem(params.$index + 1)"
-          style="margin: 0"
-        ></el-button>
-      </div>
-      <el-super-descriptions
-        v-model="params"
-        :dict="dict"
-        :column="column"
-        :size="$attrs.size"
-        :columns="TableColumns"
-      >
-      </el-super-descriptions>
-      <el-tabs v-model="tabName" :size="$attrs.size" style="margin: 10px">
-        <el-tab-pane
-          v-for="({ item, TableColumns: columns }, index) in TabColumns"
-          :key="index"
-          :name="item.key"
-          :label="item.title"
-          lazy
-        >
-          <el-super-table
-            v-model="params[item.key]"
-            :size="$attrs.size"
-            :dict="dict"
-            :columns="columns"
-          >
-          </el-super-table>
-        </el-tab-pane>
-      </el-tabs>
-    </el-drawer>
-  </el-button>
-</template>

+ 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: {