From 4fe6c5ac4bc2b7fa9c9c71bb52d9df3e8b13bd7c Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期二, 15 七月 2025 10:11:45 +0800 Subject: [PATCH] 修改 --- src/views/build/conpanyFunctionConsult/orgStructure/departManage/index.vue | 123 +++++++++++++++++++++-------------------- 1 files changed, 63 insertions(+), 60 deletions(-) diff --git a/src/views/build/conpanyFunctionConsult/orgStructure/departManage/index.vue b/src/views/build/conpanyFunctionConsult/orgStructure/departManage/index.vue index f66da1c..76cb20a 100644 --- a/src/views/build/conpanyFunctionConsult/orgStructure/departManage/index.vue +++ b/src/views/build/conpanyFunctionConsult/orgStructure/departManage/index.vue @@ -23,41 +23,44 @@ </el-form> </div> <!-- 表格数据 --> - <el-table v-loading="loading" :data="dataList" border> - <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="userTypeName" align="center" width="150"> + <el-table v-loading="loading" :data="dataList" border row-key="deptId" :default-expand-all="true" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> + <el-table-column label="部门名称" prop="deptName" align="center" width="220"/> + <el-table-column label="排序" prop="orderNum" align="center" width="60"/> + <el-table-column label="负责人" prop="leaderName" align="center" width="80"/> +<!-- <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"> <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"> + <el-table-column label="部门职责表" prop="userTypeName" align="center" width="140"> <template #default="scope"> <el-button link type="primary" @click="openDutyDialog(scope.row)">编辑</el-button> <el-button link type="danger" @click="download(scope.row)">导出</el-button> </template> </el-table-column> - <el-table-column label="操作" align="center" class-name="small-padding fixed-width" > + <el-table-column label="操作" align="center" width="160"> <template #default="scope"> <el-button link type="primary" @click="openDialog('edit',scope.row)">编辑</el-button> + <el-button link type="primary" @click="openDialog('add',scope.row)">新增</el-button> <el-button link type="danger" @click="handleDelete(scope.row)">删除</el-button> </template> </el-table-column> </el-table> - <pagination - v-show="total > 0" - :total="total" - v-model:page="queryParams.pageNum" - v-model:limit="queryParams.pageSize" - @pagination="getList" - /> +<!-- <pagination--> +<!-- v-show="total > 0"--> +<!-- :total="total"--> +<!-- v-model:page="queryParams.pageNum"--> +<!-- v-model:limit="queryParams.pageSize"--> +<!-- @pagination="getList"--> +<!-- />--> <depart-dialog ref="dialogRef" @getList=getList></depart-dialog> <duty-dialog ref="dutyDialogRef" @getList=getList></duty-dialog> </div> @@ -66,7 +69,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"; @@ -78,25 +88,12 @@ const dutyDialogRef = ref() const data = reactive({ queryParams: { - pageNum: 1, - pageSize: 10, companyId: null }, total: 0, dataList: [], companyList: [], - isAdmin: false, - firstFive: [ - {clauseNum: '5.3',content: '组织的岗位、职责和权限'}, - {clauseNum: '4.1',content: '理解组织及其环境'}, - {clauseNum: '4.2',content: '理解相关方的需求和期望'}, - {clauseNum: '6.1',content: '应对风险和机遇的措施'}, - {clauseNum: '6.2',content: '质量目标及其实现的策划'} - ], - lastTwo: [ - {clauseNum: '9.1',content: '监视、测量、分析和评价'}, - {clauseNum: '10',content: '改进'} - ] + isAdmin: false }); const { queryParams, total, dataList, companyList, isAdmin } = toRefs(data); const userInfo = ref() @@ -119,8 +116,9 @@ loading.value = true const res = await getDepart(data.queryParams) if(res.code == 200){ - data.dataList = res.data || [] - data.total = res.data.total + data.dataList = proxy.handleTree(res.data, "deptId") + console.log(data.dataList,'list') + // data.total = res.data.total }else{ ElMessage.warning(res.message) } @@ -128,6 +126,9 @@ } const initDistribute = async ()=>{ + if(!data.queryParams.companyId){ + ElMessage.warning('请先选择要生成的企业') + } ElMessageBox.confirm( '重新生成将重置原有分配信息,是否继续?', '提示', @@ -215,29 +216,16 @@ if (res.code == 200) { if(res.data){ tableData = res.data - if(res.data.sysDeptResponsibilitys && Array.isArray(res.data.sysDeptResponsibilitys) && res.data.sysDeptResponsibilitys.find(i=>i.clauseNum == '5.3')){ - tableData.tableData = sortResponsibilities(res.data.sysDeptResponsibilitys.map(i=>{ - return { - ...i, - leader: i.leader || '', - evidenceMaterials: i.evidenceMaterials || '', - managementDocuments: i.managementDocuments || '', - technicalDocuments: i.technicalDocuments || '', - existingRecords: i.existingRecords || '', - } - })) - }else{ - 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 || '', - } - }) - } + tableData.tableData = res.data.sysDeptResponsibilitys.map(i=>{ + return { + ...i, + leader: i.leader || '', + evidenceMaterials: i.evidenceMaterials || '', + managementDocuments: i.managementDocuments || '', + technicalDocuments: i.technicalDocuments || '', + existingRecords: i.existingRecords || '', + } + }) return tableData }else{ ElMessage.warning('暂无部门信息') @@ -246,7 +234,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