| | |
| | | </el-table-column> |
| | | <el-table-column label="部门涉及条款" prop="userTypeName" align="center" width="150"> |
| | | <template #default="scope"> |
| | | <span> |
| | | {{scope.row.caluseVO1List?.map(i=>i.clauseNum).join('、')}} |
| | | </span> |
| | | {{sortVersionNumbers(scope.row.caluseVO1List?.map(i=>i.clauseNum)).join('、')}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="部门职责表" prop="userTypeName" align="center" width="150"> |
| | |
| | | <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"; |
| | |
| | | |
| | | 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) |
| | |
| | | } |
| | | |
| | | const initDistribute = async ()=>{ |
| | | if(!data.queryParams.companyId){ |
| | | ElMessage.warning('请先选择要生成的企业') |
| | | } |
| | | ElMessageBox.confirm( |
| | | '重新生成将重置原有分配信息,是否继续?', |
| | | '提示', |
| | |
| | | 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) |