|
|
@@ -248,7 +248,179 @@
|
|
|
width="900px"
|
|
|
destroy-on-close
|
|
|
>
|
|
|
- <BasicForm
|
|
|
+ <el-form ref="sandHiddenDangerFormRefDept" label-width="150px" :model="sandHiddenDangerFormDataDept" :rules="sandHiddenDangerFormRulesDept">
|
|
|
+ <el-form-item prop="typeId" label="隐患问题类别:" style="width: 70%;">
|
|
|
+ <el-select
|
|
|
+ v-model="sandHiddenDangerFormDataDept.typeId"
|
|
|
+ placeholder="请选择隐患问题类别"
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in dangerTypeList"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.categoryName"
|
|
|
+ :value="item.id"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="隐患问题:" prop="dangerProblem">
|
|
|
+ <el-input
|
|
|
+ v-model="sandHiddenDangerFormDataDept.dangerProblem"
|
|
|
+ placeholder="请输入隐患问题描述"
|
|
|
+ style="width: 450px"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="问题主要原因:" prop="reasonId">
|
|
|
+ <el-select
|
|
|
+ v-model="sandHiddenDangerFormDataDept.reasonId"
|
|
|
+ placeholder="请选择问题主要原因"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ style="width: 450px"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="option in REASON_OPTIONS"
|
|
|
+ :key="option.value"
|
|
|
+ :label="option.label"
|
|
|
+ :value="option.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="任务来源:" prop="taskSource">
|
|
|
+ <el-input
|
|
|
+ v-model="sandHiddenDangerFormDataDept.taskSource"
|
|
|
+ placeholder="如:上级检查、院内自查"
|
|
|
+ style="width: 450px"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="整改要求:" prop="rectificationRequirement">
|
|
|
+ <el-input
|
|
|
+ v-model="sandHiddenDangerFormDataDept.rectificationRequirement"
|
|
|
+ placeholder="请输入整改要求"
|
|
|
+ style="width: 450px"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item prop="rectificationDepartmentIds" label="整改责任部门:">
|
|
|
+ <el-cascader
|
|
|
+ ref="cascaderDeptRef"
|
|
|
+ v-model="sandHiddenDangerFormDataDept.rectificationDepartmentIds"
|
|
|
+ :options="issueDeptTree"
|
|
|
+ :props="cascaderDeptProp"
|
|
|
+ :show-all-levels="false"
|
|
|
+ placeholder="请选择整改责任部门"
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ style="width: 450px"
|
|
|
+ @change="onIssueDeptChange"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item prop="rectificationResponsibleIds" label="整改负责人">
|
|
|
+ <el-select
|
|
|
+ v-model="sandHiddenDangerFormDataDept.rectificationResponsibleIds"
|
|
|
+ placeholder="选择整改负责人"
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ style="width: 450px"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="user in issueUserList"
|
|
|
+ :key="user.id"
|
|
|
+ :label="user.realname ?? user.username"
|
|
|
+ :value="user.id"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="整改日期:" prop="rectificationDeadline">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="sandHiddenDangerFormDataDept.rectificationDeadline"
|
|
|
+ type="date"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ placeholder="请选择整改日期"
|
|
|
+ style="width: 450px"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item prop="reviewDepartmentId" label="复查人员所属部门:">
|
|
|
+ <el-cascader
|
|
|
+ v-model="sandHiddenDangerFormDataDept.reviewDepartmentId"
|
|
|
+ :options="deptTree"
|
|
|
+ :props="cascaderDeptProp"
|
|
|
+ :show-all-levels="false"
|
|
|
+ placeholder="请选择复查人员所属部门"
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ style="width: 450px"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="复查人员:" prop="reviewPersonId">
|
|
|
+ <el-select
|
|
|
+ v-model="sandHiddenDangerFormDataDept.reviewPersonId"
|
|
|
+ placeholder="请选择复查人员"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ style="width: 450px"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="u in reviewUserListDept"
|
|
|
+ :key="u.id"
|
|
|
+ :label="u.realname || u.username"
|
|
|
+ :value="u.id"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="举一反三是否推送:" prop="isDrawLessonsPush">
|
|
|
+ <el-radio-group v-model="sandHiddenDangerFormDataDept.isDrawLessonsPush" >
|
|
|
+ <el-radio :value="0">否</el-radio>
|
|
|
+ <el-radio :value="1">是</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label-width="150px" v-if="sandHiddenDangerFormDataDept.isDrawLessonsPush === 1">
|
|
|
+ <el-input placeholder="如:上级检查、院内自查" style="width: 450px" v-model="sandHiddenDangerFormDataDept.drawLessonsContent" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="drawLessonsDepartmentIds" v-if="sandHiddenDangerFormDataDept.isDrawLessonsPush === 1" label="举一反三责任部门:">
|
|
|
+ <el-select
|
|
|
+ v-model="drawLessonsDeptIdsArrayDept"
|
|
|
+ placeholder="请选择举一反三责任部门,可多选"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ multiple
|
|
|
+ collapse-tags
|
|
|
+ collapse-tags-tooltip
|
|
|
+ style="width: 450px"
|
|
|
+ @change="() => { sandHiddenDangerFormDataDept.drawLessonsDepartmentIds = drawLessonsDeptIdsArrayDept.join(','); }"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="d in deptOptions"
|
|
|
+ :key="d.id"
|
|
|
+ :label="d.deptName"
|
|
|
+ :value="d.id"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item prop="drawLessonsDeadline" label="举一反三时限:" v-if="sandHiddenDangerFormDataDept.isDrawLessonsPush === 1">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="sandHiddenDangerFormDataDept.drawLessonsDeadline"
|
|
|
+ type="date"
|
|
|
+ style="width: 450px"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ placeholder="请选择举一反三截止日期(选填)"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <!-- <BasicForm
|
|
|
ref="sandHiddenDangerFormRefDept"
|
|
|
:formData="sandHiddenDangerFormDataDept"
|
|
|
:formRules="sandHiddenDangerFormRulesDept"
|
|
|
@@ -275,6 +447,7 @@
|
|
|
<template #rectificationDepartmentIds>
|
|
|
<el-form-item prop="rectificationDepartmentIds" style="width: 100%;">
|
|
|
<el-cascader
|
|
|
+ ref="cascaderDeptRef"
|
|
|
v-model="sandHiddenDangerFormDataDept.rectificationDepartmentIds"
|
|
|
:options="issueDeptTree"
|
|
|
:props="cascaderDeptProp"
|
|
|
@@ -338,28 +511,36 @@
|
|
|
<el-radio :value="1">是</el-radio>
|
|
|
</el-radio-group>
|
|
|
</template>
|
|
|
- <template #drawLessonsDepartmentIds>
|
|
|
- <el-select
|
|
|
- v-model="drawLessonsDeptIdsArrayDept"
|
|
|
- placeholder="请选择举一反三责任部门,可多选"
|
|
|
- clearable
|
|
|
- filterable
|
|
|
- multiple
|
|
|
- collapse-tags
|
|
|
- collapse-tags-tooltip
|
|
|
- style="width: 100%"
|
|
|
- @change="() => { sandHiddenDangerFormDataDept.drawLessonsDepartmentIds = drawLessonsDeptIdsArrayDept.join(','); }"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="d in deptOptions"
|
|
|
- :key="d.id"
|
|
|
- :label="d.deptName"
|
|
|
- :value="d.id"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
+ <template #drawLessonsContent v-if="sandHiddenDangerFormDataDept.isDrawLessonsPush === 1">
|
|
|
+ <el-form-item label-width="136.5px" style="width:100%">
|
|
|
+ <el-input placeholder="如:上级检查、院内自查" v-model="sandHiddenDangerFormDataDept.drawLessonsContent" />
|
|
|
+ </el-form-item>
|
|
|
</template>
|
|
|
- <template #drawLessonsDeadline>
|
|
|
- <el-form-item prop="drawLessonsDeadline" style="width: 100%;">
|
|
|
+ <template #drawLessonsDepartmentId v-if="sandHiddenDangerFormDataDept.isDrawLessonsPush === 1">
|
|
|
+ <el-form-item prop="drawLessonsDepartmentIds" style="width: 100%" label="举一反三责任部门:">
|
|
|
+ <el-select
|
|
|
+ v-model="drawLessonsDeptIdsArrayDept"
|
|
|
+ placeholder="请选择举一反三责任部门,可多选"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ multiple
|
|
|
+ collapse-tags
|
|
|
+ collapse-tags-tooltip
|
|
|
+ style="width: 100%"
|
|
|
+ @change="() => { sandHiddenDangerFormDataDept.drawLessonsDepartmentIds = drawLessonsDeptIdsArrayDept.join(','); }"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="d in deptOptions"
|
|
|
+ :key="d.id"
|
|
|
+ :label="d.deptName"
|
|
|
+ :value="d.id"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ </template>
|
|
|
+ <template #drawLessonsDeadline v-if="sandHiddenDangerFormDataDept.isDrawLessonsPush === 1">
|
|
|
+ <el-form-item prop="drawLessonsDeadline" label="举一反三时限:" style="width: 100%;">
|
|
|
<el-date-picker
|
|
|
v-model="sandHiddenDangerFormDataDept.drawLessonsDeadline"
|
|
|
type="date"
|
|
|
@@ -368,7 +549,7 @@
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
- </BasicForm>
|
|
|
+ </BasicForm> -->
|
|
|
<template #footer>
|
|
|
<el-button @click="showSandConfirmDialogDept = false">取消</el-button>
|
|
|
<el-button type="primary" :loading="sandConfirmLoadingDept" @click="confirmSandToHiddenDangerDept">
|
|
|
@@ -390,7 +571,7 @@
|
|
|
import { downloadFile } from '@/views/disaster/utils';
|
|
|
import useTableConfig from '@/hooks/useTableConfigHook';
|
|
|
import type { TableColumnProps } from '@/types/basic-table';
|
|
|
- import { AREA_CHECK_PLAN_STATUS_LABEL } from '../../areaCheckPlanManagement/configs/status';
|
|
|
+ import { AREA_CHECK_PLAN_STATUS_LABEL} from '../../areaCheckPlanManagement/configs/status';
|
|
|
import {
|
|
|
queryAreaCheckPlanManageDeptDetail,
|
|
|
queryAreaCheckPlanDetailDeptPage,
|
|
|
@@ -401,21 +582,21 @@
|
|
|
type UnqualifiedItemNumRecord,
|
|
|
type SandAreaCheckRecordToHiddenDangerReq,
|
|
|
} from '@/api/production-safety-system';
|
|
|
+ import { HIDDEN_DANGER_FORM_CONFIG, HIDDEN_DANGER_FORM_RULES, REASON_OPTIONS, HIDDEN_DANGER_FORM_DATA } from "../configs/form"
|
|
|
import BasicForm from '@/components/BasicForm.vue';
|
|
|
import { useFormConfigHook } from '@/hooks/useFormConfigHook';
|
|
|
import { getAllDepartments } from '@/api/auth/dept';
|
|
|
import type { DeptTree } from '@/types/dept/type';
|
|
|
- import {
|
|
|
- HIDDEN_DANGER_FORM_CONFIG,
|
|
|
- HIDDEN_DANGER_FORM_DATA,
|
|
|
- HIDDEN_DANGER_FORM_RULES,
|
|
|
- } from '@/views/production-safety/hiddenTroubleInvestigationAndGovernance/hiddenTroubleAccountManagement/configs/form';
|
|
|
+
|
|
|
import { queryAvailableUserList } from '@/api/production-safety/responsibility-implementation';
|
|
|
import { downloadByData } from '@/utils/file/download';
|
|
|
import {
|
|
|
queryDangerTypePage,
|
|
|
} from '@/api/production-safety';
|
|
|
|
|
|
+ import type { CascaderInstance } from 'element-plus'
|
|
|
+import { rules } from '../../../../../types/camera/constant';
|
|
|
+
|
|
|
const router = useRouter();
|
|
|
const route = useRoute();
|
|
|
|
|
|
@@ -743,7 +924,8 @@
|
|
|
|
|
|
const validateSandHiddenDangerFormDept = async () => {
|
|
|
if (!sandHiddenDangerFormRefDept.value) return false;
|
|
|
- return await sandHiddenDangerFormRefDept.value.validateForm();
|
|
|
+ console.log(sandHiddenDangerFormRefDept.value)
|
|
|
+ return await sandHiddenDangerFormRefDept.value.validate();
|
|
|
};
|
|
|
|
|
|
const confirmSandToHiddenDangerDept = async () => {
|
|
|
@@ -858,33 +1040,20 @@
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- const isDrawLessonsPushChange = () => {
|
|
|
- console.log(sandHiddenDangerFormDataDept.isDrawLessonsPush)
|
|
|
- console.log('HIDDEN_DANGER_FORM_CONFIG', HIDDEN_DANGER_FORM_CONFIG)
|
|
|
- let data = [
|
|
|
- {
|
|
|
- prop: 'drawLessonsContent',
|
|
|
- label: '举一反三内容:',
|
|
|
- component: 'ElInput',
|
|
|
- componentProps: {
|
|
|
- placeholder: '如:上级检查、院内自查',
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'drawLessonsDepartmentIds',
|
|
|
- label: '举一反三责任部门:',
|
|
|
- slot: 'drawLessonsDepartmentIds',
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'drawLessonsDeadline',
|
|
|
- label: '举一反三时限:',
|
|
|
- slot: 'drawLessonsDeadline',
|
|
|
- },
|
|
|
- ]
|
|
|
- };
|
|
|
-
|
|
|
- const onIssueDeptChange = () => {
|
|
|
+ const cascaderDeptRef = ref<CascaderInstance | null>(null)
|
|
|
+ const onIssueDeptChange = async () => {
|
|
|
+ const nodes = cascaderDeptRef.value?.getCheckedNodes()
|
|
|
+
|
|
|
+ if (!nodes || nodes.length === 0) return
|
|
|
+ const currentDept = nodes[0]
|
|
|
sandHiddenDangerFormDataDept.rectificationResponsibleIds = undefined;
|
|
|
+ try {
|
|
|
+ const userRes = await queryAvailableUserList({ pageNumber: 1, pageSize: 9999, queryParam: {deptName: currentDept.data.deptName||undefined} });
|
|
|
+ issueUserList.value = (userRes as any)?.records ?? [];
|
|
|
+ } catch (e:any) {
|
|
|
+ ElMessage.error(e?.message || e?.data || '加载部门或负责人列表失败');
|
|
|
+ issueUserList.value = [];
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
onMounted(() => {
|