From e04a867a23568c9ed5d33c53f8300eee69b1ff7f Mon Sep 17 00:00:00 2001 From: 祖安之光 <11848914+light-of-zuan@user.noreply.gitee.com> Date: 星期二, 08 七月 2025 16:51:13 +0800 Subject: [PATCH] 修改新增 --- src/views/build/conpanyFunctionConsult/orgStructure/departManage/index.vue | 57 ++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 42 insertions(+), 15 deletions(-) diff --git a/src/views/build/conpanyFunctionConsult/orgStructure/departManage/index.vue b/src/views/build/conpanyFunctionConsult/orgStructure/departManage/index.vue index 955110e..6117899 100644 --- a/src/views/build/conpanyFunctionConsult/orgStructure/departManage/index.vue +++ b/src/views/build/conpanyFunctionConsult/orgStructure/departManage/index.vue @@ -18,7 +18,7 @@ <el-form-item > <el-button v-if="isAdmin" type="primary" @click="getList">查询</el-button> <el-button v-if="isAdmin" type="primary" plain @click="reset">重置</el-button> - <el-button type="primary" @click="initDistribute">生成智能分配表</el-button> + <el-button type="primary" @click="initDistribute">生成职能分配表</el-button> </el-form-item> </el-form> </div> @@ -27,14 +27,16 @@ <el-table-column label="序号" type="index" align="center" width="80" /> <el-table-column label="部门名称" prop="deptName" align="center" /> <el-table-column label="负责人" prop="leaderName" align="center" /> - <el-table-column label="主要负责部门" prop="parentName" align="center"/> + <el-table-column label="主要负责部门" prop="parentName" align="center"> + <template #default="scope"> + <span> + {{scope.row.sysDeptManageVoList?.map(i=>i.subDeptName).join('、')}} + </span> + </template> + </el-table-column> <el-table-column label="部门涉及条款" prop="userTypeName" align="center" width="150"> <template #default="scope"> - <div v-if="scope.row.caluseVO1List"> - <div v-for="(item,index) in scope.row.caluseVO1List" :key="index"> - {{ item.clauseNum + ' ' + item.content}} - </div> - </div> + {{sortVersionNumbers(scope.row.caluseVO1List?.map(i=>i.clauseNum)).join('、')}} </template> </el-table-column> <el-table-column label="部门职责表" prop="userTypeName" align="center" width="150"> @@ -66,7 +68,14 @@ <script setup> import {getCurrentInstance, onMounted, onUnmounted, reactive, ref, toRefs} from "vue"; import {ElMessage, ElMessageBox} from "element-plus"; -import {getDepart, delDepart, getCompany, getDeptInfo, initDistribution} from "@/api/orgStructure/depart"; +import { + getDepart, + delDepart, + getCompany, + getDeptInfo, + initDistribution, + getDepartByPage +} from "@/api/orgStructure/depart"; import departDialog from './components/departDialog.vue' import dutyDialog from './components/dutyDialog.vue' import {generateWordDocument} from "./components/exportWord.js"; @@ -117,9 +126,9 @@ const getList = async () => { loading.value = true - const res = await getDepart(data.queryParams) + const res = await getDepartByPage(data.queryParams) if(res.code == 200){ - data.dataList = res.data || [] + data.dataList = res.data.list || [] data.total = res.data.total }else{ ElMessage.warning(res.message) @@ -128,6 +137,9 @@ } const initDistribute = async ()=>{ + if(!data.queryParams.companyId){ + ElMessage.warning('请先选择要生成的企业') + } ElMessageBox.confirm( '重新生成将重置原有分配信息,是否继续?', '提示', @@ -154,14 +166,13 @@ const res = await getCompany(queryParams) if (res.code == 200) { data.companyList = res.data.list?res.data.list:[] - data.queryParams.companyId = data.companyList[0].id } else { ElMessage.warning(res.message) } } const openDialog = (type, value) => { - dialogRef.value.openDialog(type, value, data.queryParams.companyId); + dialogRef.value.openDialog(type, value, data.queryParams.companyId, data.isAdmin, data.companyList ); } const openDutyDialog = (value) =>{ dutyDialogRef.value.openDialog(value); @@ -200,7 +211,6 @@ const download = async (val) => { const templatePath = '/dutyFile.docx' const data = await getDeptDetail(val.deptId) - console.log(data) try { generateWordDocument(templatePath, data, `${data.deptName}职责表.docx`); } catch (error){ @@ -221,6 +231,7 @@ tableData.tableData = sortResponsibilities(res.data.sysDeptResponsibilitys.map(i=>{ return { ...i, + leader: i.leader || '', evidenceMaterials: i.evidenceMaterials || '', managementDocuments: i.managementDocuments || '', technicalDocuments: i.technicalDocuments || '', @@ -228,15 +239,16 @@ } })) }else{ - tableData.tableData = [...data.firstFive,...res.data.sysDeptResponsibilitys.map(i=>{ + tableData.tableData = [...data.firstFive,...res.data.sysDeptResponsibilitys,...data.lastTwo].map(i=>{ return { ...i, + leader: i.leader || '', evidenceMaterials: i.evidenceMaterials || '', managementDocuments: i.managementDocuments || '', technicalDocuments: i.technicalDocuments || '', existingRecords: i.existingRecords || '', } - }),...data.lastTwo] + }) } return tableData }else{ @@ -246,7 +258,22 @@ ElMessage.warning(res.message) } } +const sortVersionNumbers = (versions) => { + return versions.sort((a, b) => { + const partsA = a.split('.').map(Number); + const partsB = b.split('.').map(Number); + const maxLength = Math.max(partsA.length, partsB.length) + for (let i = 0; i < maxLength; i++) { + const numA = partsA[i] || 0 + const numB = partsB[i] || 0 + if (numA !== numB) { + return numA - numB + } + } + return 0 + }); +} const sortResponsibilities = (list) => { // 提取firstFive和lastTwo的clauseNum作为排序依据 const firstFiveClauses = data.firstFive.map(item => item.clauseNum) -- Gitblit v1.9.2