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

---
 src/views/build/conpanyFunctionConsult/digitalFileDep/manageType/qualityOrganize/index.vue |  119 ++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 93 insertions(+), 26 deletions(-)

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">

--
Gitblit v1.9.2