Browse Source

目标管理-查看功能;

001295 1 year ago
parent
commit
cae5b3b818

+ 214 - 195
src/views/business/spd/target/AnnualSaleGoal.vue

@@ -106,7 +106,7 @@
       </el-col>
     </el-row>
 
-    <el-table v-loading="loading" :data="annualSaleGoalList" @selection-change="handleSelectionChange"
+    <el-table v-loading="loading" :data="annualSaleGoalList" @selection-change="handleSelectionChange" @row-dblclick="useDoubleClick"
       v-horizontal-scroll>
       <el-table-column label="编码" align="center" prop="code" width="180" />
       <el-table-column label="目标名称" align="center" prop="goalName" width="180" />
@@ -148,7 +148,7 @@
 
     <el-drawer :title="title" :visible.sync="open" direction="rtl" :before-close="handleClose" size="100%"
       v-horizontal-scroll disabled>
-      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px" :disabled="openStatus == 'see'">
         <el-row :gutter="20">
           <el-col :span="6">
             <el-form-item label="编码" prop="code">
@@ -222,199 +222,200 @@
             </el-form-item>
           </el-col>
         </el-row>
-      </el-form>
-      <div id="addDetails">
-        <el-row :gutter="10" class="mb8" style="margin-left: 80%" disabled>
-          <el-col :span="1.5">
-            <el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleTemplateDownload">模板下载
-            </el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-upload ref="upload" action="" :http-request="handleImport">
-              <el-button size="mini" type="primary">导入明细</el-button>
-            </el-upload>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddDetails">增行</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="primary" plain icon="el-icon-edit-outline" size="mini"
-              @click="dialogUpdateMore.dialogFormVisible = true">批量修改</el-button>
-          </el-col>
-        </el-row>
-        <el-tabs v-model="activeName">
-          <el-tab-pane label="年销售目标填报明细" name="annualSaleGoalDetails">
-            <el-table max-height="300" show-summary :summary-method="getSummaries" v-loading="loading"
-              :data="annualSaleGoalDetailsList" @selection-change="handleSelectionChange" v-horizontal-scroll>
-              <el-table-column label="序号" type="index" width="70" align="center" fixed />
-              <el-table-column label="销售组织" align="center" width="180"
-                :render-header="(h, obj) => addRedStar(h, obj, '0')">
-                <template slot-scope="scope">
-                  <el-popover-select-v2 v-model="annualSaleGoalDetailsList[scope.$index].saleOrg" title="销售组织"
-                    valueKey="name" referName="ORG_PARAM" :dataMapping="{ saleOrgCode: 'code', saleOrg: 'name'}"
-                    :source.sync="annualSaleGoalDetailsList[scope.$index]" placeholder="请输入销售组织">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <el-table-column label="销售区域" align="center" width="180"
-                :render-header="(h, obj) => addRedStar(h, obj, '0')">
-                <template slot-scope="scope">
-                  <el-popover-select-v2 v-model="annualSaleGoalDetailsList[scope.$index].saleZone" title="销售区域"
-                    valueKey="name" referName="MK_SALESAREA_PARAM"
-                    :dataMapping="{ saleZoneCode: 'code', saleZone: 'name'}"
-                    :source.sync="annualSaleGoalDetailsList[scope.$index]" placeholder="请输入销售区域">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <el-table-column label="客户" align="center" width="180"
-                :render-header="(h, obj) => addRedStar(h, obj, '0')">
-                <template slot-scope="scope">
-                  <el-popover-select-v2 v-model="annualSaleGoalDetailsList[scope.$index].custom" title="客户"
-                    valueKey="name" referName="CUSTOMER_PARAM" :dataMapping="{ customCode: 'code', custom: 'name'}"
-                    :source.sync="annualSaleGoalDetailsList[scope.$index]" placeholder="请输入客户">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <el-table-column label="负责人" align="center" width="180"
-                :render-header="(h, obj) => addRedStar(h, obj, '0')">
-                <template slot-scope="scope">
-                  <el-popover-select-v2 v-model="annualSaleGoalDetailsList[scope.$index].creator" title="负责人"
-                    valueKey="name" referName="CONTACTS_PARAM" :dataMapping="{ creatorCode: 'code', creator: 'name'}"
-                    :source.sync="annualSaleGoalDetailsList[scope.$index]" placeholder="请输入负责人">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <el-table-column label="一级分类" align="center" width="180"
-                :render-header="(h, obj) => addRedStar(h, obj, '0')">
-                <template slot-scope="scope">
-                  <el-input v-model="annualSaleGoalDetailsList[scope.$index].oneLevelClassify" placeholder="请输入一级分类"
-                    disabled></el-input>
-                </template>
-              </el-table-column>
-              <el-table-column label="二级分类" align="center" width="180"
-                :render-header="(h, obj) => addRedStar(h, obj, '0')">
-                <template slot-scope="scope">
-                  <el-input v-model="annualSaleGoalDetailsList[scope.$index].twoLevelClassify" placeholder="请输入二级分类"
-                    disabled></el-input>
-                </template>
-              </el-table-column>
-              <el-table-column label="物料" align="center" width="220"
-                :render-header="(h, obj) => addRedStar(h, obj, '0')">
-                <template slot-scope="scope">
-                  <el-popover-select-v2 v-model="annualSaleGoalDetailsList[scope.$index].material" title="物料"
-                    valueKey="name" referName="MATERIAL_PARAM"
-                    @change="setClassify(scope.row.oneLevelClassify, scope.row.twoLevelClassify, annualSaleGoalDetailsList[scope.$index])"
-                    :dataMapping="{ materialCode: 'code', material: 'name', oneLevelClassify: 'oneClass', twoLevelClassify: 'twoClass'}"
-                    :source.sync="annualSaleGoalDetailsList[scope.$index]" placeholder="请输入物料">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <el-table-column label="合计" align="center" prop="totalGoal" width="180">
-                <template slot-scope="scope">
-                  <el-input v-model="annualSaleGoalDetailsList[scope.$index].totalGoal" disabled></el-input>
-                </template>
-              </el-table-column>
-              <el-table-column label="一月" align="center" prop="januaryGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
-                    v-model="annualSaleGoalDetailsList[scope.$index].januaryGoal" :precision="2" :step="0.1" :min="0">
-                  </el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="二月" align="center" prop="februaryGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
-                    v-model="annualSaleGoalDetailsList[scope.$index].februaryGoal" :precision="2" :step="0.1" :min="0">
-                  </el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="三月" align="center" prop="marchGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
-                    v-model="annualSaleGoalDetailsList[scope.$index].marchGoal" :precision="2" :step="0.1" :min="0">
-                  </el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="四月" align="center" prop="aprilGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
-                    v-model="annualSaleGoalDetailsList[scope.$index].aprilGoal" :precision="2" :step="0.1" :min="0">
-                  </el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="五月" align="center" prop="mayGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
-                    v-model="annualSaleGoalDetailsList[scope.$index].mayGoal" :precision="2" :step="0.1" :min="0">
-                  </el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="六月" align="center" prop="juneGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
-                    v-model="annualSaleGoalDetailsList[scope.$index].juneGoal" :precision="2" :step="0.1" :min="0">
-                  </el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="七月" align="center" prop="julyGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
-                    v-model="annualSaleGoalDetailsList[scope.$index].julyGoal" :precision="2" :step="0.1" :min="0">
-                  </el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="八月" align="center" prop="augustGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
-                    v-model="annualSaleGoalDetailsList[scope.$index].augustGoal" :precision="2" :step="0.1" :min="0">
-                  </el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="九月" align="center" prop="septemberGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
-                    v-model="annualSaleGoalDetailsList[scope.$index].septemberGoal" :precision="2" :step="0.1" :min="0">
-                  </el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="十月" align="center" prop="octoberGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
-                    v-model="annualSaleGoalDetailsList[scope.$index].octoberGoal" :precision="2" :step="0.1" :min="0">
-                  </el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="十一月" align="center" prop="novemberGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
-                    v-model="annualSaleGoalDetailsList[scope.$index].novemberGoal" :precision="2" :step="0.1" :min="0">
-                  </el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="十二月" align="center" prop="decemberGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
-                    v-model="annualSaleGoalDetailsList[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-tabs>
-        <div slot="footer" class="dialog-footer" style="margin-left: 88%; margin-top: 1%">
-          <el-button type="primary" @click="submitForm" size="medium">确 定</el-button>
-          <el-button @click="cancel" size="medium">返 回</el-button>
+      
+        <div id="addDetails">
+          <el-row :gutter="10" class="mb8" style="margin-left: 80%">
+            <el-col :span="1.5">
+              <el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleTemplateDownload">模板下载
+              </el-button>
+            </el-col>
+            <el-col :span="1.5">
+              <el-upload ref="upload" action="" :http-request="handleImport">
+                <el-button size="mini" type="primary">导入明细</el-button>
+              </el-upload>
+            </el-col>
+            <el-col :span="1.5">
+              <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddDetails">增行</el-button>
+            </el-col>
+            <el-col :span="1.5">
+              <el-button type="primary" plain icon="el-icon-edit-outline" size="mini"
+                @click="dialogUpdateMore.dialogFormVisible = true">批量修改</el-button>
+            </el-col>
+          </el-row>
+          <el-tabs v-model="activeName">
+            <el-tab-pane label="年销售目标填报明细" name="annualSaleGoalDetails">
+              <el-table max-height="300" show-summary :summary-method="getSummaries" v-loading="loading"
+                :data="annualSaleGoalDetailsList" @selection-change="handleSelectionChange" v-horizontal-scroll>
+                <el-table-column label="序号" type="index" width="70" align="center" fixed />
+                <el-table-column label="销售组织" align="center" width="180"
+                  :render-header="(h, obj) => addRedStar(h, obj, '0')">
+                  <template slot-scope="scope">
+                    <el-popover-select-v2 v-model="annualSaleGoalDetailsList[scope.$index].saleOrg" title="销售组织"
+                      valueKey="name" referName="ORG_PARAM" :dataMapping="{ saleOrgCode: 'code', saleOrg: 'name'}"
+                      :source.sync="annualSaleGoalDetailsList[scope.$index]" placeholder="请输入销售组织">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <el-table-column label="销售区域" align="center" width="180"
+                  :render-header="(h, obj) => addRedStar(h, obj, '0')">
+                  <template slot-scope="scope">
+                    <el-popover-select-v2 v-model="annualSaleGoalDetailsList[scope.$index].saleZone" title="销售区域"
+                      valueKey="name" referName="MK_SALESAREA_PARAM"
+                      :dataMapping="{ saleZoneCode: 'code', saleZone: 'name'}"
+                      :source.sync="annualSaleGoalDetailsList[scope.$index]" placeholder="请输入销售区域">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <el-table-column label="客户" align="center" width="180"
+                  :render-header="(h, obj) => addRedStar(h, obj, '0')">
+                  <template slot-scope="scope">
+                    <el-popover-select-v2 v-model="annualSaleGoalDetailsList[scope.$index].custom" title="客户"
+                      valueKey="name" referName="CUSTOMER_PARAM" :dataMapping="{ customCode: 'code', custom: 'name'}"
+                      :source.sync="annualSaleGoalDetailsList[scope.$index]" placeholder="请输入客户">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <el-table-column label="负责人" align="center" width="180"
+                  :render-header="(h, obj) => addRedStar(h, obj, '0')">
+                  <template slot-scope="scope">
+                    <el-popover-select-v2 v-model="annualSaleGoalDetailsList[scope.$index].creator" title="负责人"
+                      valueKey="name" referName="CONTACTS_PARAM" :dataMapping="{ creatorCode: 'code', creator: 'name'}"
+                      :source.sync="annualSaleGoalDetailsList[scope.$index]" placeholder="请输入负责人">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <el-table-column label="一级分类" align="center" width="180"
+                  :render-header="(h, obj) => addRedStar(h, obj, '0')">
+                  <template slot-scope="scope">
+                    <el-input v-model="annualSaleGoalDetailsList[scope.$index].oneLevelClassify" placeholder="请输入一级分类"
+                      disabled></el-input>
+                  </template>
+                </el-table-column>
+                <el-table-column label="二级分类" align="center" width="180"
+                  :render-header="(h, obj) => addRedStar(h, obj, '0')">
+                  <template slot-scope="scope">
+                    <el-input v-model="annualSaleGoalDetailsList[scope.$index].twoLevelClassify" placeholder="请输入二级分类"
+                      disabled></el-input>
+                  </template>
+                </el-table-column>
+                <el-table-column label="物料" align="center" width="220"
+                  :render-header="(h, obj) => addRedStar(h, obj, '0')">
+                  <template slot-scope="scope">
+                    <el-popover-select-v2 v-model="annualSaleGoalDetailsList[scope.$index].material" title="物料"
+                      valueKey="name" referName="MATERIAL_PARAM"
+                      @change="setClassify(scope.row.oneLevelClassify, scope.row.twoLevelClassify, annualSaleGoalDetailsList[scope.$index])"
+                      :dataMapping="{ materialCode: 'code', material: 'name', oneLevelClassify: 'oneClass', twoLevelClassify: 'twoClass'}"
+                      :source.sync="annualSaleGoalDetailsList[scope.$index]" placeholder="请输入物料">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <el-table-column label="合计" align="center" prop="totalGoal" width="180">
+                  <template slot-scope="scope">
+                    <el-input v-model="annualSaleGoalDetailsList[scope.$index].totalGoal" disabled></el-input>
+                  </template>
+                </el-table-column>
+                <el-table-column label="一月" align="center" prop="januaryGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
+                      v-model="annualSaleGoalDetailsList[scope.$index].januaryGoal" :precision="2" :step="0.1" :min="0">
+                    </el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="二月" align="center" prop="februaryGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
+                      v-model="annualSaleGoalDetailsList[scope.$index].februaryGoal" :precision="2" :step="0.1" :min="0">
+                    </el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="三月" align="center" prop="marchGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
+                      v-model="annualSaleGoalDetailsList[scope.$index].marchGoal" :precision="2" :step="0.1" :min="0">
+                    </el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="四月" align="center" prop="aprilGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
+                      v-model="annualSaleGoalDetailsList[scope.$index].aprilGoal" :precision="2" :step="0.1" :min="0">
+                    </el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="五月" align="center" prop="mayGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
+                      v-model="annualSaleGoalDetailsList[scope.$index].mayGoal" :precision="2" :step="0.1" :min="0">
+                    </el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="六月" align="center" prop="juneGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
+                      v-model="annualSaleGoalDetailsList[scope.$index].juneGoal" :precision="2" :step="0.1" :min="0">
+                    </el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="七月" align="center" prop="julyGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
+                      v-model="annualSaleGoalDetailsList[scope.$index].julyGoal" :precision="2" :step="0.1" :min="0">
+                    </el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="八月" align="center" prop="augustGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
+                      v-model="annualSaleGoalDetailsList[scope.$index].augustGoal" :precision="2" :step="0.1" :min="0">
+                    </el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="九月" align="center" prop="septemberGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
+                      v-model="annualSaleGoalDetailsList[scope.$index].septemberGoal" :precision="2" :step="0.1" :min="0">
+                    </el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="十月" align="center" prop="octoberGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
+                      v-model="annualSaleGoalDetailsList[scope.$index].octoberGoal" :precision="2" :step="0.1" :min="0">
+                    </el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="十一月" align="center" prop="novemberGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
+                      v-model="annualSaleGoalDetailsList[scope.$index].novemberGoal" :precision="2" :step="0.1" :min="0">
+                    </el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="十二月" align="center" prop="decemberGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number @change="computeTotalDetails(scope.$index, annualSaleGoalDetailsList[scope.$index])"
+                      v-model="annualSaleGoalDetailsList[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-tabs>
+          <div slot="footer" class="dialog-footer" style="margin-left: 88%; margin-top: 1%">
+            <el-button type="primary" @click="submitForm" size="medium">确 定</el-button>
+            <el-button @click="cancel" size="medium">返 回</el-button>
+          </div>
         </div>
-      </div>
+      </el-form>
     </el-drawer>
     <!-- 批量修改对话框-->
     <el-dialog title="批量修改" width="30%" :visible.sync="dialogUpdateMore.dialogFormVisible" append-to-body
@@ -675,7 +676,9 @@
             value: 4,
             label: '制单人'
           }, ]
-        }
+        },
+        //打开状态
+        openStatus: null,
       };
     },
     created() {
@@ -770,6 +773,7 @@
       },
       /** 新增按钮操作 */
       handleAdd() {
+        this.openStatus = 'edit';
         this.reset();
         this.title = "添加--年度销售目标";
         this.annualSaleGoalDetailsList = []
@@ -815,6 +819,7 @@
       },
       /** 修改按钮操作 */
       handleUpdate(row) {
+        this.openStatus = 'edit';
         this.reset();
         const id = row.id || this.ids
         getAnnualSaleGoal(id).then(response => {
@@ -827,6 +832,7 @@
       },
       // 复制按钮
       handleCopy(id) {
+        this.openStatus = 'edit';
         this.reset();
         getAnnualSaleGoal(id).then(response => {
           console.log(response);
@@ -1138,6 +1144,19 @@
           this.loading = false;
         })
       },
+      //双击行
+      useDoubleClick(row){
+        this.openStatus = 'see';
+        this.reset();
+        const id = row.id || this.ids
+        getAnnualSaleGoal(id).then(response => {
+          this.form = response.data;
+          this.saveFormTwoPoint(this.form)
+          this.annualSaleGoalDetailsList = this.form.annualGoalMergeDetails
+          this.open = true;
+          this.title = "查看--年度销售目标";
+        });
+      },
     },
   }
 

+ 414 - 389
src/views/business/spd/target/AnnualSaleGoalMerge.vue

@@ -124,7 +124,7 @@
       </el-col>
     </el-row>
 
-    <el-table v-loading="loading" :data="annualSaleGoalMergeList" @selection-change="handleSelectionChange"
+    <el-table v-loading="loading" :data="annualSaleGoalMergeList" @selection-change="handleSelectionChange" @row-dblclick="useDoubleClick"
       v-horizontal-scroll>
       <el-table-column label="编码" align="center" prop="code" width="180" />
       <el-table-column label="目标名称" align="center" prop="goalName" width="180" />
@@ -169,7 +169,7 @@
     <!-- 添加或修改年度销售目标明细对话框 -->
     <el-drawer :title="title" :visible.sync="open" direction="rtl" :before-close="handleClose" size="100%"
       v-horizontal-scroll>
-      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px" :disabled="openStatus == 'see'">
         <el-row :gutter="20">
           <el-col :span="6">
             <el-form-item label="编码" prop="code">
@@ -257,393 +257,393 @@
             </el-form-item>
           </el-col>
         </el-row>
-      </el-form>
-      <div>
-        <el-row :gutter="10" class="mb8" style="margin-left: 94%">
-          <el-col :span="1.5">
-            <el-button type="primary" plain icon="el-icon-folder-opened" size="mini" @click="clickMerge">合 并</el-button>
-          </el-col>
-        </el-row>
-        <el-tabs v-model="activeName" @tab-click="getNewTwoArray">
-          <el-tab-pane label="年销售目标合并明细" name="annualSaleGoalMergeDetails">
-            <el-table max-height="300" show-summary :summary-method="getSummaries" v-loading="loading"
-              :data="annualSaleGoalMergeDetailsList" v-horizontal-scroll>
-              <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 :dataMapping="{saleOrg: 'name'}"
-                    :source.sync="annualSaleGoalMergeDetailsList[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="annualSaleGoalMergeDetailsList[scope.$index].saleZone" title="销售区域"
-                    valueKey="name" referName="MK_SALESAREA_PARAM" disabled :dataMapping="{saleZone: 'name'}"
-                    :source.sync="annualSaleGoalMergeDetailsList[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="annualSaleGoalMergeDetailsList[scope.$index].custom" title="客户"
-                    valueKey="name" referName="CUSTOMER_PARAM" disabled :dataMapping="{custom: 'name'}"
-                    :source.sync="annualSaleGoalMergeDetailsList[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="annualSaleGoalMergeDetailsList[scope.$index].creator" title="负责人"
-                    valueKey="name" referName="CONTACTS_PARAM" disabled :dataMapping="{creator: 'name'}"
-                    :source.sync="annualSaleGoalMergeDetailsList[scope.$index]" placeholder="请输入负责人">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <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)"
-                    style="width: 200px" disabled>
-                    <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.id" />
-                  </el-select>
-                </template>
-              </el-table-column>
-              <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)"
-                    style="width: 200px" disabled>
-                    <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.id" />
-                  </el-select>
-                </template>
-              </el-table-column>
-              <el-table-column label="合计" align="center" prop="totalGoal" width="180">
-                <template slot-scope="scope">
-                  <el-input v-model="annualSaleGoalMergeDetailsList[scope.$index].totalGoal" disabled></el-input>
-                </template>
-              </el-table-column>
-              <el-table-column label="一月" align="center" prop="januaryGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number
-                    @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
-                    v-model="annualSaleGoalMergeDetailsList[scope.$index].januaryGoal" :precision="2" :step="0.1"
-                    :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="二月" align="center" prop="februaryGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number
-                    @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
-                    v-model="annualSaleGoalMergeDetailsList[scope.$index].februaryGoal" :precision="2" :step="0.1"
-                    :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="三月" align="center" prop="marchGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number
-                    @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
-                    v-model="annualSaleGoalMergeDetailsList[scope.$index].marchGoal" :precision="2" :step="0.1"
-                    :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="四月" align="center" prop="aprilGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number
-                    @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
-                    v-model="annualSaleGoalMergeDetailsList[scope.$index].aprilGoal" :precision="2" :step="0.1"
-                    :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="五月" align="center" prop="mayGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number
-                    @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
-                    v-model="annualSaleGoalMergeDetailsList[scope.$index].mayGoal" :precision="2" :step="0.1" :min="0">
-                  </el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="六月" align="center" prop="juneGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number
-                    @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
-                    v-model="annualSaleGoalMergeDetailsList[scope.$index].juneGoal" :precision="2" :step="0.1" :min="0">
-                  </el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="七月" align="center" prop="julyGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number
-                    @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
-                    v-model="annualSaleGoalMergeDetailsList[scope.$index].julyGoal" :precision="2" :step="0.1" :min="0">
-                  </el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="八月" align="center" prop="augustGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number
-                    @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
-                    v-model="annualSaleGoalMergeDetailsList[scope.$index].augustGoal" :precision="2" :step="0.1"
-                    :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="九月" align="center" prop="septemberGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number
-                    @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
-                    v-model="annualSaleGoalMergeDetailsList[scope.$index].septemberGoal" :precision="2" :step="0.1"
-                    :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="十月" align="center" prop="octoberGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number
-                    @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
-                    v-model="annualSaleGoalMergeDetailsList[scope.$index].octoberGoal" :precision="2" :step="0.1"
-                    :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="十一月" align="center" prop="novemberGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number
-                    @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
-                    v-model="annualSaleGoalMergeDetailsList[scope.$index].novemberGoal" :precision="2" :step="0.1"
-                    :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="十二月" align="center" prop="decemberGoal" width="220">
-                <template slot-scope="scope">
-                  <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>
-          </el-tab-pane>
-          <el-tab-pane label="区域目标汇总(年)" name="zoneGoalSum(year)">
-            <el-table max-height="300" show-summary :summary-method="getSummaries" v-loading="loading"
-              :data="areaDetailList" v-horizontal-scroll>
-              <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 :dataMapping="{saleOrg: 'name'}"
-                    :source.sync="areaDetailList[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="areaDetailList[scope.$index].saleZone" title="销售区域" valueKey="name"
-                    referName="CUSTOMER_PARAM" disabled :dataMapping="{saleZone: 'name'}"
-                    :source.sync="areaDetailList[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="areaDetailList[scope.$index].creator" title="负责人" valueKey="name"
-                    referName="CONTACTS_PARAM" disabled :dataMapping="{creator: 'name'}"
-                    :source.sync="areaDetailList[scope.$index]" placeholder="请输入负责人">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <el-table-column label="合计" align="center" prop="totalGoal" width="180">
-                <template slot-scope="scope">
-                  <el-input v-model="areaDetailList[scope.$index].totalGoal" disabled></el-input>
-                </template>
-              </el-table-column>
-              <el-table-column label="一月" align="center" prop="januaryGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="areaDetailList[scope.$index].januaryGoal" :precision="2"
-                    :step="0.1" :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="二月" align="center" prop="februaryGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="areaDetailList[scope.$index].februaryGoal" :precision="2"
-                    :step="0.1" :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="三月" align="center" prop="marchGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="areaDetailList[scope.$index].marchGoal" :precision="2" :step="0.1"
-                    :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="四月" align="center" prop="aprilGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="areaDetailList[scope.$index].aprilGoal" :precision="2" :step="0.1"
-                    :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="五月" align="center" prop="mayGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="areaDetailList[scope.$index].mayGoal" :precision="2" :step="0.1"
-                    :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="六月" align="center" prop="juneGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="areaDetailList[scope.$index].juneGoal" :precision="2" :step="0.1"
-                    :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="七月" align="center" prop="julyGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="areaDetailList[scope.$index].julyGoal" :precision="2" :step="0.1"
-                    :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="八月" align="center" prop="augustGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="areaDetailList[scope.$index].augustGoal" :precision="2" :step="0.1"
-                    :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="九月" align="center" prop="septemberGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="areaDetailList[scope.$index].septemberGoal" :precision="2"
-                    :step="0.1" :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="十月" align="center" prop="octoberGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="areaDetailList[scope.$index].octoberGoal" :precision="2"
-                    :step="0.1" :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="十一月" align="center" prop="novemberGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="areaDetailList[scope.$index].novemberGoal" :precision="2"
-                    :step="0.1" :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="十二月" align="center" prop="decemberGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="areaDetailList[scope.$index].decemberGoal" :precision="2"
-                    :step="0.1" :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-            </el-table>
-          </el-tab-pane>
-          <el-tab-pane label="客户目标汇总(年)" name="customerGoalSum(year)">
-            <el-table max-height="300" show-summary :summary-method="getSummaries" v-loading="loading"
-              :data="customerDetailList" v-horizontal-scroll>
-              <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 :dataMapping="{saleOrg: 'name'}"
-                    :source.sync="customerDetailList[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="customerDetailList[scope.$index].saleZone" title="销售区域" valueKey="name"
-                    referName="CUSTOMER_PARAM" disabled :dataMapping="{saleZone: 'name'}"
-                    :source.sync="customerDetailList[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="customerDetailList[scope.$index].custom" title="客户" valueKey="name"
-                    referName="CUSTOMER_PARAM" disabled :dataMapping="{custom: 'name'}"
-                    :source.sync="customerDetailList[scope.$index]" placeholder="请输入客户">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <el-table-column label="合计" align="center" prop="totalGoal" width="180">
-                <template slot-scope="scope">
-                  <el-input v-model="customerDetailList[scope.$index].totalGoal" disabled></el-input>
-                </template>
-              </el-table-column>
-              <el-table-column label="一月" align="center" prop="januaryGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="customerDetailList[scope.$index].januaryGoal" :precision="2"
-                    :step="0.1" :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="二月" align="center" prop="februaryGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="customerDetailList[scope.$index].februaryGoal" :precision="2"
-                    :step="0.1" :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="三月" align="center" prop="marchGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="customerDetailList[scope.$index].marchGoal" :precision="2"
-                    :step="0.1" :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="四月" align="center" prop="aprilGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="customerDetailList[scope.$index].aprilGoal" :precision="2"
-                    :step="0.1" :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="五月" align="center" prop="mayGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="customerDetailList[scope.$index].mayGoal" :precision="2"
-                    :step="0.1" :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="六月" align="center" prop="juneGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="customerDetailList[scope.$index].juneGoal" :precision="2"
-                    :step="0.1" :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="七月" align="center" prop="julyGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="customerDetailList[scope.$index].julyGoal" :precision="2"
-                    :step="0.1" :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="八月" align="center" prop="augustGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="customerDetailList[scope.$index].augustGoal" :precision="2"
-                    :step="0.1" :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="九月" align="center" prop="septemberGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="customerDetailList[scope.$index].septemberGoal" :precision="2"
-                    :step="0.1" :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="十月" align="center" prop="octoberGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="customerDetailList[scope.$index].octoberGoal" :precision="2"
-                    :step="0.1" :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="十一月" align="center" prop="novemberGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="customerDetailList[scope.$index].novemberGoal" :precision="2"
-                    :step="0.1" :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column label="十二月" align="center" prop="decemberGoal" width="220">
-                <template slot-scope="scope">
-                  <el-input-number disabled v-model="customerDetailList[scope.$index].decemberGoal" :precision="2"
-                    :step="0.1" :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-            </el-table>
-          </el-tab-pane>
-        </el-tabs>
-        <div slot="footer" class="dialog-footer" style="margin-left: 88%; margin-top: 1%">
-          <el-button type="primary" @click="submitForm" size="medium">确 定</el-button>
-          <el-button @click="cancel" size="medium">返 回</el-button>
+        <div>
+          <el-row :gutter="10" class="mb8" style="margin-left: 94%">
+            <el-col :span="1.5">
+              <el-button type="primary" plain icon="el-icon-folder-opened" size="mini" @click="clickMerge">合 并</el-button>
+            </el-col>
+          </el-row>
+          <el-tabs v-model="activeName" @tab-click="getNewTwoArray">
+            <el-tab-pane label="年销售目标合并明细" name="annualSaleGoalMergeDetails">
+              <el-table max-height="300" show-summary :summary-method="getSummaries" v-loading="loading"
+                :data="annualSaleGoalMergeDetailsList" v-horizontal-scroll>
+                <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 :dataMapping="{saleOrg: 'name'}"
+                      :source.sync="annualSaleGoalMergeDetailsList[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="annualSaleGoalMergeDetailsList[scope.$index].saleZone" title="销售区域"
+                      valueKey="name" referName="MK_SALESAREA_PARAM" disabled :dataMapping="{saleZone: 'name'}"
+                      :source.sync="annualSaleGoalMergeDetailsList[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="annualSaleGoalMergeDetailsList[scope.$index].custom" title="客户"
+                      valueKey="name" referName="CUSTOMER_PARAM" disabled :dataMapping="{custom: 'name'}"
+                      :source.sync="annualSaleGoalMergeDetailsList[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="annualSaleGoalMergeDetailsList[scope.$index].creator" title="负责人"
+                      valueKey="name" referName="CONTACTS_PARAM" disabled :dataMapping="{creator: 'name'}"
+                      :source.sync="annualSaleGoalMergeDetailsList[scope.$index]" placeholder="请输入负责人">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <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)"
+                      style="width: 200px" disabled>
+                      <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.id" />
+                    </el-select>
+                  </template>
+                </el-table-column>
+                <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)"
+                      style="width: 200px" disabled>
+                      <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.id" />
+                    </el-select>
+                  </template>
+                </el-table-column>
+                <el-table-column label="合计" align="center" prop="totalGoal" width="180">
+                  <template slot-scope="scope">
+                    <el-input v-model="annualSaleGoalMergeDetailsList[scope.$index].totalGoal" disabled></el-input>
+                  </template>
+                </el-table-column>
+                <el-table-column label="一月" align="center" prop="januaryGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number
+                      @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
+                      v-model="annualSaleGoalMergeDetailsList[scope.$index].januaryGoal" :precision="2" :step="0.1"
+                      :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="二月" align="center" prop="februaryGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number
+                      @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
+                      v-model="annualSaleGoalMergeDetailsList[scope.$index].februaryGoal" :precision="2" :step="0.1"
+                      :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="三月" align="center" prop="marchGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number
+                      @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
+                      v-model="annualSaleGoalMergeDetailsList[scope.$index].marchGoal" :precision="2" :step="0.1"
+                      :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="四月" align="center" prop="aprilGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number
+                      @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
+                      v-model="annualSaleGoalMergeDetailsList[scope.$index].aprilGoal" :precision="2" :step="0.1"
+                      :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="五月" align="center" prop="mayGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number
+                      @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
+                      v-model="annualSaleGoalMergeDetailsList[scope.$index].mayGoal" :precision="2" :step="0.1" :min="0">
+                    </el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="六月" align="center" prop="juneGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number
+                      @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
+                      v-model="annualSaleGoalMergeDetailsList[scope.$index].juneGoal" :precision="2" :step="0.1" :min="0">
+                    </el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="七月" align="center" prop="julyGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number
+                      @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
+                      v-model="annualSaleGoalMergeDetailsList[scope.$index].julyGoal" :precision="2" :step="0.1" :min="0">
+                    </el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="八月" align="center" prop="augustGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number
+                      @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
+                      v-model="annualSaleGoalMergeDetailsList[scope.$index].augustGoal" :precision="2" :step="0.1"
+                      :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="九月" align="center" prop="septemberGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number
+                      @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
+                      v-model="annualSaleGoalMergeDetailsList[scope.$index].septemberGoal" :precision="2" :step="0.1"
+                      :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="十月" align="center" prop="octoberGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number
+                      @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
+                      v-model="annualSaleGoalMergeDetailsList[scope.$index].octoberGoal" :precision="2" :step="0.1"
+                      :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="十一月" align="center" prop="novemberGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number
+                      @change="computeTotalDetails(scope.$index, annualSaleGoalMergeDetailsList[scope.$index])"
+                      v-model="annualSaleGoalMergeDetailsList[scope.$index].novemberGoal" :precision="2" :step="0.1"
+                      :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="十二月" align="center" prop="decemberGoal" width="220">
+                  <template slot-scope="scope">
+                    <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>
+            </el-tab-pane>
+            <el-tab-pane label="区域目标汇总(年)" name="zoneGoalSum(year)">
+              <el-table max-height="300" show-summary :summary-method="getSummaries" v-loading="loading"
+                :data="areaDetailList" v-horizontal-scroll>
+                <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 :dataMapping="{saleOrg: 'name'}"
+                      :source.sync="areaDetailList[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="areaDetailList[scope.$index].saleZone" title="销售区域" valueKey="name"
+                      referName="CUSTOMER_PARAM" disabled :dataMapping="{saleZone: 'name'}"
+                      :source.sync="areaDetailList[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="areaDetailList[scope.$index].creator" title="负责人" valueKey="name"
+                      referName="CONTACTS_PARAM" disabled :dataMapping="{creator: 'name'}"
+                      :source.sync="areaDetailList[scope.$index]" placeholder="请输入负责人">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <el-table-column label="合计" align="center" prop="totalGoal" width="180">
+                  <template slot-scope="scope">
+                    <el-input v-model="areaDetailList[scope.$index].totalGoal" disabled></el-input>
+                  </template>
+                </el-table-column>
+                <el-table-column label="一月" align="center" prop="januaryGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="areaDetailList[scope.$index].januaryGoal" :precision="2"
+                      :step="0.1" :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="二月" align="center" prop="februaryGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="areaDetailList[scope.$index].februaryGoal" :precision="2"
+                      :step="0.1" :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="三月" align="center" prop="marchGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="areaDetailList[scope.$index].marchGoal" :precision="2" :step="0.1"
+                      :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="四月" align="center" prop="aprilGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="areaDetailList[scope.$index].aprilGoal" :precision="2" :step="0.1"
+                      :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="五月" align="center" prop="mayGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="areaDetailList[scope.$index].mayGoal" :precision="2" :step="0.1"
+                      :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="六月" align="center" prop="juneGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="areaDetailList[scope.$index].juneGoal" :precision="2" :step="0.1"
+                      :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="七月" align="center" prop="julyGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="areaDetailList[scope.$index].julyGoal" :precision="2" :step="0.1"
+                      :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="八月" align="center" prop="augustGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="areaDetailList[scope.$index].augustGoal" :precision="2" :step="0.1"
+                      :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="九月" align="center" prop="septemberGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="areaDetailList[scope.$index].septemberGoal" :precision="2"
+                      :step="0.1" :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="十月" align="center" prop="octoberGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="areaDetailList[scope.$index].octoberGoal" :precision="2"
+                      :step="0.1" :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="十一月" align="center" prop="novemberGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="areaDetailList[scope.$index].novemberGoal" :precision="2"
+                      :step="0.1" :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="十二月" align="center" prop="decemberGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="areaDetailList[scope.$index].decemberGoal" :precision="2"
+                      :step="0.1" :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </el-tab-pane>
+            <el-tab-pane label="客户目标汇总(年)" name="customerGoalSum(year)">
+              <el-table max-height="300" show-summary :summary-method="getSummaries" v-loading="loading"
+                :data="customerDetailList" v-horizontal-scroll>
+                <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 :dataMapping="{saleOrg: 'name'}"
+                      :source.sync="customerDetailList[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="customerDetailList[scope.$index].saleZone" title="销售区域" valueKey="name"
+                      referName="CUSTOMER_PARAM" disabled :dataMapping="{saleZone: 'name'}"
+                      :source.sync="customerDetailList[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="customerDetailList[scope.$index].custom" title="客户" valueKey="name"
+                      referName="CUSTOMER_PARAM" disabled :dataMapping="{custom: 'name'}"
+                      :source.sync="customerDetailList[scope.$index]" placeholder="请输入客户">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <el-table-column label="合计" align="center" prop="totalGoal" width="180">
+                  <template slot-scope="scope">
+                    <el-input v-model="customerDetailList[scope.$index].totalGoal" disabled></el-input>
+                  </template>
+                </el-table-column>
+                <el-table-column label="一月" align="center" prop="januaryGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="customerDetailList[scope.$index].januaryGoal" :precision="2"
+                      :step="0.1" :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="二月" align="center" prop="februaryGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="customerDetailList[scope.$index].februaryGoal" :precision="2"
+                      :step="0.1" :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="三月" align="center" prop="marchGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="customerDetailList[scope.$index].marchGoal" :precision="2"
+                      :step="0.1" :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="四月" align="center" prop="aprilGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="customerDetailList[scope.$index].aprilGoal" :precision="2"
+                      :step="0.1" :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="五月" align="center" prop="mayGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="customerDetailList[scope.$index].mayGoal" :precision="2"
+                      :step="0.1" :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="六月" align="center" prop="juneGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="customerDetailList[scope.$index].juneGoal" :precision="2"
+                      :step="0.1" :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="七月" align="center" prop="julyGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="customerDetailList[scope.$index].julyGoal" :precision="2"
+                      :step="0.1" :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="八月" align="center" prop="augustGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="customerDetailList[scope.$index].augustGoal" :precision="2"
+                      :step="0.1" :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="九月" align="center" prop="septemberGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="customerDetailList[scope.$index].septemberGoal" :precision="2"
+                      :step="0.1" :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="十月" align="center" prop="octoberGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="customerDetailList[scope.$index].octoberGoal" :precision="2"
+                      :step="0.1" :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="十一月" align="center" prop="novemberGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="customerDetailList[scope.$index].novemberGoal" :precision="2"
+                      :step="0.1" :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <el-table-column label="十二月" align="center" prop="decemberGoal" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number disabled v-model="customerDetailList[scope.$index].decemberGoal" :precision="2"
+                      :step="0.1" :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </el-tab-pane>
+          </el-tabs>
+          <div slot="footer" class="dialog-footer" style="margin-left: 88%; margin-top: 1%">
+            <el-button type="primary" @click="submitForm" size="medium">确 定</el-button>
+            <el-button @click="cancel" size="medium">返 回</el-button>
+          </div>
         </div>
-      </div>
+      </el-form>
     </el-drawer>
 
     <!-- 用户导入对话框 -->
@@ -907,7 +907,9 @@
           },
           // 上传的地址
           url: process.env.VUE_APP_BASE_API + "/goal_management/annualSaleGoalMerge/importData"
-        }
+        },
+        //打开状态
+        openStatus: null,
       };
     },
     created() {
@@ -1015,6 +1017,7 @@
       },
       /** 新增按钮操作 */
       handleAdd() {
+        this.openStatus = 'edit';
         this.reset();
         this.annualSaleGoalMergeDetailsList = []
         this.areaDetailList = []
@@ -1062,6 +1065,7 @@
       },
       /** 修改按钮操作 */
       handleUpdate(row) {
+        this.openStatus = 'edit';
         this.reset();
         const id = row.id || this.ids
         this.activeName = 'annualSaleGoalMergeDetails'
@@ -1079,8 +1083,29 @@
           this.title = "修改--年度销售目标合并明细";
         });
       },
+      //双击行
+      useDoubleClick(row){
+        this.openStatus = 'see';
+        this.reset();
+        const id = row.id || this.ids
+        this.activeName = 'annualSaleGoalMergeDetails'
+        this.areaDetailList = []
+        this.customerDetailList = []
+        getAnnualSaleGoalMerge(id).then(response => {
+          console.log(response);
+          this.form = response.data;
+          this.form.goalTotal = this.form.goalTotal.toFixed(2)
+          for (const element of this.form.annualGoalMergeDetailsList) {
+            element.totalGoal = element.totalGoal.toFixed(2)
+          }
+          this.annualSaleGoalMergeDetailsList = JSON.parse(JSON.stringify(this.form.annualGoalMergeDetailsList))
+          this.open = true;
+          this.title = "查看--年度销售目标合并明细";
+        });
+      },
       // 复制按钮操作
       handleCopy(id) {
+        this.openStatus = 'edit';
         this.reset()
         this.annualSaleGoalMergeDetailsList = []
         this.areaDetailList = []

+ 208 - 189
src/views/business/spd/target/MonthGoalMerge.vue

@@ -128,7 +128,7 @@
       </el-col>
     </el-row>
 
-    <el-table v-loading="loading" :data="monthGoalMergeList" @selection-change="handleSelectionChange"
+    <el-table v-loading="loading" :data="monthGoalMergeList" @selection-change="handleSelectionChange" @row-dblclick="useDoubleClick"
       v-horizontal-scroll>
       <el-table-column label="编码" align="center" prop="code" />
       <el-table-column label="目标名称" align="center" prop="goalName" />
@@ -171,7 +171,7 @@
     <!-- 添加或修改月销售目标合并抽屉 -->
     <el-drawer :title="title" :visible.sync="open" direction="rtl" :before-close="handleClose" size="100%"
       v-horizontal-scroll>
-      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px" :disabled="openStatus == 'see'">
         <el-row :gutter="20">
           <el-col :span="6">
             <el-form-item label="编码" prop="code">
@@ -267,193 +267,192 @@
             </el-form-item>
           </el-col>
         </el-row>
-      </el-form>
-
-      <div>
-        <el-row :gutter="10" class="mb8" style="margin-left: 94%">
-          <el-col :span="1.5">
-            <el-button type="primary" plain icon="el-icon-folder-opened" size="mini" @click="clickMerge">合 并</el-button>
-          </el-col>
-        </el-row>
-        <el-tabs v-model="activeName" @tab-click="getNewTwoArray">
-          <el-tab-pane label="月销售目标合并明细" name="monthGoalMergeDetails">
-            <el-table max-height="300" show-summary :summary-method="getSummaries" v-loading="loading"
-              :data="monthGoalMergeDetailsList" @selection-change="handleSelectionChange" v-horizontal-scroll>
-              <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" referName="ORG_PARAM" disabled
-                    :dataMapping="{ saleOrgCode: 'code', saleOrg: 'name'}"
-                    :source.sync="monthGoalMergeDetailsList[scope.$index]" placeholder="请输入销售组织">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <el-table-column label="销售区域" align="center" prop="saleZone" width="180">
-                <template slot-scope="scope">
-                  <el-popover-select-v2 v-model="monthGoalMergeDetailsList[scope.$index].saleZone" title="销售区域"
-                    valueKey="name" referName="MK_SALESAREA_PARAM" disabled
-                    :dataMapping="{ saleZoneCode: 'code', saleZone: 'name'}"
-                    :source.sync="monthGoalMergeDetailsList[scope.$index]" placeholder="请输入销售区域">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <el-table-column label="客户" align="center" prop="custom" width="180">
-                <template slot-scope="scope">
-                  <el-popover-select-v2 v-model="monthGoalMergeDetailsList[scope.$index].custom" title="客户"
-                    valueKey="name" referName="CUSTOMER_PARAM" disabled
-                    :dataMapping="{ customCode: 'code', custom: 'name'}"
-                    :source.sync="monthGoalMergeDetailsList[scope.$index]" placeholder="请输入客户">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <el-table-column label="部门" align="center" prop="dept" width="180">
-                <template slot-scope="scope">
-                  <el-popover-select-v2 v-model="monthGoalMergeDetailsList[scope.$index].dept" title="部门"
-                    valueKey="name" referName="DEPT_PARAM" disabled :dataMapping="{ deptCode: 'code', dept: 'name'}"
-                    :source.sync="monthGoalMergeDetailsList[scope.$index]" placeholder="请输入客户">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <el-table-column label="制单人" align="center" prop="creator" width="180">
-                <template slot-scope="scope">
-                  <el-popover-select-v2 v-model="monthGoalMergeDetailsList[scope.$index].creator" title="负责人"
-                    valueKey="name" referName="CONTACTS_PARAM" disabled
-                    :dataMapping="{ creatorCode: 'code', creator: 'name'}"
-                    :source.sync="monthGoalMergeDetailsList[scope.$index]" placeholder="请输入负责人">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <el-table-column label="科室" align="center" prop="department" width="180">
-                <template slot-scope="scope">
-                  <el-input v-model="monthGoalMergeDetailsList[scope.$index].department" placeholder="请输入科室" disabled>
-                  </el-input>
-                </template>
-              </el-table-column>
-              <el-table-column label="一级分类" align="center" prop="oneLevelClassify" width="220">
-                <template slot-scope="scope">
-                  <el-select v-model="monthGoalMergeDetailsList[scope.$index].oneLevelClassify" size="mini" clearable
-                    @focus="chooseTreeReferForDetails('MATERIALCLASSIFY_PARAM', false, '一级物料分类', scope.$index)"
-                    style="width: 200px" disabled>
-                    <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.code" />
-                  </el-select>
-                </template>
-              </el-table-column>
-              <el-table-column label="二级分类" align="center" prop="twoLevelClassify" width="220">
-                <template slot-scope="scope">
-                  <el-select v-model="monthGoalMergeDetailsList[scope.$index].twoLevelClassify" size="mini" clearable
-                    @focus="chooseTreeReferForDetails('MATERIALCLASSIFY_PARAM', false, '二级物料分类', scope.$index)"
-                    style="width: 200px" disabled>
-                    <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.code" />
-                  </el-select>
-                </template>
-              </el-table-column>
-              <el-table-column label="物料" align="center" prop="material" width="180">
-                <template slot-scope="scope">
-                  <el-popover-select-v2 v-model="monthGoalMergeDetailsList[scope.$index].material" title="物料"
-                    valueKey="name" referName="MATERIAL_PARAM" disabled
-                    :dataMapping="{ materialCode: 'code', material: 'name'}"
-                    :source.sync="monthGoalMergeDetailsList[scope.$index]" placeholder="请输入物料">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <el-table-column label="月份" align="center" prop="monthly" width="250">
-                <template slot-scope="scope">
-                  <el-date-picker disabled v-model="monthGoalMergeDetailsList[scope.$index].monthly"
-                    value-format="yyyy-MM" type="month" placeholder="选择月份">
-                  </el-date-picker>
-                </template>
-              </el-table-column>
-              <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>
-          </el-tab-pane>
-          <el-tab-pane label="区域目标汇总(月)" name="zoneGoalSum" v-if="this.form.goalCategory == '销售区域'">
-            <el-table max-height="300" :data="zoneGoalSumList" v-horizontal-scroll>
-              <el-table-column label="序号" type="index" width="55" align="center" fixed />
-              <el-table-column label="销售组织" align="center" prop="saleOrg" 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" prop="saleZone" width="180">
-                <template slot-scope="scope">
-                  <el-popover-select-v2 v-model="zoneGoalSumList[scope.$index].saleZone" title="销售区域" valueKey="name"
-                    referName="ORG_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" prop="monthly" 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="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>
-              </el-table-column>
-            </el-table>
-          </el-tab-pane>
-          <el-tab-pane label="客户目标汇总(月)" name="customGoalSum" v-if="this.form.goalCategory == '销售区域'">
-            <el-table max-height="300" :data="customGoalSumList" v-horizontal-scroll>
-              <el-table-column label="序号" type="index" width="55" align="center" fixed />
-              <el-table-column label="销售组织" align="center" prop="saleOrg" width="180">
-                <template slot-scope="scope">
-                  <el-popover-select-v2 v-model="customGoalSumList[scope.$index].saleOrg" title="销售组织" valueKey="name"
-                    referName="ORG_PARAM" disabled :dataMapping="{ saleOrgCode: 'code', saleOrg: 'name'}"
-                    :source.sync="customGoalSumList[scope.$index]" placeholder="请输入销售组织">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <el-table-column label="销售区域" align="center" prop="saleZone" width="180">
-                <template slot-scope="scope">
-                  <el-popover-select-v2 v-model="customGoalSumList[scope.$index].saleZone" title="销售区域" valueKey="name"
-                    referName="ORG_PARAM" disabled :dataMapping="{ saleZoneCode: 'code', saleZone: 'name'}"
-                    :source.sync="customGoalSumList[scope.$index]" placeholder="请输入销售区域">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <el-table-column label="客户" align="center" prop="custom" width="180">
-                <template slot-scope="scope">
-                  <el-popover-select-v2 v-model="customGoalSumList[scope.$index].custom" title="客户" valueKey="name"
-                    referName="CUSTOMER_PARAM" disabled :dataMapping="{ customCode: 'code', custom: 'name'}"
-                    :source.sync="customGoalSumList[scope.$index]" placeholder="请输入客户">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <el-table-column label="月份" align="center" prop="monthly" width="250">
-                <template slot-scope="scope">
-                  <el-date-picker disabled v-model="customGoalSumList[scope.$index].monthly" value-format="yyyy-MM"
-                    type="month" placeholder="选择月份">
-                  </el-date-picker>
-                </template>
-              </el-table-column>
-              <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>
-              </el-table-column>
-            </el-table>
-          </el-tab-pane>
-        </el-tabs>
-        <div slot="footer" class="dialog-footer" style="margin-left: 88%; margin-top: 1%">
-          <el-button type="primary" @click="submitForm" size="medium">确 定</el-button>
-          <el-button @click="cancel" size="medium">返 回</el-button>
+        <div>
+          <el-row :gutter="10" class="mb8" style="margin-left: 94%">
+            <el-col :span="1.5">
+              <el-button type="primary" plain icon="el-icon-folder-opened" size="mini" @click="clickMerge">合 并</el-button>
+            </el-col>
+          </el-row>
+          <el-tabs v-model="activeName" @tab-click="getNewTwoArray">
+            <el-tab-pane label="月销售目标合并明细" name="monthGoalMergeDetails">
+              <el-table max-height="300" show-summary :summary-method="getSummaries" v-loading="loading"
+                :data="monthGoalMergeDetailsList" @selection-change="handleSelectionChange" v-horizontal-scroll>
+                <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" referName="ORG_PARAM" disabled
+                      :dataMapping="{ saleOrgCode: 'code', saleOrg: 'name'}"
+                      :source.sync="monthGoalMergeDetailsList[scope.$index]" placeholder="请输入销售组织">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <el-table-column label="销售区域" align="center" prop="saleZone" width="180">
+                  <template slot-scope="scope">
+                    <el-popover-select-v2 v-model="monthGoalMergeDetailsList[scope.$index].saleZone" title="销售区域"
+                      valueKey="name" referName="MK_SALESAREA_PARAM" disabled
+                      :dataMapping="{ saleZoneCode: 'code', saleZone: 'name'}"
+                      :source.sync="monthGoalMergeDetailsList[scope.$index]" placeholder="请输入销售区域">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <el-table-column label="客户" align="center" prop="custom" width="180">
+                  <template slot-scope="scope">
+                    <el-popover-select-v2 v-model="monthGoalMergeDetailsList[scope.$index].custom" title="客户"
+                      valueKey="name" referName="CUSTOMER_PARAM" disabled
+                      :dataMapping="{ customCode: 'code', custom: 'name'}"
+                      :source.sync="monthGoalMergeDetailsList[scope.$index]" placeholder="请输入客户">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <el-table-column label="部门" align="center" prop="dept" width="180">
+                  <template slot-scope="scope">
+                    <el-popover-select-v2 v-model="monthGoalMergeDetailsList[scope.$index].dept" title="部门"
+                      valueKey="name" referName="DEPT_PARAM" disabled :dataMapping="{ deptCode: 'code', dept: 'name'}"
+                      :source.sync="monthGoalMergeDetailsList[scope.$index]" placeholder="请输入客户">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <el-table-column label="制单人" align="center" prop="creator" width="180">
+                  <template slot-scope="scope">
+                    <el-popover-select-v2 v-model="monthGoalMergeDetailsList[scope.$index].creator" title="负责人"
+                      valueKey="name" referName="CONTACTS_PARAM" disabled
+                      :dataMapping="{ creatorCode: 'code', creator: 'name'}"
+                      :source.sync="monthGoalMergeDetailsList[scope.$index]" placeholder="请输入负责人">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <el-table-column label="科室" align="center" prop="department" width="180">
+                  <template slot-scope="scope">
+                    <el-input v-model="monthGoalMergeDetailsList[scope.$index].department" placeholder="请输入科室" disabled>
+                    </el-input>
+                  </template>
+                </el-table-column>
+                <el-table-column label="一级分类" align="center" prop="oneLevelClassify" width="220">
+                  <template slot-scope="scope">
+                    <el-select v-model="monthGoalMergeDetailsList[scope.$index].oneLevelClassify" size="mini" clearable
+                      @focus="chooseTreeReferForDetails('MATERIALCLASSIFY_PARAM', false, '一级物料分类', scope.$index)"
+                      style="width: 200px" disabled>
+                      <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.code" />
+                    </el-select>
+                  </template>
+                </el-table-column>
+                <el-table-column label="二级分类" align="center" prop="twoLevelClassify" width="220">
+                  <template slot-scope="scope">
+                    <el-select v-model="monthGoalMergeDetailsList[scope.$index].twoLevelClassify" size="mini" clearable
+                      @focus="chooseTreeReferForDetails('MATERIALCLASSIFY_PARAM', false, '二级物料分类', scope.$index)"
+                      style="width: 200px" disabled>
+                      <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.code" />
+                    </el-select>
+                  </template>
+                </el-table-column>
+                <el-table-column label="物料" align="center" prop="material" width="180">
+                  <template slot-scope="scope">
+                    <el-popover-select-v2 v-model="monthGoalMergeDetailsList[scope.$index].material" title="物料"
+                      valueKey="name" referName="MATERIAL_PARAM" disabled
+                      :dataMapping="{ materialCode: 'code', material: 'name'}"
+                      :source.sync="monthGoalMergeDetailsList[scope.$index]" placeholder="请输入物料">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <el-table-column label="月份" align="center" prop="monthly" width="250">
+                  <template slot-scope="scope">
+                    <el-date-picker disabled v-model="monthGoalMergeDetailsList[scope.$index].monthly"
+                      value-format="yyyy-MM" type="month" placeholder="选择月份">
+                    </el-date-picker>
+                  </template>
+                </el-table-column>
+                <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>
+            </el-tab-pane>
+            <el-tab-pane label="区域目标汇总(月)" name="zoneGoalSum" v-if="this.form.goalCategory == '销售区域'">
+              <el-table max-height="300" :data="zoneGoalSumList" v-horizontal-scroll>
+                <el-table-column label="序号" type="index" width="55" align="center" fixed />
+                <el-table-column label="销售组织" align="center" prop="saleOrg" 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" prop="saleZone" width="180">
+                  <template slot-scope="scope">
+                    <el-popover-select-v2 v-model="zoneGoalSumList[scope.$index].saleZone" title="销售区域" valueKey="name"
+                      referName="ORG_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" prop="monthly" 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="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>
+                </el-table-column>
+              </el-table>
+            </el-tab-pane>
+            <el-tab-pane label="客户目标汇总(月)" name="customGoalSum" v-if="this.form.goalCategory == '销售区域'">
+              <el-table max-height="300" :data="customGoalSumList" v-horizontal-scroll>
+                <el-table-column label="序号" type="index" width="55" align="center" fixed />
+                <el-table-column label="销售组织" align="center" prop="saleOrg" width="180">
+                  <template slot-scope="scope">
+                    <el-popover-select-v2 v-model="customGoalSumList[scope.$index].saleOrg" title="销售组织" valueKey="name"
+                      referName="ORG_PARAM" disabled :dataMapping="{ saleOrgCode: 'code', saleOrg: 'name'}"
+                      :source.sync="customGoalSumList[scope.$index]" placeholder="请输入销售组织">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <el-table-column label="销售区域" align="center" prop="saleZone" width="180">
+                  <template slot-scope="scope">
+                    <el-popover-select-v2 v-model="customGoalSumList[scope.$index].saleZone" title="销售区域" valueKey="name"
+                      referName="ORG_PARAM" disabled :dataMapping="{ saleZoneCode: 'code', saleZone: 'name'}"
+                      :source.sync="customGoalSumList[scope.$index]" placeholder="请输入销售区域">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <el-table-column label="客户" align="center" prop="custom" width="180">
+                  <template slot-scope="scope">
+                    <el-popover-select-v2 v-model="customGoalSumList[scope.$index].custom" title="客户" valueKey="name"
+                      referName="CUSTOMER_PARAM" disabled :dataMapping="{ customCode: 'code', custom: 'name'}"
+                      :source.sync="customGoalSumList[scope.$index]" placeholder="请输入客户">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <el-table-column label="月份" align="center" prop="monthly" width="250">
+                  <template slot-scope="scope">
+                    <el-date-picker disabled v-model="customGoalSumList[scope.$index].monthly" value-format="yyyy-MM"
+                      type="month" placeholder="选择月份">
+                    </el-date-picker>
+                  </template>
+                </el-table-column>
+                <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>
+                </el-table-column>
+              </el-table>
+            </el-tab-pane>
+          </el-tabs>
+          <div slot="footer" class="dialog-footer" style="margin-left: 88%; margin-top: 1%">
+            <el-button type="primary" @click="submitForm" size="medium">确 定</el-button>
+            <el-button @click="cancel" size="medium">返 回</el-button>
+          </div>
         </div>
-      </div>
+      </el-form>
     </el-drawer>
 
     <!-- 用户导入对话框 -->
@@ -723,7 +722,9 @@
           },
           // 上传的地址
           url: process.env.VUE_APP_BASE_API + "/goal_management/annualSaleGoalMerge/importData"
-        }
+        },
+        //打开状态
+        openStatus: null,
       };
     },
     created() {
@@ -830,6 +831,7 @@
       },
       /** 新增按钮操作 */
       handleAdd() {
+        this.openStatus = 'edit';
         this.reset();
         this.monthGoalMergeDetailsList = []
         this.customGoalSumList = []
@@ -869,6 +871,7 @@
       },
       /** 修改按钮操作 */
       handleUpdate(row) {
+        this.openStatus = 'edit';
         this.reset();
         this.customGoalSumList = []
         this.zoneGoalSumList = []
@@ -882,8 +885,24 @@
           this.title = "修改--月销售目标合并";
         });
       },
+      useDoubleClick(row) {
+        this.openStatus = 'see';
+        this.reset();
+        this.customGoalSumList = []
+        this.zoneGoalSumList = []
+        this.activeName = 'monthGoalMergeDetails'
+        const id = row.id || this.ids
+        getMonthGoalMerge(id).then(response => {
+          this.form = response.data;
+          this.form.goalSum = this.form.goalSum.toFixed(2)
+          this.monthGoalMergeDetailsList = this.form.monthMergeDetailsList
+          this.open = true;
+          this.title = "查看--月销售目标合并";
+        });
+      },
       // 复制按钮操作
       handleCopy(id) {
+        this.openStatus = 'edit';
         this.reset()
         this.monthGoalMergeDetailsList = []
         this.customGoalSumList = []

+ 114 - 97
src/views/business/spd/target/MonthReturnGoal.vue

@@ -103,7 +103,7 @@
         </el-dropdown>
       </el-col>
     </el-row>
-    <el-table v-loading="loading" :data="monthReturnGoalList" @selection-change="handleSelectionChange"
+    <el-table v-loading="loading" :data="monthReturnGoalList" @selection-change="handleSelectionChange" @row-dblclick="useDoubleClick"
       v-horizontal-scroll>
       <el-table-column label="编码" align="center" prop="code" />
       <el-table-column label="目标名称" align="center" prop="goalName" />
@@ -144,7 +144,7 @@
 
     <el-drawer :title="title" :visible.sync="open" direction="rtl" :before-close="handleClose" size="100%"
       v-horizontal-scroll>
-      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px" :disabled="openStatus == 'see'">
         <el-row :gutter="20">
           <el-col :span="6">
             <el-form-item label="编码" prop="code">
@@ -220,101 +220,101 @@
             </el-form-item>
           </el-col>
         </el-row>
-      </el-form>
-      <div>
-        <el-row :gutter="10" class="mb8" style="margin-left: 80%">
-          <el-col :span="1.5">
-            <el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleTemplateDownload">模板下载
-            </el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-upload ref="upload" action="" :http-request="handleImport">
-              <el-button size="mini" type="primary">导入明细</el-button>
-            </el-upload>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddDetails">增行</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="primary" plain icon="el-icon-edit-outline" size="mini"
-              @click="dialogUpdateMore.dialogFormVisible = true">批量修改</el-button>
-          </el-col>
-        </el-row>
-        <el-tabs v-model="activeName">
-          <el-tab-pane label="月回款目标明细" name="monthReturnGoalDetails">
-            <el-table max-height="300" show-summary :summary-method="getSummaries" v-loading="loading"
-              :data="monthReturnGoalDetailsList" @selection-change="handleSelectionChange" v-horizontal-scroll>
-              <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" :dataMapping="{saleOrg: 'name'}"
-                    :source.sync="monthReturnGoalDetailsList[scope.$index]" placeholder="请输入销售组织">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <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" :dataMapping="{saleZone: 'name'}"
-                    :source.sync="monthReturnGoalDetailsList[scope.$index]" placeholder="请输入销售区域">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <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" :dataMapping="{custom: 'name'}"
-                    :source.sync="monthReturnGoalDetailsList[scope.$index]" placeholder="请输入客户">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <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" :dataMapping="{dept: 'name'}"
-                    :source.sync="monthReturnGoalDetailsList[scope.$index]" placeholder="请输入客户">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <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" :dataMapping="{creator: 'name'}"
-                    :source.sync="monthReturnGoalDetailsList[scope.$index]" placeholder="请输入负责人">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <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>
-                </template>
-              </el-table-column>
-              <el-table-column label="目标值" align="center" prop="goalSum" width="220" :render-header="addRedStar">
-                <template slot-scope="scope">
-                  <el-input-number @change="computeTotal" v-model="monthReturnGoalDetailsList[scope.$index].goalSum"
-                    :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-tabs>
-        <div slot="footer" class="dialog-footer" style="margin-left: 88%; margin-top: 1%">
-          <el-button type="primary" @click="submitForm" size="medium">确 定</el-button>
-          <el-button @click="cancel" size="medium">返 回</el-button>
+        <div>
+          <el-row :gutter="10" class="mb8" style="margin-left: 80%">
+            <el-col :span="1.5">
+              <el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleTemplateDownload">模板下载
+              </el-button>
+            </el-col>
+            <el-col :span="1.5">
+              <el-upload ref="upload" action="" :http-request="handleImport">
+                <el-button size="mini" type="primary">导入明细</el-button>
+              </el-upload>
+            </el-col>
+            <el-col :span="1.5">
+              <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddDetails">增行</el-button>
+            </el-col>
+            <el-col :span="1.5">
+              <el-button type="primary" plain icon="el-icon-edit-outline" size="mini"
+                @click="dialogUpdateMore.dialogFormVisible = true">批量修改</el-button>
+            </el-col>
+          </el-row>
+          <el-tabs v-model="activeName">
+            <el-tab-pane label="月回款目标明细" name="monthReturnGoalDetails">
+              <el-table max-height="300" show-summary :summary-method="getSummaries" v-loading="loading"
+                :data="monthReturnGoalDetailsList" @selection-change="handleSelectionChange" v-horizontal-scroll>
+                <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" :dataMapping="{saleOrg: 'name'}"
+                      :source.sync="monthReturnGoalDetailsList[scope.$index]" placeholder="请输入销售组织">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <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" :dataMapping="{saleZone: 'name'}"
+                      :source.sync="monthReturnGoalDetailsList[scope.$index]" placeholder="请输入销售区域">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <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" :dataMapping="{custom: 'name'}"
+                      :source.sync="monthReturnGoalDetailsList[scope.$index]" placeholder="请输入客户">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <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" :dataMapping="{dept: 'name'}"
+                      :source.sync="monthReturnGoalDetailsList[scope.$index]" placeholder="请输入客户">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <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" :dataMapping="{creator: 'name'}"
+                      :source.sync="monthReturnGoalDetailsList[scope.$index]" placeholder="请输入负责人">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <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>
+                  </template>
+                </el-table-column>
+                <el-table-column label="目标值" align="center" prop="goalSum" width="220" :render-header="addRedStar">
+                  <template slot-scope="scope">
+                    <el-input-number @change="computeTotal" v-model="monthReturnGoalDetailsList[scope.$index].goalSum"
+                      :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-tabs>
+          <div slot="footer" class="dialog-footer" style="margin-left: 88%; margin-top: 1%">
+            <el-button type="primary" @click="submitForm" size="medium">确 定</el-button>
+            <el-button @click="cancel" size="medium">返 回</el-button>
+          </div>
         </div>
-      </div>
+      </el-form>
     </el-drawer>
 
     <!-- 用户导入对话框 -->
@@ -598,7 +598,9 @@
             value: 6,
             label: '月份'
           }]
-        }
+        },
+        //打开状态
+        openStatus: null,
       }
     },
     created() {
@@ -694,6 +696,7 @@
       },
       /** 新增按钮操作 */
       handleAdd() {
+        this.openStatus = 'edit';
         this.reset();
         this.monthReturnGoalDetailsList = []
         this.open = true;
@@ -722,6 +725,7 @@
       },
       /** 修改按钮操作 */
       handleUpdate(row) {
+        this.openStatus = 'edit';
         this.reset();
         const id = row.id || this.ids
         getMonthReturnGoal(id).then(response => {
@@ -732,8 +736,21 @@
           this.title = "修改--月回款目标填报";
         });
       },
+      useDoubleClick(row) {
+        this.openStatus = 'see';
+        this.reset();
+        const id = row.id || this.ids
+        getMonthReturnGoal(id).then(response => {
+          this.form = response.data;
+          this.form.goalSum = this.form.goalSum.toFixed(2)
+          this.monthReturnGoalDetailsList = JSON.parse(JSON.stringify(this.form.monthReturnGoalDetailsList))
+          this.open = true;
+          this.title = "查看--月回款目标填报";
+        });
+      },
       // 复制按钮操作
       handleCopy(id) {
+        this.openStatus = 'edit';
         this.reset();
         getMonthReturnGoal(id).then(response => {
           this.form = response.data;

+ 148 - 130
src/views/business/spd/target/MonthReturnMerge.vue

@@ -108,7 +108,7 @@
         </el-dropdown>
       </el-col>
     </el-row>
-    <el-table v-loading="loading" :data="monthReturnMergeList" @selection-change="handleSelectionChange"
+    <el-table v-loading="loading" :data="monthReturnMergeList" @selection-change="handleSelectionChange" @row-dblclick="useDoubleClick"
       v-horizontal-scroll>
       <el-table-column label="编码" align="center" prop="code" width="180" />
       <el-table-column label="目标名称" align="center" prop="goalName" width="180" />
@@ -151,7 +151,7 @@
     <!-- 添加或修改月销售目标合并抽屉 -->
     <el-drawer :title="title" :visible.sync="open" direction="rtl" :before-close="handleClose" size="100%"
       v-horizontal-scroll>
-      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px" :disabled="openStatus == 'see'">
         <el-row :gutter="20">
           <el-col :span="6">
             <el-form-item label="编码" prop="code">
@@ -236,134 +236,134 @@
             </el-form-item>
           </el-col>
         </el-row>
-      </el-form>
-      <div>
-        <el-row :gutter="10" class="mb8" style="margin-left: 94%">
-          <el-col :span="1.5">
-            <el-button type="primary" plain icon="el-icon-folder-opened" size="mini" @click="clickMerge">合 并</el-button>
-          </el-col>
-        </el-row>
-        <el-tabs v-model="activeName" @tab-click="getNewTwoArray">
-          <el-tab-pane label="月回款目标合并明细" name="monthReturnMergeDetails">
-            <el-table max-height="300" show-summary :summary-method="getSummaries" v-loading="loading"
-              :data="monthReturnMergeDetailsList" v-horizontal-scroll>
-              <el-table-column label="序号" type="index" width="55" align="center" fixed />
-              <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
-                    :dataMapping="{ saleOrgCode: 'code', saleOrg: 'name'}"
-                    :source.sync="monthReturnMergeDetailsList[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="monthReturnMergeDetailsList[scope.$index].saleZone" title="销售区域"
-                    valueKey="name" referName="MK_SALESAREA_PARAM" disabled
-                    :dataMapping="{ saleZoneCode: 'code', saleZone: 'name'}"
-                    :source.sync="monthReturnMergeDetailsList[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="monthReturnMergeDetailsList[scope.$index].custom" title="客户"
-                    valueKey="name" referName="CUSTOMER_PARAM" disabled
-                    :dataMapping="{ customCode: 'code', custom: 'name'}"
-                    :source.sync="monthReturnMergeDetailsList[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="monthReturnMergeDetailsList[scope.$index].dept" title="部门"
-                    valueKey="name" referName="DEPT_PARAM" disabled :dataMapping="{ deptCode: 'code', dept: 'name'}"
-                    :source.sync="monthReturnMergeDetailsList[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="monthReturnMergeDetailsList[scope.$index].creator" title="制单人"
-                    valueKey="name" referName="CONTACTS_PARAM" disabled
-                    :dataMapping="{ creatorCode: 'code', creator: 'name'}"
-                    :source.sync="monthReturnMergeDetailsList[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="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="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>
-              </el-table-column>
-            </el-table>
-          </el-tab-pane>
-          <el-tab-pane label="区域目标汇总(月回款)" name="zoneGoalSum(monthReturn)">
-            <el-table max-height="300" show-summary :summary-method="getSummaries" :data="zoneGoalSumList"
-              v-horizontal-scroll>
-              <el-table-column label="序号" type="index" width="55" align="center" fixed />
-              <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>
-        <div slot="footer" class="dialog-footer" style="margin-left: 88%; margin-top: 1%">
-          <el-button type="primary" @click="submitForm" size="medium">确 定</el-button>
-          <el-button @click="cancel" size="medium">返 回</el-button>
+        <div>
+          <el-row :gutter="10" class="mb8" style="margin-left: 94%">
+            <el-col :span="1.5">
+              <el-button type="primary" plain icon="el-icon-folder-opened" size="mini" @click="clickMerge">合 并</el-button>
+            </el-col>
+          </el-row>
+          <el-tabs v-model="activeName" @tab-click="getNewTwoArray">
+            <el-tab-pane label="月回款目标合并明细" name="monthReturnMergeDetails">
+              <el-table max-height="300" show-summary :summary-method="getSummaries" v-loading="loading"
+                :data="monthReturnMergeDetailsList" v-horizontal-scroll>
+                <el-table-column label="序号" type="index" width="55" align="center" fixed />
+                <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
+                      :dataMapping="{ saleOrgCode: 'code', saleOrg: 'name'}"
+                      :source.sync="monthReturnMergeDetailsList[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="monthReturnMergeDetailsList[scope.$index].saleZone" title="销售区域"
+                      valueKey="name" referName="MK_SALESAREA_PARAM" disabled
+                      :dataMapping="{ saleZoneCode: 'code', saleZone: 'name'}"
+                      :source.sync="monthReturnMergeDetailsList[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="monthReturnMergeDetailsList[scope.$index].custom" title="客户"
+                      valueKey="name" referName="CUSTOMER_PARAM" disabled
+                      :dataMapping="{ customCode: 'code', custom: 'name'}"
+                      :source.sync="monthReturnMergeDetailsList[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="monthReturnMergeDetailsList[scope.$index].dept" title="部门"
+                      valueKey="name" referName="DEPT_PARAM" disabled :dataMapping="{ deptCode: 'code', dept: 'name'}"
+                      :source.sync="monthReturnMergeDetailsList[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="monthReturnMergeDetailsList[scope.$index].creator" title="制单人"
+                      valueKey="name" referName="CONTACTS_PARAM" disabled
+                      :dataMapping="{ creatorCode: 'code', creator: 'name'}"
+                      :source.sync="monthReturnMergeDetailsList[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="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="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>
+                </el-table-column>
+              </el-table>
+            </el-tab-pane>
+            <el-tab-pane label="区域目标汇总(月回款)" name="zoneGoalSum(monthReturn)">
+              <el-table max-height="300" show-summary :summary-method="getSummaries" :data="zoneGoalSumList"
+                v-horizontal-scroll>
+                <el-table-column label="序号" type="index" width="55" align="center" fixed />
+                <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>
+          <div slot="footer" class="dialog-footer" style="margin-left: 88%; margin-top: 1%">
+            <el-button type="primary" @click="submitForm" size="medium">确 定</el-button>
+            <el-button @click="cancel" size="medium">返 回</el-button>
+          </div>
         </div>
-      </div>
+      </el-form>
     </el-drawer>
 
     <!-- 用户导入对话框 -->
@@ -591,7 +591,9 @@
           },
           // 上传的地址
           url: process.env.VUE_APP_BASE_API + "/goal_management/annualSaleGoalMerge/importData"
-        }
+        },
+        //打开状态
+        openStatus: null,
       }
     },
     created() {
@@ -689,6 +691,7 @@
       },
       /** 新增按钮操作 */
       handleAdd() {
+        this.openStatus = 'edit';
         this.reset();
         this.activeName = 'monthReturnMergeDetails'
         this.monthReturnMergeDetailsList = []
@@ -719,6 +722,20 @@
       },
       /** 修改按钮操作 */
       handleUpdate(row) {
+        this.openStatus = 'edit';
+        this.reset();
+        this.activeName = 'monthReturnMergeDetails'
+        const id = row.id || this.ids
+        getMonthReturnMerge(id).then(response => {
+          this.form = response.data;
+          this.form.goalSum = this.form.goalSum.toFixed(2)
+          this.monthReturnMergeDetailsList = this.form.monthReturnMergeDetailsList
+          this.open = true;
+          this.title = "修改--月回款目标合并";
+        });
+      },
+      useDoubleClick(row) {
+        this.openStatus = 'see';
         this.reset();
         this.activeName = 'monthReturnMergeDetails'
         const id = row.id || this.ids
@@ -732,6 +749,7 @@
       },
       // 复制按钮操作
       handleCopy(id) {
+        this.openStatus = 'edit';
         this.reset()
         this.monthGoalMergeDetailsList = []
         this.activeName = 'monthReturnMergeDetails'

+ 147 - 130
src/views/business/spd/target/MonthSaleGoal.vue

@@ -105,7 +105,7 @@
       </el-col>
     </el-row>
 
-    <el-table v-loading="loading" :data="monthSaleGoalList" @selection-change="handleSelectionChange"
+    <el-table v-loading="loading" :data="monthSaleGoalList" @selection-change="handleSelectionChange" @row-dblclick="useDoubleClick"
       v-horizontal-scroll>
       <el-table-column label="编码" align="center" prop="code" />
       <el-table-column label="目标名称" align="center" prop="goalName" />
@@ -147,7 +147,7 @@
 
     <el-drawer :title="title" :visible.sync="open" direction="rtl" :before-close="handleClose" size="100%"
       v-horizontal-scroll>
-      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px" :disabled="openStatus == 'see'">
         <el-row :gutter="20">
           <el-col :span="6">
             <el-form-item label="编码" prop="code">
@@ -223,134 +223,134 @@
             </el-form-item>
           </el-col>
         </el-row>
-      </el-form>
-      <div>
-        <el-row :gutter="10" class="mb8" style="margin-left: 80%">
-          <el-col :span="1.5">
-            <el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleTemplateDownload">模板下载
-            </el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-upload ref="upload" action="" :http-request="handleImport">
-              <el-button size="mini" type="primary">导入明细</el-button>
-            </el-upload>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddDetails">增行</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="primary" plain icon="el-icon-edit-outline" size="mini"
-              @click="dialogUpdateMore.dialogFormVisible = true">批量修改</el-button>
-          </el-col>
-        </el-row>
-        <el-tabs v-model="activeName">
-          <el-tab-pane label="月销售目标明细" name="monthSaleGoalDetails">
-            <el-table max-height="300" show-summary :summary-method="getSummaries" v-loading="loading"
-              :data="monthSaleGoalDetailsList" @selection-change="handleSelectionChange" v-horizontal-scroll>
-              <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" :dataMapping="{ saleOrgCode: 'code', saleOrg: 'name'}"
-                    :source.sync="monthSaleGoalDetailsList[scope.$index]" placeholder="请输入销售组织">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <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"
-                    :dataMapping="{ saleZoneCode: 'code', saleZone: 'name'}"
-                    :source.sync="monthSaleGoalDetailsList[scope.$index]" placeholder="请输入销售区域">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <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" :dataMapping="{ customCode: 'code', custom: 'name'}"
-                    :source.sync="monthSaleGoalDetailsList[scope.$index]" placeholder="请输入客户">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <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" :dataMapping="{ deptCode: 'code', dept: 'name'}"
-                    :source.sync="monthSaleGoalDetailsList[scope.$index]" placeholder="请输入部门">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <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" :dataMapping="{ creatorCode: 'code', creator: 'name'}"
-                    :source.sync="monthSaleGoalDetailsList[scope.$index]" placeholder="请输入制单人">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <el-table-column label="一级分类" align="center" width="180" :render-header="addRedStar">
-                <template slot-scope="scope">
-                  <el-input v-model="monthSaleGoalDetailsList[scope.$index].oneLevelClassify" placeholder="请输入一级分类"
-                    disabled></el-input>
-                </template>
-              </el-table-column>
-              <el-table-column label="二级分类" align="center" width="180" :render-header="addRedStar">
-                <template slot-scope="scope">
-                  <el-input v-model="monthSaleGoalDetailsList[scope.$index].twoLevelClassify" placeholder="请输入二级分类"
-                    disabled></el-input>
-                </template>
-              </el-table-column>
-              <el-table-column label="物料" align="center" width="180" :render-header="addRedStar">
-                <template slot-scope="scope">
-                  <el-popover-select-v2 v-model="monthSaleGoalDetailsList[scope.$index].material" title="物料"
-                    valueKey="name" referName="MATERIAL_PARAM"
-                    @change="setClassify(scope.row.oneLevelClassify, scope.row.twoLevelClassify, monthSaleGoalDetailsList[scope.$index])"
-                    :dataMapping="{ materialCode: 'code', material: 'name', oneLevelClassify: 'oneClass', twoLevelClassify: 'twoClass'}"
-                    :source.sync="monthSaleGoalDetailsList[scope.$index]" placeholder="请输入物料">
-                  </el-popover-select-v2>
-                </template>
-              </el-table-column>
-              <el-table-column label="科室" align="center" width="180">
-                <template slot-scope="scope">
-                  <el-input v-model="monthSaleGoalDetailsList[scope.$index].department" placeholder="请输入科室"></el-input>
-                </template>
-              </el-table-column>
-              <el-table-column label="数量" align="center" prop="num" width="220">
-                <template slot-scope="scope">
-                  <el-input-number v-model="monthSaleGoalDetailsList[scope.$index].num" :min="0"></el-input-number>
-                </template>
-              </el-table-column>
-              <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>
-                </template>
-              </el-table-column>
-              <el-table-column label="目标值" align="center" prop="goalValue" width="220" :render-header="addRedStar">
-                <template slot-scope="scope">
-                  <el-input-number @change="computeTotal" v-model="monthSaleGoalDetailsList[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-tabs>
-        <div slot="footer" class="dialog-footer" style="margin-left: 88%; margin-top: 1%">
-          <el-button type="primary" @click="submitForm" size="medium">确 定</el-button>
-          <el-button @click="cancel" size="medium">返 回</el-button>
+        <div>
+          <el-row :gutter="10" class="mb8" style="margin-left: 80%">
+            <el-col :span="1.5">
+              <el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleTemplateDownload">模板下载
+              </el-button>
+            </el-col>
+            <el-col :span="1.5">
+              <el-upload ref="upload" action="" :http-request="handleImport">
+                <el-button size="mini" type="primary">导入明细</el-button>
+              </el-upload>
+            </el-col>
+            <el-col :span="1.5">
+              <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddDetails">增行</el-button>
+            </el-col>
+            <el-col :span="1.5">
+              <el-button type="primary" plain icon="el-icon-edit-outline" size="mini"
+                @click="dialogUpdateMore.dialogFormVisible = true">批量修改</el-button>
+            </el-col>
+          </el-row>
+          <el-tabs v-model="activeName">
+            <el-tab-pane label="月销售目标明细" name="monthSaleGoalDetails">
+              <el-table max-height="300" show-summary :summary-method="getSummaries" v-loading="loading"
+                :data="monthSaleGoalDetailsList" @selection-change="handleSelectionChange" v-horizontal-scroll>
+                <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" :dataMapping="{ saleOrgCode: 'code', saleOrg: 'name'}"
+                      :source.sync="monthSaleGoalDetailsList[scope.$index]" placeholder="请输入销售组织">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <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"
+                      :dataMapping="{ saleZoneCode: 'code', saleZone: 'name'}"
+                      :source.sync="monthSaleGoalDetailsList[scope.$index]" placeholder="请输入销售区域">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <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" :dataMapping="{ customCode: 'code', custom: 'name'}"
+                      :source.sync="monthSaleGoalDetailsList[scope.$index]" placeholder="请输入客户">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <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" :dataMapping="{ deptCode: 'code', dept: 'name'}"
+                      :source.sync="monthSaleGoalDetailsList[scope.$index]" placeholder="请输入部门">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <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" :dataMapping="{ creatorCode: 'code', creator: 'name'}"
+                      :source.sync="monthSaleGoalDetailsList[scope.$index]" placeholder="请输入制单人">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <el-table-column label="一级分类" align="center" width="180" :render-header="addRedStar">
+                  <template slot-scope="scope">
+                    <el-input v-model="monthSaleGoalDetailsList[scope.$index].oneLevelClassify" placeholder="请输入一级分类"
+                      disabled></el-input>
+                  </template>
+                </el-table-column>
+                <el-table-column label="二级分类" align="center" width="180" :render-header="addRedStar">
+                  <template slot-scope="scope">
+                    <el-input v-model="monthSaleGoalDetailsList[scope.$index].twoLevelClassify" placeholder="请输入二级分类"
+                      disabled></el-input>
+                  </template>
+                </el-table-column>
+                <el-table-column label="物料" align="center" width="180" :render-header="addRedStar">
+                  <template slot-scope="scope">
+                    <el-popover-select-v2 v-model="monthSaleGoalDetailsList[scope.$index].material" title="物料"
+                      valueKey="name" referName="MATERIAL_PARAM"
+                      @change="setClassify(scope.row.oneLevelClassify, scope.row.twoLevelClassify, monthSaleGoalDetailsList[scope.$index])"
+                      :dataMapping="{ materialCode: 'code', material: 'name', oneLevelClassify: 'oneClass', twoLevelClassify: 'twoClass'}"
+                      :source.sync="monthSaleGoalDetailsList[scope.$index]" placeholder="请输入物料">
+                    </el-popover-select-v2>
+                  </template>
+                </el-table-column>
+                <el-table-column label="科室" align="center" width="180">
+                  <template slot-scope="scope">
+                    <el-input v-model="monthSaleGoalDetailsList[scope.$index].department" placeholder="请输入科室"></el-input>
+                  </template>
+                </el-table-column>
+                <el-table-column label="数量" align="center" prop="num" width="220">
+                  <template slot-scope="scope">
+                    <el-input-number v-model="monthSaleGoalDetailsList[scope.$index].num" :min="0"></el-input-number>
+                  </template>
+                </el-table-column>
+                <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>
+                  </template>
+                </el-table-column>
+                <el-table-column label="目标值" align="center" prop="goalValue" width="220" :render-header="addRedStar">
+                  <template slot-scope="scope">
+                    <el-input-number @change="computeTotal" v-model="monthSaleGoalDetailsList[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-tabs>
+          <div slot="footer" class="dialog-footer" style="margin-left: 88%; margin-top: 1%">
+            <el-button type="primary" @click="submitForm" size="medium">确 定</el-button>
+            <el-button @click="cancel" size="medium">返 回</el-button>
+          </div>
         </div>
-      </div>
+      </el-form>
     </el-drawer>
 
     <!-- 用户导入对话框 -->
@@ -645,7 +645,9 @@
             value: 7,
             label: '月份'
           }]
-        }
+        },
+        //打开状态
+        openStatus: null,
       };
     },
     created() {
@@ -741,6 +743,7 @@
       },
       /** 新增按钮操作 */
       handleAdd() {
+        this.openStatus = 'edit';
         this.reset();
         this.monthSaleGoalDetailsList = []
         this.open = true;
@@ -777,6 +780,19 @@
       },
       /** 修改按钮操作 */
       handleUpdate(row) {
+        this.openStatus = 'edit';
+        this.reset();
+        const id = row.id || this.ids
+        getMonthSaleGoal(id).then(response => {
+          this.form = response.data;
+          this.form.goalSum = this.form.goalSum.toFixed(2)
+          this.monthSaleGoalDetailsList = JSON.parse(JSON.stringify(this.form.monthDetailsList))
+          this.open = true;
+          this.title = "修改--月销售目标填报";
+        });
+      },
+      useDoubleClick(row) {
+        this.openStatus = 'see';
         this.reset();
         const id = row.id || this.ids
         getMonthSaleGoal(id).then(response => {
@@ -789,6 +805,7 @@
       },
       // 复制按钮
       handleCopy(id) {
+        this.openStatus = 'edit';
         this.reset();
         getMonthSaleGoal(id).then(response => {
           this.form = response.data;