From f2e0a0b50e5f628abdfe6c1e4cc4a9f682003ece Mon Sep 17 00:00:00 2001
From: 祖安之光 <11848914+light-of-zuan@user.noreply.gitee.com>
Date: 星期三, 15 十月 2025 13:30:09 +0800
Subject: [PATCH] 提交
---
src/views/saftyCheckMng/dailyCheck/index.vue | 180 ++++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 116 insertions(+), 64 deletions(-)
diff --git a/src/views/saftyCheckMng/dailyCheck/index.vue b/src/views/saftyCheckMng/dailyCheck/index.vue
index 18aa4b5..a72a2c2 100644
--- a/src/views/saftyCheckMng/dailyCheck/index.vue
+++ b/src/views/saftyCheckMng/dailyCheck/index.vue
@@ -11,24 +11,44 @@
>新增</el-button>
</el-form-item>
<el-form-item label="被检查部门/研究组:" >
- <el-select v-model="queryParams.researchGroup" placeholder="请选择" clearable>
+<!-- <el-select v-model="queryParams.researchGroup" 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.researchGroup" 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-input v-model.trim="queryParams.checkUser" placeholder="参加检查人员"></el-input>
+ </el-form-item>
+ <el-form-item label="检查类型" >
+ <el-select v-model="queryParams.checkType" placeholder="请选择" clearable>
<el-option
- v-for="item in deptList"
- :key="item.deptId"
- :label="item.deptName"
- :value="item.deptId">
+ v-for="item in checkTypeList"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
</el-option>
</el-select>
</el-form-item>
- <el-form-item label="参加检查人员:" >
- <el-select v-model="queryParams.searchCheckUserId" placeholder="请选择" clearable>
- <el-option
- v-for="item in userList"
- :key="item.userId"
- :label="item.userName"
- :value="item.userId">
- </el-option>
+ <el-form-item label="隐患" >
+ <el-select v-model="queryParams.haveMainHazard" placeholder="请选择" clearable>
+ <el-option :key="1" label="有" :value="1"></el-option>
+ <el-option :key="0" label="无" :value="0"></el-option>
</el-select>
+ </el-form-item>
+ <el-form-item label="检查日期" >
+ <el-date-picker
+ v-model="checkDate"
+ type="daterange"
+ value-format="YYYY-MM-DD"
+ range-separator="至"
+ start-placeholder="开始日期"
+ end-placeholder="结束日期"
+ />
</el-form-item>
<el-form-item >
<el-button type="primary" @click="getList">查询</el-button>
@@ -43,12 +63,12 @@
<el-table-column prop="checkDate" align="center" label="检查时间"/>
<el-table-column prop="checkPlace" align="center" label="检查地点"/>
<el-table-column prop="checkRoom" align="center" label="检查房间号"/>
- <el-table-column prop="enactmentDate" align="center" label="参加检查人员">
+ <el-table-column prop="checkUser" align="center" label="参加检查人员"/>
+ <el-table-column prop="researchGroupName" align="center" label="被检查部门/研究组">
<template #default="scope">
- {{scope.row.dailySafetyInspectionUsers.map(i=>i.checkUser).join('、')}}
+ {{ scope.row.dailySafetyInspectionDepts.filter(item=>item.deptName && item.deptName !== '').map(i=>i.deptName).join('、') }}
</template>
</el-table-column>
- <el-table-column prop="researchGroupName" align="center" label="被检查部门/研究组"/>
<el-table-column prop="checkContent" align="center" label="检查内容"/>
<el-table-column label="操作" align="center">
<template #default="scope">
@@ -89,11 +109,35 @@
pageNum: 1,
pageSize: 10,
researchGroup: null,
- searchCheckUserId: null
+ checkUser: '',
+ checkType: null,
+ haveMainHazard: null,
+ checkBeginDate: '',
+ checkEndDate: ''
},
+ originDeptList: [],
dataList: [],
deptList: [],
+ safetyDeptList: [],
userList: [],
+ checkTypeList: [
+ {
+ value: 1,
+ label: '综合检查'
+ },
+ {
+ value: 2,
+ label: '部门检查'
+ },
+ {
+ value: 3,
+ label: '实验室自查'
+ },
+ {
+ value: 4,
+ label: '专项检查'
+ }
+ ],
total: 0,
formConfig: {
formItems: [
@@ -107,17 +151,9 @@
},
{
label: '参加检查人员',
- prop: 'dailySafetyInspectionUsers',
- type: 'select',
- multiple: true,
- filterable: true,
- rules: [{ required: true, message: '请选择人员', trigger: 'change' }],
- options: () => {
- return state.userList.map(user => ({
- value: user.userId,
- label: user.userName
- }))
- }
+ prop: 'checkUser',
+ type: 'text',
+ rules: [{ required: true, message: '请输入人员', trigger: 'blur' }],
},
{
label: '检查地点',
@@ -133,15 +169,27 @@
},
{
label: '被检查部门/研究组',
- prop: 'researchGroup',
- type: 'select',
+ prop: 'dailySafetyInspectionDepts',
+ type: 'cascader',
+ showAllLevels: false,
+ props: {
+ value: 'deptId',
+ label: 'deptName',
+ children: 'children',
+ emitPath: false,
+ checkStrictly: true,
+ multiple: true
+ },
rules: [{ required: true, message: '请选择部门', trigger: 'blur' }],
- options: () => {
- return state.deptList.map(dept => ({
- value: dept.deptId,
- label: dept.deptName
- }))
- }
+ options: () => state.safetyDeptList
+ },
+ {
+ label: '检查类型',
+ prop: 'checkType',
+ type: 'select',
+ filterable: true,
+ rules: [{ required: true, message: '请选择检查类型', trigger: 'change' }],
+ options: () => state.checkTypeList
},
{
label: '检查内容',
@@ -154,6 +202,7 @@
label: '存在的主要隐患/问题',
prop: 'mainHazard',
type: 'textarea',
+ placeholder: '没有则填“无”',
autosize: { minRows: 3 },
rules: [{ required: true, message: '请输入存在的主要隐患/问题', trigger: 'blur' }]
},
@@ -161,6 +210,7 @@
label: '整改措施',
prop: 'rectificationMeasures',
type: 'textarea',
+ placeholder: '没有则填“无”',
autosize: { minRows: 3 },
rules: [{ required: true, message: '请输入整改措施', trigger: 'blur' }]
},
@@ -168,25 +218,22 @@
label: '复查结果',
prop: 'examinationResults',
type: 'textarea',
- autosize: { minRows: 3 }
+ autosize: { minRows: 3 },
+ rules: [{ required: true, message: '请输入复查结果', trigger: 'blur' }]
},
{
label: '复查人员',
- prop: 'reCheckUserId',
- type: 'select',
- options: () => {
- return state.userList.map(user => ({
- value: user.userId,
- label: user.userName
- }))
- }
+ prop: 'reCheckUser',
+ type: 'text',
+ rules: [{ required: true, message: '请输入复查人员', trigger: 'blur' }]
},
{
label: '复查时间',
prop: 'reCheckDate',
type: 'date',
dateType: 'date',
- valueFormat: 'YYYY-MM-DD'
+ valueFormat: 'YYYY-MM-DD',
+ rules: [{ required: true, message: '请选择复查时间', trigger: 'blur' }]
},
{
label: '备注',
@@ -197,10 +244,11 @@
]
},
dataLoader: {},
- api: {}
+ api: {},
+ checkDate: []
});
-const { queryParams, total, dataList,deptList, userList, formConfig, dataLoader, api } = toRefs(state);
+const { queryParams, total, dataList,deptList, userList, formConfig, dataLoader, api, checkTypeList, checkDate } = toRefs(state);
onMounted(async ()=>{
await getList()
await getDeptList()
@@ -212,20 +260,23 @@
})
function getDeptList() {
- listDept({}).then(response => {
- state.deptList = response.data
- });
+ listDept().then(response => {
+ state.originDeptList = response.data
+ state.deptList = proxy.handleTree(response.data, "deptId")
+ state.safetyDeptList = proxy.handleTree(response.data.filter(item=>item.safety == '1'), "deptId")
+ })
}
function getUserList() {
- listUser().then(res => {
+ listUser({pageNum: 1,pageSize: 999}).then(res => {
state.userList = res.rows;
- state.total = res.total;
})
};
const getList = async () => {
loading.value = true
+ state.queryParams.checkBeginDate = state.checkDate[0] || ''
+ state.queryParams.checkEndDate = state.checkDate[1] || ''
const res = await getDailySafetyInspectList(state.queryParams)
if(res.code == 200){
state.dataList = res.rows || []
@@ -238,7 +289,6 @@
const downloadFile = async (val)=>{
let tableData = val
- tableData.checkNames = val.dailySafetyInspectionUsers.map(item=>item.checkUser).join('、')
try {
generateWordDocument('/dailyCheckSheet.docx', tableData, '日常安全检查记录表.docx');
} catch (error){
@@ -250,10 +300,7 @@
}
const openDialog = (type, value) => {
- let initalData = JSON.parse(JSON.stringify(value))
- if(type == 'edit' || type == 'view'){
- initalData.dailySafetyInspectionUsers = value.dailySafetyInspectionUsers.map(i=>i.checkUserId)
- }
+ const initalData = JSON.parse(JSON.stringify(value))
dialogRef.value.openDialog(type, initalData)
}
@@ -263,8 +310,13 @@
pageNum: 1,
pageSize: 10,
researchGroup: null,
- searchCheckUserId: null
+ checkUser: '',
+ checkType: null,
+ haveMainHazard: null,
+ checkBeginDate: '',
+ checkEndDate: ''
}
+ state.checkDate = []
await getList()
}
const handleDelete = (val) => {
@@ -289,14 +341,14 @@
const handleSubmit = async (data, type) => {
const params = JSON.parse(JSON.stringify(data))
- params.dailySafetyInspectionUsers = params.dailySafetyInspectionUsers.map(item=>{
+ console.log(state.originDeptList,'ori')
+ params.dailySafetyInspectionDepts = params.dailySafetyInspectionDepts.map(i=>{
return {
- checkUserId: item,
- checkUser: state.userList.find(i=>i.userId == item)?.userName,
- dailySafetyInspectionId: params.id
+ deptId: i,
+ deptName: state.originDeptList.find(item=>item.deptId == i)?.deptName
}
})
- params.reCheckUser = state.userList.find(i=>i.userId == params.reCheckUserId)?.userName
+ // params.reCheckUser = state.userList.find(i=>i.userId == params.reCheckUserId)?.nickName
// 调用API保存数据
if (type === '新增') {
delete params.id
--
Gitblit v1.9.2