深海科学与工程研究所安全巡检系统
祖安之光
2025-10-15 6390fa18f5c2df1158a0d664786797b0e8b2fbf9
src/views/hazardMng/hazardRectify/index.vue
@@ -34,21 +34,22 @@
          </el-select>
        </el-form-item>
        <el-form-item label="整改部门/研究组:" >
          <el-select v-model="queryParams.reformDeptId" placeholder="请选择" clearable>
            <el-option
                v-for="item in deptList"
                :key="item.deptId"
                :label="item.deptName"
                :value="item.deptId">
            </el-option>
          </el-select>
<!--          <el-select v-model="queryParams.reformDeptId" placeholder="请选择" clearable>-->
<!--            <el-option-->
<!--                v-for="item in deptList"-->
<!--                :key="item.deptId"-->
<!--                :label="item.deptName"-->
<!--                :value="item.deptId">-->
<!--            </el-option>-->
<!--          </el-select>-->
          <el-cascader v-model="queryParams.reformDeptId" placeholder="请选择" :options="deptList" :show-all-levels="false" :props="{value: 'deptId',label: 'deptName',children: 'children',emitPath: false,checkStrictly: true}"/>
        </el-form-item>
        <el-form-item label="整改人:" >
          <el-select v-model="queryParams.reformUserId" placeholder="请选择" clearable>
            <el-option
                v-for="item in userList"
                :key="item.userId"
                :label="item.userName"
                :label="item.nickName"
                :value="item.userId">
            </el-option>
          </el-select>
@@ -84,8 +85,8 @@
      <el-table-column prop="hazardRoom" align="center" label="房间号"/>
      <el-table-column prop="reformDeptName" align="center" label="整改部门/研究组"/>
      <el-table-column prop="reformUserName" align="center" label="整改人"/>
      <el-table-column prop="updateBy" align="center" label="隐患等记人"/>
      <el-table-column prop="updateTime" align="center" label="隐患等记时间"/>
      <el-table-column prop="createBy" align="center" label="隐患登记人"/>
      <el-table-column prop="createTime" align="center" label="隐患登记时间"/>
      <el-table-column prop="hazardLevel" align="center" label="整改状态">
        <template #default="scope">
          <el-tag v-if="scope.row.state == 1" type="primary">已整改</el-tag>
@@ -119,7 +120,7 @@
import useUserStore from "@/store/modules/user";
import {generateWordDocument} from "@/utils/exportWord";
import {listDept} from "@/api/system/dept";
import {listUser} from "@/api/system/user";
import {listUser, listUserByRoleKey} from "@/api/system/user";
import {delDailySafetyInspect, getDailySafetyInspectList, saveDailySafetyInspect} from "@/api/saftyCheck";
import {delHazard, getHazardList, saveHazard, updateHazard} from "@/api/hazardMng";
const { proxy } = getCurrentInstance();
@@ -134,7 +135,8 @@
    hazardLevel: null,
    reformDeptId: null,
    reformUserId: null,
    state: null
    state: null,
    hazardsType: 2
  },
  dataList: [],
  deptList: [],
@@ -142,31 +144,19 @@
  sourceList: [
    {
      id: 1,
      name: '日常排查'
      name: '综合检查'
    },
    {
      id: 2,
      name: '综合性排查'
      name: '部门检查'
    },
    {
      id: 3,
      name: '专业性排查'
      name: '实验室自查'
    },
    {
      id: 4,
      name: '季节性排查'
    },
    {
      id: 5,
      name: '重点时段及节假日前排查'
    },
    {
      id: 6,
      name: '外聘专家诊断式排查'
    },
    {
      id: 7,
      name: '其他'
      name: '专项检查'
    }
  ],
  levelList: [
@@ -244,16 +234,18 @@
      {
        label: '整改部门/研究组',
        prop: 'reformDeptId',
        type: 'select',
        disabled: true,
        rules: [{ required: true, message: '请选择部门', trigger: 'blur' }],
        options: () => {
          return state.deptList.map(dept => ({
            value: dept.deptId,
            label: dept.deptName
          }))
        type: 'cascader',
        showAllLevels: false,
        props: {
          value: 'deptId',
          label: 'deptName',
          children: 'children',
          emitPath: false,
          checkStrictly: true
        },
        changeEvent: 'getUserList'
        rules: [{ required: true, message: '请选择部门', trigger: 'blur' }],
        options: () => state.deptList,
        changeEvent: 'getUserListByRole'
      },
      {
        label: '整改人',
@@ -264,7 +256,7 @@
        options: () => {
          return state.userList.map(user => ({
            value: user.userId,
            label: user.userName
            label: user.nickName
          }))
        }
      },
@@ -320,9 +312,9 @@
    ]
  },
  dataLoader: {
    async getUserList(reformDeptId) {
      const res = await listUser({deptId: reformDeptId})
      return res.code === 200 ? res.rows : []
    async getUserListByRole(reformDeptId) {
      const res = await listUserByRoleKey({deptId: reformDeptId,roleKey: 'safety_officer'})
      return res.code === 200 ? res.data : []
    }
  },
  api: {},
@@ -348,14 +340,13 @@
function getDeptList() {
  listDept({}).then(response => {
    state.deptList = response.data
    state.deptList = proxy.handleTree(response.data, "deptId")
  });
}
function getUserList() {
  listUser().then(res => {
  listUser({pageNum: 1,pageSize: 999}).then(res => {
    state.userList = res.rows;
    state.total = res.total;
  })
};
@@ -397,7 +388,8 @@
    hazardLevel: null,
    reformDeptId: null,
    reformUserId: null,
    state: null
    state: null,
    hazardsType: 2
  }
  await getList()
}
@@ -405,7 +397,6 @@
const handleSubmit = async (data, type) => {
  const {id,reasonAnalysis,rectificationMeasures,reformPeriod,reformPics} = JSON.parse(JSON.stringify(data))
  const params = {id,reasonAnalysis,rectificationMeasures,reformPeriod,reformPics}
  console.log(params,'para')
  const res = await updateHazard(params)
  if(res.code == 200){
    ElMessage.success(res.msg)