祖安之光
2025-07-10 13c0b3f07e75d63ffb518ee8f3af81b3e8a1caa3
src/views/build/conpanyFunctionConsult/orgStructure/departManage/index.vue
@@ -23,43 +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">
        <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">
    <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">
              {{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>
@@ -87,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()
@@ -126,10 +114,11 @@
const getList = async () => {
  loading.value = true
  const res = await getDepartByPage(data.queryParams)
  const res = await getDepart(data.queryParams)
  if(res.code == 200){
    data.dataList = res.data.list || []
    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)
  }
@@ -227,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('暂无部门信息')