From 5b5c6374749159db03a14ee645760327930bbb28 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期一, 13 十月 2025 14:46:41 +0800
Subject: [PATCH] 修改

---
 src/api/continuousImprovement/index.js                                                                     |    7 
 src/views/build/conpanyFunctionConsult/riskManage/control/components/editDialog.vue                        |   10 
 src/api/standardSys/standardSys.js                                                                         |    8 
 src/views/work/procurementPlatform/warehouseManagement/monthlyInspectionRecord/index.vue                   |  128 +++++++++--
 src/api/environment/factors.js                                                                             |    4 
 src/api/customerList/index.js                                                                              |    8 
 src/views/work/procurementPlatform/warehouseManagement/monthlyInspectionRecord/components/editDialog.vue   |   24 +
 src/views/build/conpanyFunctionConsult/companyInfo/overview/index.vue                                      |    6 
 src/views/work/qualityManage/continuousImprovement/components/editDialog.vue                               |   23 +
 src/views/work/qualityManage/continuousImprovement/index.vue                                               |  112 +++++++--
 src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/components/editDialog.vue |   14 
 src/views/build/conpanyFunctionConsult/environment/environmentalFactors/components/editDialog.vue          |   24 +
 src/api/monthlyInspectionRecord/index.js                                                                   |    7 
 src/views/work/qualityInfo/supplierQuality/satisfiedEvaluste/deliver/components/editDialog.vue             |   72 ++++++
 src/views/work/qualityManage/performanceAppraisal/components/editDialog.vue                                |   17 +
 src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/index.vue                 |  119 ++++++++--
 src/views/build/conpanyFunctionConsult/environment/controlFactors/components/editDialog.vue                |   13 +
 src/views/build/conpanyFunctionConsult/riskManage/record/components/editDialog.vue                         |   14 
 src/views/build/conpanyFunctionConsult/environment/controlFactors/index.vue                                |    2 
 19 files changed, 490 insertions(+), 122 deletions(-)

diff --git a/src/api/continuousImprovement/index.js b/src/api/continuousImprovement/index.js
index 0b925a1..5654f4c 100644
--- a/src/api/continuousImprovement/index.js
+++ b/src/api/continuousImprovement/index.js
@@ -7,6 +7,13 @@
         params: params
     })
 }
+export function getInsideById(params) {
+    return request({
+        url: '/continuous/inside/listByid',
+        method: 'get',
+        params: params
+    })
+}
 
 
 export function addInside(data) {
diff --git a/src/api/customerList/index.js b/src/api/customerList/index.js
index 2e6bb7c..b2c3472 100644
--- a/src/api/customerList/index.js
+++ b/src/api/customerList/index.js
@@ -7,6 +7,14 @@
         params: params
     })
 }
+export function getCustomerAll(params) {
+    return request({
+        url: 'market/inventory/listAll',
+        method: 'get',
+        params: params
+    })
+}
+
 
 export function addCustomer(data) {
     return request({
diff --git a/src/api/environment/factors.js b/src/api/environment/factors.js
index 6166149..cb9b820 100644
--- a/src/api/environment/factors.js
+++ b/src/api/environment/factors.js
@@ -64,9 +64,9 @@
     })
 }
 
-export function delControl(data) {
+export function delControl(data,dataD) {
     return request({
-        url: `/composite/factor/control/deleted?factorControlId=${data}`,
+        url: `/composite/factor/control/deleted?factorControlId=${data}&factorDiscrenId=${dataD}`,
         method: 'get'
     })
 }
diff --git a/src/api/monthlyInspectionRecord/index.js b/src/api/monthlyInspectionRecord/index.js
index 7be3549..6becc4c 100644
--- a/src/api/monthlyInspectionRecord/index.js
+++ b/src/api/monthlyInspectionRecord/index.js
@@ -7,6 +7,13 @@
         params: params
     })
 }
+export function getMonthlyRecordById(params) {
+    return request({
+        url: 'market/monthly/listByid',
+        method: 'get',
+        params: params
+    })
+}
 
 export function addMonthlyRecord(data) {
     return request({
diff --git a/src/api/standardSys/standardSys.js b/src/api/standardSys/standardSys.js
index 5a924e0..62d9aaf 100644
--- a/src/api/standardSys/standardSys.js
+++ b/src/api/standardSys/standardSys.js
@@ -73,6 +73,14 @@
     })
 }
 
+export function getQualityTemplateById(params) {
+    return request({
+        url: '/template/listByid',
+        method: 'get',
+        params: params
+    })
+}
+
 export function addQualityTemplate(data) {
     return request({
         url: '/template/insert',
diff --git a/src/views/build/conpanyFunctionConsult/companyInfo/overview/index.vue b/src/views/build/conpanyFunctionConsult/companyInfo/overview/index.vue
index d0b23a7..6491f6e 100644
--- a/src/views/build/conpanyFunctionConsult/companyInfo/overview/index.vue
+++ b/src/views/build/conpanyFunctionConsult/companyInfo/overview/index.vue
@@ -50,11 +50,11 @@
       </el-form>
     </div>
     <!-- 表格数据 -->
-    <el-table v-loading="loading" :data="dataList" :border="true">
+    <el-table v-loading="loading" :data="dataList" :border="true" >
       <el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
-      <el-table-column label="公司概况" prop="companySummary" align="center"  >
+      <el-table-column label="公司概况" prop="companySummary" align="center"  width="600" >
         <template #default="scope">
-          <div  v-html="scope.row.companySummary"  ></div>
+          <div  style="height: 250px;" v-html="scope.row.companySummary"  ></div>
         </template>
       </el-table-column>
       <el-table-column label="营业执照" prop="fileName" align="center" >
diff --git a/src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/components/editDialog.vue b/src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/components/editDialog.vue
index 88a4f6d..7d033b8 100644
--- a/src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/components/editDialog.vue
+++ b/src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/components/editDialog.vue
@@ -171,7 +171,7 @@
 import {getDept, getObject, getObjectPage} from "@/api/qualityObjectives/object";
 import {addTable, editTable, getTargetById} from "@/api/qualityObjectives/table";
 import {addNeedDiscren, editNeedDiscren} from "@/api/need/need";
-import {addQualityTemplate, editQualityTemplate} from "@/api/standardSys/standardSys";
+import {addQualityTemplate, editQualityTemplate, getQualityTemplateById} from "@/api/standardSys/standardSys";
 
 const dialogVisible = ref(false);
 const title = ref("");
@@ -248,11 +248,17 @@
   }
   title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ;
   if(type === 'edit' || type === 'review') {
-    state.form = JSON.parse(JSON.stringify(value));
 
+    const res = await getQualityTemplateById({planId: value.id})
+    if(res.code === 200){
+      state.form = res.data
+
+    }else{
+      ElMessage.warning(res.message)
+    }
     if(state.isAdmin){
-      state.form.companyId = value.companyId
-      state.form.companyName = value.companyName
+      state.form.companyId = res.data.companyId
+      state.form.companyName = res.data.companyName
     }
   }
   await getPeopleList()
diff --git a/src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/index.vue b/src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/index.vue
index e8190ef..69bceae 100644
--- a/src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/index.vue
+++ b/src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/index.vue
@@ -52,15 +52,18 @@
       </el-form>
     </div>
     <!-- 表格数据 -->
-    <el-table v-loading="loading" :data="dataList" :border="true"  @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" />
-      <el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
-      <el-table-column label="名称" prop="companyName" align="center"  >
-        <template #default="scope">
-          <span>{{scope.row.year}}年度{{scope.row.companyName}}质量管理体系工作策划安排及完成情况</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" align="center" class-naame="small-padding fixed-width" >
+    <el-table v-loading="loading" :data="dataList" :border="true"  @selection-change="handleSelectionChange" :span-method="mergeCells">
+      <el-table-column type="selection" width="55" prop="selection" />
+<!--      <el-table-column type="index" label="序号" width="80" align="center"></el-table-column>-->
+      <el-table-column label="企业名称" v-if="data.isAdmin" prop="companyName" align="center"  />
+      <el-table-column label="年份" prop="year" align="center"  />
+      <el-table-column label="项目" prop="project" align="center"  />
+      <el-table-column label="内容" prop="content" align="center"  />
+      <el-table-column label="参加人员" prop="participant" align="center"  />
+      <el-table-column label="时间" prop="applyTime" align="center"  />
+      <el-table-column label="完成时间" prop="accomplishTime" align="center"  />
+      <el-table-column label="完成情况" prop="accomplishStatus" align="center"  />
+      <el-table-column label="操作" align="center" prop="operate" class-naame="small-padding fixed-width" >
         <template #default="scope">
           <el-button link type="primary"  @click="openDialog('review',scope.row)" >查看</el-button>
           <el-button link type="primary"  @click="openDialog('edit',scope.row)" >编辑</el-button>
@@ -69,17 +72,17 @@
       </el-table-column>
     </el-table>
 
-    <div class="pag-container">
-      <el-pagination
-          v-model:current-page="data.queryParams.pageNum"
-          v-model:page-size="data.queryParams.pageSize"
-          :page-sizes="[10,15,20,25]"
-          layout="total, sizes, prev, pager, next, jumper"
-          :total="total"
-          @size-change="handleSizeChange"
-          @current-change="handleCurrentChange"
-      />
-    </div>
+<!--    <div class="pag-container">-->
+<!--      <el-pagination-->
+<!--          v-model:current-page="data.queryParams.pageNum"-->
+<!--          v-model:page-size="data.queryParams.pageSize"-->
+<!--          :page-sizes="[10,15,20,25]"-->
+<!--          layout="total, sizes, prev, pager, next, jumper"-->
+<!--          :total="total"-->
+<!--          @size-change="handleSizeChange"-->
+<!--          @current-change="handleCurrentChange"-->
+<!--      />-->
+<!--    </div>-->
     <editDialog ref="noticeRef" @getList = "getList"></editDialog>
   </div>
 </template>
@@ -93,7 +96,7 @@
 import {generateWordDocument} from "@/utils/exportWord";
 import {delTable, getTable} from "@/api/qualityObjectives/table";
 import {delDiscern, getDiscern} from "@/api/environment/factors";
-import {delQualityTemplate, getQualityTemplate} from "@/api/standardSys/standardSys";
+import {delQualityTemplate, getQualityTemplate, getQualityTemplateById} from "@/api/standardSys/standardSys";
 const { proxy } = getCurrentInstance();
 const loading = ref(false);
 const noticeRef = ref();
@@ -153,12 +156,33 @@
     getCompanyList()
   }
 });
+
 const getList = async () => {
   loading.value = true;
   const res = await getQualityTemplate(data.queryParams);
   if(res.code === 200){
-    dataList.value = res.data.list
-    total.value = res.data.total
+    const resultArray = [];
+    for (const obj of  res.data.list) {
+      const listItemArray = obj.planMesses;
+      for (const listItem of listItemArray) {
+        resultArray.push({
+          id:obj.id,
+          companyName: obj.companyName,
+          year: obj.year,
+          project: listItem.project,
+          content: listItem.content,
+          participant: listItem.participant,
+          applyTime: listItem.applyTime,
+          accomplishTime: listItem.accomplishTime,
+          accomplishStatus: listItem.accomplishStatus,
+        });
+      }
+    }
+    dataList.value = resultArray
+    calculateSpan()
+    // total.value = resultArray.length
+    // dataList.value = res.data.list
+    // total.value = res.data.total
   }else{
     ElMessage.warning(res.message)
   }
@@ -246,7 +270,7 @@
     item.tableList = item.planMesses
 
     try {
-      generateWordDocument(templatePath.value, item, item.companyName+`_质量管理体系工作策划安排及完成情况.docx`);
+      generateWordDocument(templatePath.value, item, `${item.year}质量管理体系工作策划安排及完成情况.docx`);
     } catch (error){
       ElMessage({
         type: 'warning',
@@ -256,8 +280,19 @@
   })
 }
 
-const handleSelectionChange = (val) => {
-  choosedData.value = val
+const handleSelectionChange = async (val) => {
+  let arr = []
+  for (const item of val) {
+    const res = await getQualityTemplateById({planId: item.id})
+    if(res.code == 200){
+      arr.push(res.data)
+    }else{
+      ElMessage.warning(res.message)
+    }
+  }
+  choosedData.value = arr
+
+
 }
 const handleDelete = (val) => {
   ElMessageBox.confirm(
@@ -289,6 +324,38 @@
     data.yearList.push({ value, label: value }); // 添加新选项(这里简单地将值和标签设为相同)
   }
 }
+const mergeCells = ({ row, column, rowIndex, columnIndex }) => {
+  if ( column.property == 'operate' || column.property == 'selection' || column.property == 'year') {
+    const _row = spanArr.value[rowIndex];
+    const _col = _row > 0 ? 1 : 0;
+    return [_row, _col];
+  }
+};
+
+const spanArr = ref([]); // 存储每一行的合并信息
+const position = ref(0); // 记录当前位置
+// 计算合并的行数
+const calculateSpan = () => {
+  spanArr.value = [];
+  position.value = 0;
+
+  dataList.value.forEach((item, index) => {
+    if (index === 0) {
+      spanArr.value.push(1);
+      position.value = 0;
+    } else {
+      // 判断当前行的id与上一行是否相同
+      if (dataList.value[index].id === dataList.value[index - 1].id) {
+        spanArr.value[position.value] += 1;
+        spanArr.value.push(0);
+      } else {
+        spanArr.value.push(1);
+        position.value = index;
+      }
+    }
+  });
+};
+
 
 </script>
 <style lang="scss">
diff --git a/src/views/build/conpanyFunctionConsult/environment/controlFactors/components/editDialog.vue b/src/views/build/conpanyFunctionConsult/environment/controlFactors/components/editDialog.vue
index 269267a..975be51 100644
--- a/src/views/build/conpanyFunctionConsult/environment/controlFactors/components/editDialog.vue
+++ b/src/views/build/conpanyFunctionConsult/environment/controlFactors/components/editDialog.vue
@@ -446,6 +446,19 @@
       factorContents = i.factorContents
     }
   })
+  if(!factorContents[0].influence){
+    factorContents = factorContents.map(item => {
+      return {
+        ...item,
+        influence:'正面',
+        monitorMethod:'每年管理评审前',
+        review:'全面评价',
+        solutions:'可控',
+        result:'Y',
+
+      }
+    })
+  }
   state.form.outEnvironment = factorContents.filter(i => i.type == 1)
   state.form.inEnvironment = factorContents.filter(i => i.type == 2)
 }
diff --git a/src/views/build/conpanyFunctionConsult/environment/controlFactors/index.vue b/src/views/build/conpanyFunctionConsult/environment/controlFactors/index.vue
index bc061ee..74c53dc 100644
--- a/src/views/build/conpanyFunctionConsult/environment/controlFactors/index.vue
+++ b/src/views/build/conpanyFunctionConsult/environment/controlFactors/index.vue
@@ -299,7 +299,7 @@
         type: 'warning',
       })
       .then( async() => {
-        const res = await delControl(val.id);
+        const res = await delControl(val.id,val.factorDiscernId);
         if(res.code === 200){
           ElMessage({
             type: 'success',
diff --git a/src/views/build/conpanyFunctionConsult/environment/environmentalFactors/components/editDialog.vue b/src/views/build/conpanyFunctionConsult/environment/environmentalFactors/components/editDialog.vue
index 2dc0c60..9c386a4 100644
--- a/src/views/build/conpanyFunctionConsult/environment/environmentalFactors/components/editDialog.vue
+++ b/src/views/build/conpanyFunctionConsult/environment/environmentalFactors/components/editDialog.vue
@@ -3,7 +3,7 @@
     <el-dialog
         v-model="dialogVisible"
         :title="title"
-        width="900px"
+        width="950px"
         :before-close="handleClose"
         :close-on-press-escape="false"
         :close-on-click-modal="false"
@@ -70,7 +70,7 @@
               <div style="display: flex;width: 100%;margin-top: 5px">
                 <el-table :data="state.form.outEnvironment" :border="true">
                   <el-table-column type="index" label="序号"  align="center"></el-table-column>
-                  <el-table-column label="环境因素" prop="factorName" align="center" width="140">
+                  <el-table-column label="环境因素" prop="factorName" align="center" min-width="130">
                     <template  #default="{row,$index}">
                       <el-form-item :prop="'outEnvironment.' + '[' + $index + ']' + '.factorName'" :rules="state.rules.factorName">
                         <el-select
@@ -78,6 +78,11 @@
                             v-model="row.factorName"
                             placeholder="请选择环境因素"
                             style="width: 240px"
+                            filterable
+                            allow-create
+                            default-first-option
+                            :reserve-keyword="false"
+                            clearable
                         >
                           <el-option
                               v-for="item in state.outReasonList"
@@ -89,14 +94,14 @@
                       </el-form-item>
                     </template>
                   </el-table-column>
-                  <el-table-column label="主要内容" prop="factorMess" align="center" width="220">
+                  <el-table-column label="主要内容" prop="factorMess" align="center" width="360">
                     <template  #default="{row,$index}">
                       <el-form-item :prop="'outEnvironment.' + '[' + $index + ']' + '.factorMess'" :rules="state.rules.factorMess">
                         <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="4" v-model="row.factorMess" placeholder="请输入"></el-input>
                       </el-form-item>
                     </template>
                   </el-table-column>
-                  <el-table-column label="备注" prop="remark" align="center" >
+                  <el-table-column label="备注" prop="remark" align="center" max-width="140">
                     <template  #default="{row,$index}">
                       <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="row.remark" placeholder="请输入"></el-input>
                     </template>
@@ -123,7 +128,7 @@
               <div style="display: flex;width: 100%;">
                 <el-table :data="state.form.inEnvironment" :border="true" >
                   <el-table-column type="index" label="序号"  align="center"></el-table-column>
-                  <el-table-column label="环境因素" prop="factorName" align="center" width="140">
+                  <el-table-column label="环境因素" prop="factorName" align="center" min-width="130">
                     <template  #default="{row,$index}">
                       <el-form-item :prop="'inEnvironment.' + '[' + $index + ']' + '.factorName'" :rules="state.rules.factorName">
                         <el-select
@@ -131,6 +136,11 @@
                             v-model="row.factorName"
                             placeholder="请选择环境因素"
                             style="width: 240px"
+                            filterable
+                            allow-create
+                            default-first-option
+                            :reserve-keyword="false"
+                            clearable
                         >
                           <el-option
                               v-for="item in state.inReasonList"
@@ -142,14 +152,14 @@
                       </el-form-item>
                     </template>
                   </el-table-column>
-                  <el-table-column label="主要内容" prop="factorMess" align="center" width="220">
+                  <el-table-column label="主要内容" prop="factorMess" align="center" width="360">
                     <template  #default="{row,$index}">
                       <el-form-item :prop="'inEnvironment.' + '[' + $index + ']' + '.factorMess'" :rules="state.rules.factorMess">
                         <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="4" v-model="row.factorMess" placeholder="请输入"></el-input>
                       </el-form-item>
                     </template>
                   </el-table-column>
-                  <el-table-column label="备注" prop="remark" align="center" >
+                  <el-table-column label="备注" prop="remark" align="center" max-width="140">
                     <template  #default="{row,$index}">
                       <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="row.remark" placeholder="请输入"></el-input>
                     </template>
diff --git a/src/views/build/conpanyFunctionConsult/riskManage/control/components/editDialog.vue b/src/views/build/conpanyFunctionConsult/riskManage/control/components/editDialog.vue
index 1516904..c78150e 100644
--- a/src/views/build/conpanyFunctionConsult/riskManage/control/components/editDialog.vue
+++ b/src/views/build/conpanyFunctionConsult/riskManage/control/components/editDialog.vue
@@ -106,7 +106,7 @@
                     <template  #default="{row,$index}">
                       <div v-for="(i,index) in row.contentMesses" :key="index">
                         <el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.severity'" :rules="state.rules.severity">
-                          <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.severity" placeholder="请输入"></el-input>
+                          <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="3" v-model="i.severity" placeholder="请输入"></el-input>
                         </el-form-item>
                       </div>
                     </template>
@@ -115,7 +115,7 @@
                     <template  #default="{row,$index}">
                       <div v-for="(i,index) in row.contentMesses" :key="index">
                         <el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.frequency'" :rules="state.rules.frequency">
-                          <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.frequency" placeholder="请输入"></el-input>
+                          <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="3" v-model="i.frequency" placeholder="请输入"></el-input>
                         </el-form-item>
                       </div>
                     </template>
@@ -124,7 +124,7 @@
                     <template  #default="{row,$index}">
                       <div v-for="(i,index) in row.contentMesses" :key="index">
                         <el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.rpn'" :rules="state.rules.rpn">
-                          <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.rpn" placeholder="请输入"></el-input>
+                          <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="3" v-model="i.rpn" placeholder="请输入"></el-input>
                         </el-form-item>
                       </div>
                     </template>
@@ -133,7 +133,7 @@
                     <template  #default="{row,$index}">
                       <div v-for="(i,index) in row.contentMesses" :key="index">
                         <el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.riskLevel'" :rules="state.rules.riskLevel">
-                          <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.riskLevel" placeholder="请输入"></el-input>
+                          <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="3" v-model="i.riskLevel" placeholder="请输入"></el-input>
                         </el-form-item>
                       </div>
                     </template>
@@ -151,7 +151,7 @@
                     <template  #default="{row,$index}">
                       <div v-for="(i,index) in row.contentMesses" :key="index">
                         <el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.chargeUser'" :rules="state.rules.chargeUser">
-                          <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.chargeUser" placeholder="请输入"></el-input>
+                          <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="3" v-model="i.chargeUser" placeholder="请输入"></el-input>
                         </el-form-item>
                       </div>
                     </template>
diff --git a/src/views/build/conpanyFunctionConsult/riskManage/record/components/editDialog.vue b/src/views/build/conpanyFunctionConsult/riskManage/record/components/editDialog.vue
index eb236ca..3a4cc8f 100644
--- a/src/views/build/conpanyFunctionConsult/riskManage/record/components/editDialog.vue
+++ b/src/views/build/conpanyFunctionConsult/riskManage/record/components/editDialog.vue
@@ -67,28 +67,28 @@
                   <el-table-column label="风险评估-严重度" prop="remark" align="center" >
                     <template  #default="{row,$index}">
                       <div v-for="(i,index) in row.contentMesses" :key="index">
-                        <el-input style="margin-bottom: 15px" type="textarea" disabled v-model="i.severity"></el-input>
+                        <el-input style="margin-bottom: 15px" type="textarea" :rows="3" disabled v-model="i.severity"></el-input>
                       </div>
                     </template>
                   </el-table-column>
                   <el-table-column label="风险评估-发生频率" prop="remark" align="center" >
                     <template  #default="{row,$index}">
                       <div v-for="(i,index) in row.contentMesses" :key="index">
-                        <el-input style="margin-bottom: 15px" type="textarea" disabled v-model="i.frequency"></el-input>
+                        <el-input style="margin-bottom: 15px" type="textarea" :rows="3" disabled v-model="i.frequency"></el-input>
                       </div>
                     </template>
                   </el-table-column>
                   <el-table-column label="风险评估-RPN" prop="remark" align="center" >
                     <template  #default="{row,$index}">
                       <div v-for="(i,index) in row.contentMesses" :key="index">
-                        <el-input style="margin-bottom: 15px" type="textarea" disabled v-model="i.rpn"></el-input>
+                        <el-input style="margin-bottom: 15px" type="textarea" :rows="3" disabled v-model="i.rpn"></el-input>
                       </div>
                     </template>
                   </el-table-column>
                   <el-table-column label="风险评估-风险等级" prop="remark" align="center" >
                     <template  #default="{row,$index}">
                       <div v-for="(i,index) in row.contentMesses" :key="index">
-                        <el-input style="margin-bottom: 15px" type="textarea" disabled v-model="i.riskLevel"></el-input>
+                        <el-input style="margin-bottom: 15px" type="textarea" :rows="3" disabled v-model="i.riskLevel"></el-input>
                       </div>
                     </template>
                   </el-table-column>
@@ -102,7 +102,7 @@
                   <el-table-column label="风险对应措施-责任人" prop="remark" align="center" width="120">
                     <template  #default="{row,$index}">
                       <div v-for="(i,index) in row.contentMesses" :key="index">
-                        <el-input style="margin-bottom: 15px" type="textarea" disabled v-model="i.chargeUser"></el-input>
+                        <el-input style="margin-bottom: 15px" type="textarea" :rows="3" disabled v-model="i.chargeUser"></el-input>
                       </div>
                     </template>
                   </el-table-column>
@@ -110,7 +110,7 @@
                     <template  #default="{row,$index}">
                       <div v-for="(i,index) in row.contentMesses" :key="index">
                         <el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.monitorTime'" :rules="state.rules.monitorTime">
-                          <el-input style="margin-bottom: 15px" :disabled="title === '查看'" type="textarea" v-model="i.monitorTime" placeholder="请输入"></el-input>
+                          <el-input style="margin-bottom: 15px" :disabled="title === '查看'" :rows="3" type="textarea" v-model="i.monitorTime" placeholder="请输入"></el-input>
                         </el-form-item>
                       </div>
                     </template>
@@ -119,7 +119,7 @@
                     <template  #default="{row,$index}">
                       <div v-for="(i,index) in row.contentMesses" :key="index">
                         <el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.review'" :rules="state.rules.review">
-                          <el-input style="margin-bottom: 15px" :disabled="title === '查看'" type="textarea" v-model="i.review" placeholder="请输入"></el-input>
+                          <el-input style="margin-bottom: 15px" :disabled="title === '查看'" :rows="3" type="textarea" v-model="i.review" placeholder="请输入"></el-input>
                         </el-form-item>
                       </div>
                     </template>
diff --git a/src/views/work/procurementPlatform/warehouseManagement/monthlyInspectionRecord/components/editDialog.vue b/src/views/work/procurementPlatform/warehouseManagement/monthlyInspectionRecord/components/editDialog.vue
index 1cd97cc..eafbece 100644
--- a/src/views/work/procurementPlatform/warehouseManagement/monthlyInspectionRecord/components/editDialog.vue
+++ b/src/views/work/procurementPlatform/warehouseManagement/monthlyInspectionRecord/components/editDialog.vue
@@ -42,7 +42,7 @@
               <div style="display: flex;width: 100%;">
                 <el-table :data="state.form.inspectionMesses" :border="true" >
                   <el-table-column type="index" label="序号"  align="center"></el-table-column>
-                  <el-table-column label="时间" prop="monthlyTime" align="center" width="100">
+                  <el-table-column label="时间" prop="monthlyTime" align="center" width="140">
                     <template  #default="{row,$index}">
                       <el-form-item :prop="'inspectionMesses.' + '[' + $index + ']' + 'monthlyTime'" :rules="state.rules.monthlyTime">
                         <el-date-picker
@@ -142,7 +142,8 @@
 import {getDept, getObject, getObjectPage} from "@/api/qualityObjectives/object";
 import {addTable, editTable, getTargetById} from "@/api/qualityObjectives/table";
 import {addNeedDiscren, editNeedDiscren} from "@/api/need/need";
-import {addMonthlyRecord, editMonthlyRecord} from "@/api/monthlyInspectionRecord";
+import {addMonthlyRecord, editMonthlyRecord, getMonthlyRecordById} from "@/api/monthlyInspectionRecord";
+import {getQualityTemplateById} from "@/api/standardSys/standardSys";
 
 const dialogVisible = ref(false);
 const title = ref("");
@@ -193,11 +194,22 @@
   }
   title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ;
   if(type === 'edit' || type === 'review') {
-    state.form = JSON.parse(JSON.stringify(value));
-    if(state.isAdmin){
-      state.form.companyId = value.companyId
-      state.form.companyName = value.companyName
+    const res = await getMonthlyRecordById({monthlyId: value.id})
+    if(res.code === 200){
+      state.form = res.data
+
+    }else{
+      ElMessage.warning(res.message)
     }
+    if(state.isAdmin){
+      state.form.companyId = res.data.companyId
+      state.form.companyName = res.data.companyName
+    }
+    // state.form = JSON.parse(JSON.stringify(value));
+    // if(state.isAdmin){
+    //   state.form.companyId = value.companyId
+    //   state.form.companyName = value.companyName
+    // }
   }
   await getPeopleList()
   dialogVisible.value = true;
diff --git a/src/views/work/procurementPlatform/warehouseManagement/monthlyInspectionRecord/index.vue b/src/views/work/procurementPlatform/warehouseManagement/monthlyInspectionRecord/index.vue
index fb3e233..2b3892a 100644
--- a/src/views/work/procurementPlatform/warehouseManagement/monthlyInspectionRecord/index.vue
+++ b/src/views/work/procurementPlatform/warehouseManagement/monthlyInspectionRecord/index.vue
@@ -33,16 +33,22 @@
       </el-form>
     </div>
     <!-- 表格数据 -->
-    <el-table v-loading="loading" :data="dataList" :border="true"  @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" />
-      <el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
-      <el-table-column label="企业名称" prop="companyName" align="center" v-if="data.isAdmin" />
-      <el-table-column label="名称"  align="center">
-        <template #default="scope">
-          <span>{{scope.row.recordName}}登记</span>
-        </template>
+    <el-table v-loading="loading" :data="dataList" :border="true"  @selection-change="handleSelectionChange" :span-method="mergeCells">
+      <el-table-column type="selection" prop="selection" width="55" />
+<!--      <el-table-column type="index" prop="sequenceNumber" label="序号" width="80" align="center"></el-table-column>-->
+<!--      <el-table-column label="企业名称" prop="companyName" align="center" v-if="data.isAdmin" />-->
+      <el-table-column label="名称" prop="recordName" align="center">
       </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160">
+      <el-table-column label="时间" prop="monthlyTime" align="center" />
+      <el-table-column label="检查人" prop="checkUser" align="center" />
+      <el-table-column label="防护" prop="entrench" align="center" />
+      <el-table-column label="标识" prop="identification" align="center" />
+      <el-table-column label="摆放" prop="place" align="center" />
+      <el-table-column label="清洁" prop="clean" align="center" />
+      <el-table-column label="安全" prop="safety" align="center" />
+      <el-table-column label="环境" prop="environment" align="center" />
+      <el-table-column label="帐务卡一致性" prop="consistency" align="center" />
+      <el-table-column label="操作" align="center" prop="operate" class-name="small-padding fixed-width" width="160">
         <template #default="scope">
           <el-button link type="primary"  @click="openDialog('review',scope.row)" >查看</el-button>
           <el-button link type="primary"  @click="openDialog('edit',scope.row)" >编辑</el-button>
@@ -51,17 +57,17 @@
       </el-table-column>
     </el-table>
 
-    <div class="pag-container">
-      <el-pagination
-          v-model:current-page="data.queryParams.pageNum"
-          v-model:page-size="data.queryParams.pageSize"
-          :page-sizes="[10,15,20,25]"
-          layout="total, sizes, prev, pager, next, jumper"
-          :total="total"
-          @size-change="handleSizeChange"
-          @current-change="handleCurrentChange"
-      />
-    </div>
+<!--    <div class="pag-container">-->
+<!--      <el-pagination-->
+<!--          v-model:current-page="data.queryParams.pageNum"-->
+<!--          v-model:page-size="data.queryParams.pageSize"-->
+<!--          :page-sizes="[10,15,20,25]"-->
+<!--          layout="total, sizes, prev, pager, next, jumper"-->
+<!--          :total="total"-->
+<!--          @size-change="handleSizeChange"-->
+<!--          @current-change="handleCurrentChange"-->
+<!--      />-->
+<!--    </div>-->
     <editDialog ref="noticeRef" @getList = "getList"></editDialog>
   </div>
 </template>
@@ -75,7 +81,8 @@
 import {generateWordDocument} from "@/utils/exportWord";
 import {delTable, getTable} from "@/api/qualityObjectives/table";
 import {delNeedDiscren, getNeedDiscren} from "@/api/need/need";
-import {delMonthlyRecord, getMonthlyRecord} from "@/api/monthlyInspectionRecord";
+import {delMonthlyRecord, getMonthlyRecord, getMonthlyRecordById} from "@/api/monthlyInspectionRecord";
+import {getQualityTemplateById} from "@/api/standardSys/standardSys";
 const { proxy } = getCurrentInstance();
 const loading = ref(false);
 const noticeRef = ref();
@@ -113,12 +120,41 @@
     getCompanyList()
   }
 });
+
+const resData = ref([])
 const getList = async () => {
   loading.value = true;
   const res = await getMonthlyRecord(data.queryParams);
   if(res.code === 200){
-    dataList.value = res.data.list
-    total.value = res.data.total
+    const resultArray = [];
+    for (const obj of  res.data.list) {
+      const listItemArray = obj.inspectionMesses;
+      for (const listItem of listItemArray) {
+        resultArray.push({
+          id:obj.id,
+          companyName: obj.companyName,
+          recordName: obj.recordName,
+          monthlyTime: listItem.monthlyTime,
+          checkUser: listItem.checkUser,
+          entrench: listItem.entrench,
+          identification: listItem.identification,
+          place: listItem.place,
+          clean: listItem.clean,
+          safety: listItem.safety,
+          environment: listItem.environment,
+          consistency: listItem.consistency,
+        });
+      }
+    }
+    dataList.value = resultArray.map((item,index) => {
+      return {
+        ...item,
+        sequenceNumber: index + 1
+      }
+    })
+    calculateSpan()
+    // dataList.value = res.data.list
+    // total.value = res.data.total
   }else{
     ElMessage.warning(res.message)
   }
@@ -193,7 +229,7 @@
     item.tableData = item.inspectionMesses
     console.log('xxx',item.tableData)
     try {
-      generateWordDocument(templatePath.value, item, item.companyName + `_月度检查记录表.docx`);
+      generateWordDocument(templatePath.value, item, item.recordName + `_月度检查记录表.docx`);
     } catch (error){
       ElMessage({
         type: 'warning',
@@ -202,8 +238,17 @@
     }
   })
 }
-const handleSelectionChange = (val) => {
-  choosedData.value = val
+const handleSelectionChange = async (val) => {
+  let arr = []
+  for (const item of val) {
+    const res = await getMonthlyRecordById({monthlyId: item.id})
+    if(res.code == 200){
+      arr.push(res.data)
+    }else{
+      ElMessage.warning(res.message)
+    }
+  }
+  choosedData.value = arr
 }
 const handleDelete = (val) => {
   ElMessageBox.confirm(
@@ -228,6 +273,37 @@
       })
 }
 
+const mergeCells = ({ row, column, rowIndex, columnIndex }) => {
+  if ( column.property == 'operate' || column.property == 'recordName' || column.property == 'selection') {
+    const _row = spanArr.value[rowIndex];
+    const _col = _row > 0 ? 1 : 0;
+    return [_row, _col];
+  }
+};
+
+const spanArr = ref([]); // 存储每一行的合并信息
+const position = ref(0); // 记录当前位置
+// 计算合并的行数
+const calculateSpan = () => {
+  spanArr.value = [];
+  position.value = 0;
+
+  dataList.value.forEach((item, index) => {
+    if (index === 0) {
+      spanArr.value.push(1);
+      position.value = 0;
+    } else {
+      // 判断当前行的id与上一行是否相同
+      if (dataList.value[index].id === dataList.value[index - 1].id) {
+        spanArr.value[position.value] += 1;
+        spanArr.value.push(0);
+      } else {
+        spanArr.value.push(1);
+        position.value = index;
+      }
+    }
+  });
+};
 
 </script>
 <style lang="scss">
diff --git a/src/views/work/qualityInfo/supplierQuality/satisfiedEvaluste/deliver/components/editDialog.vue b/src/views/work/qualityInfo/supplierQuality/satisfiedEvaluste/deliver/components/editDialog.vue
index 49fa348..302b7d1 100644
--- a/src/views/work/qualityInfo/supplierQuality/satisfiedEvaluste/deliver/components/editDialog.vue
+++ b/src/views/work/qualityInfo/supplierQuality/satisfiedEvaluste/deliver/components/editDialog.vue
@@ -38,7 +38,15 @@
         <el-row :gutter="24">
           <el-col :span="12">
             <el-form-item label="单位名称:" prop="unitName" >
-              <el-input :disabled="title === '查看'" v-model="state.form.unitName" placeholder="单位名称"></el-input>
+<!--              <el-input :disabled="title === '查看'" v-model="state.form.unitName" placeholder="单位名称"></el-input>-->
+              <el-select v-model="state.form.unitName" placeholder="请选择" filterable clearable style="width: 100%" :disabled="title == '查看'" @change="selectUnitCom">
+                <el-option
+                    v-for="item in state.supplierList"
+                    :key="item.id"
+                    :label="item.customerName"
+                    :value="item.id">
+                </el-option>
+              </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -141,6 +149,7 @@
 import {verifyPhone} from "@/utils/validate";
 import {developList} from "@/views/work/qualityInfo/supplierQuality/supplierList/components/qualityDatas";
 import {addDelivery, editDelivery} from "@/api/satisfiedNew/satisfiedNew";
+import {getCustomer, getCustomerAll} from "@/api/customerList";
 
 const dialogVisible = ref(false);
 const title = ref("");
@@ -250,7 +259,8 @@
       name: '其他'
     },
   ],
-  checkProductTypes: []
+  checkProductTypes: [],
+  supplierList: []
 })
 
 onMounted(() => {
@@ -258,6 +268,7 @@
 
 });
 const openDialog = async (type, value,companyList) => {
+
   const userInfo = JSON.parse(Cookies.get('userInfo'))
   state.isAdmin = userInfo.userType === 0;
   state.form.companyName = userInfo.companyName
@@ -267,9 +278,11 @@
     state.form.companyName = value.companyName
     state.companyList = companyList
   }
+  await getSupplier()
   title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ;
   if(type === 'edit' || type === 'review') {
     state.form = JSON.parse(JSON.stringify(value));
+    state.form.unitName = Number(state.form.unitName)
     if(state.isAdmin){
       state.form.companyId = value.companyId
       state.form.companyName = value.companyName
@@ -281,6 +294,17 @@
   dialogVisible.value = true;
 }
 
+const getSupplier = async () => {
+  const param = {
+    companyId: state.form.companyId,
+  }
+  const res = await getCustomerAll(param);
+  if(res.code === 200){
+    state.supplierList = res.data.data
+  }else{
+    ElMessage.warning(res.message)
+  }
+}
 const onSubmit = async () => {
   state.form.mess = JSON.stringify(state.dataList)
   state.form.product = state.checkProductTypes.join(',')
@@ -343,6 +367,38 @@
   }
   state.checkProductTypes = []
   state.companyList = []
+  state.dataList =[
+    {
+      num: '说明',
+      item: '哪项不满意,请在相应的选项“⬜︎︎︎”内打“√”',
+      satisfied:'总体评价,请在相应的选项“⬜︎︎︎”内打“√”'
+    },
+    {
+      num: '1',
+      item: ['产品性能','技术资料','操作性','维护性','稳定性'],
+      satisfied:['满意','基本满意','不满意']
+    },
+    {
+      num: '2',
+      item: ['节点控制','交付及时性','可靠性'],
+      satisfied:['满意','基本满意','不满意']
+    },
+    {
+      num: '3',
+      item: ['顾客培训','技术支持','售后维修','备品及备件供应'],
+      satisfied:['满意','基本满意','不满意']
+    },
+    {
+      num: '4',
+      item: ['技术技能','服务态度','过程规范','综合素质'],
+      satisfied:['满意','基本满意','不满意']
+    },
+    {
+      num: '5',
+      item: ['服务的及时性','有效性','服务态度'],
+      satisfied:['满意','基本满意','不满意']
+    },
+  ]
 }
 
 
@@ -367,7 +423,19 @@
     state.yearList.push({ value, label: value }); // 添加新选项(这里简单地将值和标签设为相同)
   }
 }
+const selectUnitCom = (val) => {
+  state.form.person = ''
+  state.form.address = ''
+  state.form.phone = ''
+  state.supplierList.forEach(item => {
+    if(val == item.id){
+      state.form.person = item.person
+      state.form.address = item.customerAddr
+      state.form.phone = item.phone
+    }
+  })
 
+}
 defineExpose({
   openDialog
 });
diff --git a/src/views/work/qualityManage/continuousImprovement/components/editDialog.vue b/src/views/work/qualityManage/continuousImprovement/components/editDialog.vue
index 44c7e53..89cc68b 100644
--- a/src/views/work/qualityManage/continuousImprovement/components/editDialog.vue
+++ b/src/views/work/qualityManage/continuousImprovement/components/editDialog.vue
@@ -191,7 +191,8 @@
 import {addTable, editTable, getTargetById} from "@/api/qualityObjectives/table";
 import {addNeedDiscren, editNeedDiscren} from "@/api/need/need";
 import {addCustomerNeed, editCustomerNeed} from "@/api/customerNeed";
-import {addInside, editInside} from "@/api/continuousImprovement";
+import {addInside, editInside, getInsideById} from "@/api/continuousImprovement";
+import {getQualityTemplateById} from "@/api/standardSys/standardSys";
 
 const dialogVisible = ref(false);
 const title = ref("");
@@ -267,11 +268,23 @@
   }
   title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ;
   if(type === 'edit' || type === 'review') {
-    state.form = JSON.parse(JSON.stringify(value));
-    if(state.isAdmin){
-      state.form.companyId = value.companyId
-      state.form.companyName = value.companyName
+    const res = await getInsideById({improveId: value.id})
+    if(res.code === 200){
+      state.form = res.data
+
+    }else{
+      ElMessage.warning(res.message)
     }
+    if(state.isAdmin){
+      state.form.companyId = res.data.companyId
+      state.form.companyName = res.data.companyName
+    }
+
+    // state.form = JSON.parse(JSON.stringify(value));
+    // if(state.isAdmin){
+    //   state.form.companyId = value.companyId
+    //   state.form.companyName = value.companyName
+    // }
 
     console.log('xx',state.form)
 
diff --git a/src/views/work/qualityManage/continuousImprovement/index.vue b/src/views/work/qualityManage/continuousImprovement/index.vue
index b7c4aab..fcb666f 100644
--- a/src/views/work/qualityManage/continuousImprovement/index.vue
+++ b/src/views/work/qualityManage/continuousImprovement/index.vue
@@ -52,16 +52,17 @@
       </el-form>
     </div>
     <!-- 表格数据 -->
-    <el-table v-loading="loading" :data="dataList" :border="true"  @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" />
-      <el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
+    <el-table v-loading="loading" :data="dataList" :border="true"  @selection-change="handleSelectionChange" :span-method="mergeCells">
+      <el-table-column type="selection" width="55" prop="selection" />
+<!--      <el-table-column type="index" label="序号" width="80" align="center"></el-table-column>-->
       <el-table-column label="企业名称" prop="companyName" align="center" v-if="data.isAdmin" />
-      <el-table-column label="名称"  align="center">
-        <template #default="scope">
-          <span>{{scope.row.year}}年度质量体系改进计划</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160">
+      <el-table-column label="年份" prop="year" align="center"  />
+      <el-table-column label="改进项" prop="items" align="center"  />
+      <el-table-column label="具体措施" prop="measure" align="center"  />
+      <el-table-column label="责任部门" prop="dutyName" align="center"  />
+      <el-table-column label="完成时间" prop="finishTime" align="center"  />
+      <el-table-column label="跟踪验证" prop="verify" align="center"  />
+      <el-table-column label="操作" align="center" prop="operate" class-name="small-padding fixed-width" width="160">
         <template #default="scope">
           <el-button link type="primary"  @click="openDialog('review',scope.row)" >查看</el-button>
           <el-button link type="primary"  @click="openDialog('edit',scope.row)" >编辑</el-button>
@@ -70,17 +71,17 @@
       </el-table-column>
     </el-table>
 
-    <div class="pag-container">
-      <el-pagination
-          v-model:current-page="data.queryParams.pageNum"
-          v-model:page-size="data.queryParams.pageSize"
-          :page-sizes="[10,15,20,25]"
-          layout="total, sizes, prev, pager, next, jumper"
-          :total="total"
-          @size-change="handleSizeChange"
-          @current-change="handleCurrentChange"
-      />
-    </div>
+<!--    <div class="pag-container">-->
+<!--      <el-pagination-->
+<!--          v-model:current-page="data.queryParams.pageNum"-->
+<!--          v-model:page-size="data.queryParams.pageSize"-->
+<!--          :page-sizes="[10,15,20,25]"-->
+<!--          layout="total, sizes, prev, pager, next, jumper"-->
+<!--          :total="total"-->
+<!--          @size-change="handleSizeChange"-->
+<!--          @current-change="handleCurrentChange"-->
+<!--      />-->
+<!--    </div>-->
     <editDialog ref="noticeRef" @getList = "getList"></editDialog>
   </div>
 </template>
@@ -95,7 +96,8 @@
 import {delTable, getTable} from "@/api/qualityObjectives/table";
 import {delNeedDiscren, getNeedDiscren} from "@/api/need/need";
 import {delCustomerNeed, getCustomerNeed} from "@/api/customerNeed";
-import {delInside, getInside} from "@/api/continuousImprovement";
+import {delInside, getInside, getInsideById} from "@/api/continuousImprovement";
+import {getQualityTemplateById} from "@/api/standardSys/standardSys";
 const { proxy } = getCurrentInstance();
 const loading = ref(false);
 const noticeRef = ref();
@@ -157,8 +159,26 @@
   loading.value = true;
   const res = await getInside(data.queryParams);
   if(res.code === 200){
-    dataList.value = res.data.list
-    total.value = res.data.total
+    const resultArray = [];
+    for (const obj of  res.data.list) {
+      const listItemArray = obj.plans;
+      for (const listItem of listItemArray) {
+        resultArray.push({
+          id:obj.id,
+          companyName: obj.companyName,
+          year: obj.year,
+          items: listItem.items,
+          measure: listItem.measure,
+          dutyName: listItem.dutyName,
+          finishTime: listItem.finishTime,
+          verify: listItem.verify,
+        });
+      }
+    }
+    dataList.value = resultArray
+    calculateSpan()
+    // dataList.value = res.data.list
+    // total.value = res.data.total
   }else{
     ElMessage.warning(res.message)
   }
@@ -238,7 +258,7 @@
     })
     console.log('xxx',item.tableData)
     try {
-      generateWordDocument(templatePath.value, item, item.companyName + `_${item.year}年度体系改进计划.docx`);
+      generateWordDocument(templatePath.value, item,  `${item.year}年度体系改进计划.docx`);
     } catch (error){
       ElMessage({
         type: 'warning',
@@ -247,8 +267,17 @@
     }
   })
 }
-const handleSelectionChange = (val) => {
-  choosedData.value = val
+const handleSelectionChange = async (val) => {
+  let arr = []
+  for (const item of val) {
+    const res = await getInsideById({improveId: item.id})
+    if(res.code == 200){
+      arr.push(res.data)
+    }else{
+      ElMessage.warning(res.message)
+    }
+  }
+  choosedData.value = arr
 }
 const handleDelete = (val) => {
   ElMessageBox.confirm(
@@ -281,6 +310,37 @@
     data.yearList.push({ value, label: value }); // 添加新选项(这里简单地将值和标签设为相同)
   }
 }
+const mergeCells = ({ row, column, rowIndex, columnIndex }) => {
+  if ( column.property == 'operate' ||  column.property == 'selection' || column.property == 'year' ) {
+    const _row = spanArr.value[rowIndex];
+    const _col = _row > 0 ? 1 : 0;
+    return [_row, _col];
+  }
+};
+
+const spanArr = ref([]); // 存储每一行的合并信息
+const position = ref(0); // 记录当前位置
+// 计算合并的行数
+const calculateSpan = () => {
+  spanArr.value = [];
+  position.value = 0;
+
+  dataList.value.forEach((item, index) => {
+    if (index === 0) {
+      spanArr.value.push(1);
+      position.value = 0;
+    } else {
+      // 判断当前行的id与上一行是否相同
+      if (dataList.value[index].id === dataList.value[index - 1].id) {
+        spanArr.value[position.value] += 1;
+        spanArr.value.push(0);
+      } else {
+        spanArr.value.push(1);
+        position.value = index;
+      }
+    }
+  });
+};
 </script>
 <style lang="scss">
 .pag-container{
diff --git a/src/views/work/qualityManage/performanceAppraisal/components/editDialog.vue b/src/views/work/qualityManage/performanceAppraisal/components/editDialog.vue
index cd3139d..ae82025 100644
--- a/src/views/work/qualityManage/performanceAppraisal/components/editDialog.vue
+++ b/src/views/work/qualityManage/performanceAppraisal/components/editDialog.vue
@@ -109,13 +109,14 @@
                   <el-table-column label="责任部门" prop="deptId" align="center" >
                     <template #default="{row,$index}">
                       <div v-for="(i,index) in row.analyses" :key="index">
-                        <el-form-item :prop="'types.' + '[' + $index + '].' +'analyses.' + '[' + index + ']' + '.deptId'">
+                        <el-form-item :prop="'types.' + '[' + $index + '].' +'analyses.' + '[' + index + ']' + '.deptId'" style="margin-bottom: 10px">
                           <el-select
                               clearable
                               :disabled="title === '查看'"
                               v-model="i.deptId"
                               placeholder="请选择部门"
-                              style="width: 240px;margin-bottom: 5px"
+                              class="select-same-as-textarea"
+                              style="width: 240px;margin-top: 5px"
                           >
                             <el-option
                                 v-for="item in state.deptList"
@@ -590,5 +591,17 @@
     flex-direction: column;
     align-items: flex-start;
   }
+  /* 同步高度 */
+  ::v-deep .select-same-as-textarea {
+    height: 90px;
+  }
+
+  /* 确保选择器内部区域高度匹配 */
+  ::v-deep .select-same-as-textarea .el-input__inner {
+    height: 90px;
+    line-height: 1.5; /* 保持文字垂直居中 */
+    padding-top: 8px; /* 调整文字位置 */
+  }
+
 }
 </style>

--
Gitblit v1.9.2