对接安全审查问题录入

This commit is contained in:
wangchengming 2025-07-16 18:41:35 +08:00
parent 1272a80453
commit dde0d4c5c6
4 changed files with 452 additions and 237 deletions

42
src/api/safetyReview.js Normal file
View File

@ -0,0 +1,42 @@
import request from '@/utils/request'
// 获取安全审查分页列表
export function busSafetyReviewPagePageList(query) {
return request({
url: '/admin/busSafetyReview/getBusSafetyReviewPage',
method: 'post',
data: query
})
}
// 添加安全审查
export function addBusSafetyReview(query) {
return request({
url: '/admin/busSafetyReview/addBusSafetyReview',
method: 'post',
data: query
})
}
// 修改安全审查
export function updateBusSafetyReview(query) {
return request({
url: '/admin/busSafetyReview/updateBusSafetyReview',
method: 'post',
data: query
})
}
// 获取安全审查详情
export function getBusSafetyReview(reviewId) {
return request({
url: '/admin/busSafetyReview/getBusSafetyReview/' + reviewId,
method: 'post'
})
}
// 删除安全审查
export function deleteBusSafetyReview(reviewId) {
return request({
url: '/admin/busSafetyReview/deleteBusSafetyReview/' + reviewId,
method: 'post'
})
}

View File

@ -150,12 +150,16 @@ const filterDisabledDept = (deptList) => {
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageIndex = 1
queryParams.value.pageIndex = 1
getPPEToolPageList()
}
/** 重置按钮操作 */
const resetQuery = () => {
const resetQuery = () => {
queryParams.value.pageIndex = 1
queryParams.value.deptId = undefined
queryParams.value.dependencyId = undefined
queryParams.value.toolName = undefined
handleQuery()
}
// ppe

View File

@ -5,21 +5,21 @@
<el-form :model="queryParams" ref="queryRef" :inline="true">
<el-row class="myRow">
<el-col :span="20">
<el-form-item label="部门" prop="deptId">
<el-select v-model="queryParams.deptId" placeholder="请选择" clearable style="width: 160px">
<el-option label="Zone one" value="shanghai" />
<el-option label="Zone two" value="beijing" />
<el-form-item label="部门">
<el-tree-select v-model="queryParams.deptId" :data="enabledDeptOptions" clearable
:props="{ value: 'id', label: 'label', children: 'children' }" value-key="id"
placeholder="请选择部门" check-strictly style="width: 200px" />
</el-form-item>
<el-form-item label="属地">
<el-select v-model="queryParams.dependencyId" placeholder="请选择属地" clearable
style="width: 200px">
<el-option v-for="item in busDependencyData" :key="item.id" :label="item.dependencyName"
:value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="属地" prop="deptId">
<el-select v-model="queryParams.deptId" placeholder="请选择" clearable style="width: 160px">
<el-option label="Zone one" value="shanghai" />
<el-option label="Zone two" value="beijing" />
</el-select>
</el-form-item>
<el-form-item label="年度" prop="userName">
<el-date-picker v-model="queryParams.year" type="year" placeholder="请选择"
style="width: 140px" />
<el-form-item label="年度">
<el-date-picker v-model="queryParams.year" type="year" format="YYYY" value-format="YYYY"
placeholder="请选择" style="width: 140px" />
</el-form-item>
</el-col>
<el-col :span="4" style="text-align: right;">
@ -35,186 +35,148 @@
</el-button>
</div>
<div class="borderLine"></div>
<el-table :data="tableData" height="calc(100% - 166px)" style="width: 100%">
<el-table v-loading="loading" :data="tableData" height="calc(100% - 166px)" style="width: 100%">
<el-table-column label="序号" width="60">
<template #default="scope">
{{ scope.$index + 1 }}
</template>
</el-table-column>
<el-table-column prop="year" label="年度" width="100" />
<el-table-column prop="localityName" label="属地" min-width="130" />
<el-table-column prop="departmentName" label="部门" min-width="150" />
<el-table-column prop="jobNumber" label="工号" min-width="130" />
<el-table-column prop="name" label="ESC" min-width="100" />
<el-table-column prop="curQualification" label="开口项数量" min-width="130" />
<el-table-column prop="startTime" label="审查时间" min-width="130">
<el-table-column prop="dependencyName" label="属地" min-width="230" />
<el-table-column prop="deptName" label="部门" min-width="150" />
<el-table-column prop="workNo" label="ESC工号" min-width="130" />
<el-table-column prop="escUserName" label="ESC" min-width="100" />
<el-table-column prop="openItemCount" label="开口项数量" min-width="130" />
<el-table-column prop="reviewDate" label="审查时间" min-width="130">
<template #default="scope">
<span v-if="scope.row.startTime && scope.row.certificate"> {{ scope.row.startTime }}</span>
<span v-if="scope.row.reviewDate"> {{ scope.row.reviewDate }}</span>
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column prop="expireTime" label="下次审查时间" min-width="150">
<el-table-column prop="nextReviewDate" label="下次审查时间" min-width="150">
<template #default="scope">
<span v-if="scope.row.expireTime && scope.row.certificate"> {{ scope.row.expireTime }}</span>
<span v-if="scope.row.nextReviewDate"> {{ scope.row.nextReviewDate }}</span>
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" width="130">
<template #default="scope">
<el-button type="primary" text class="replayTextBtn">编辑</el-button>
<el-button type="primary" text class="replayTextBtn" @click="handleEdit(scope.row)">编辑</el-button>
<el-divider direction="vertical" class="verticalLine" />
<el-button type="primary" text class="deleteTextBtn">删除</el-button>
<el-button type="primary" text class="deleteTextBtn" @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.pageIndex"
v-model:limit="queryParams.pageSize" @pagination="getSafeTyReviewPageList" />
</div>
</div>
</template>
<script setup>
import { ref } from 'vue'
import { onMounted, ref } from 'vue'
import { useRouter } from 'vue-router'
import Breadcrumb from '@/components/Breadcrumb'
import addIcon from '@/assets/images/addIcon.png'
import { deptTreeSelect } from "@/api/system/user"
import { getBusDependencyPage } from "@/api/system/dependency"
import { busSafetyReviewPagePageList, deleteBusSafetyReview } from "@/api/safetyReview"
import moment from 'moment'
const router = useRouter()
const total = ref(16)
const queryParams = ref({
pageNum: 1,
pageIndex: 1,
pageSize: 10,
userName: undefined,
deptId: undefined,
qualification: undefined
dependencyId: undefined,
year: undefined
})
const tableData = [
{
localityName: 'XXX属地',
departmentName: 'XXX部门',
officeName: 'XXX科室',
jobNumber: '3523213',
name: '赵丽娟',
curQualification: '-',
objectiveQualification: 'SH',
status: 0
},
{
localityName: 'XXX属地',
departmentName: 'XXX部门',
officeName: 'XXX科室',
jobNumber: '3523213',
name: '赵丽娟',
curQualification: '-',
objectiveQualification: 'SH',
status: 1
},
{
localityName: 'XXX属地',
departmentName: 'XXX部门',
officeName: 'XXX科室',
jobNumber: '3523213',
name: '赵丽娟',
curQualification: '-',
objectiveQualification: 'SH',
status: 2
},
{
localityName: 'XXX属地',
departmentName: 'XXX部门',
officeName: 'XXX科室',
jobNumber: '3523213',
name: '赵丽娟',
curQualification: '-',
objectiveQualification: 'SH',
status: 0
},
{
localityName: 'XXX属地',
departmentName: 'XXX部门',
officeName: 'XXX科室',
jobNumber: '3523213',
name: '赵丽娟',
curQualification: '-',
objectiveQualification: 'SH',
status: 0
},
{
localityName: 'XXX属地',
departmentName: 'XXX部门',
officeName: 'XXX科室',
jobNumber: '3523213',
name: '赵丽娟',
curQualification: '-',
objectiveQualification: 'SH',
status: 0
},
{
localityName: 'XXX属地',
departmentName: 'XXX部门',
officeName: 'XXX科室',
jobNumber: '3523213',
name: '赵丽娟',
curQualification: '-',
objectiveQualification: 'SH',
status: 0
},
{
localityName: 'XXX属地',
departmentName: 'XXX部门',
officeName: 'XXX科室',
jobNumber: '3523213',
name: '赵丽娟',
curQualification: '-',
objectiveQualification: 'SH',
status: 0
},
{
localityName: 'XXX属地',
departmentName: 'XXX部门',
officeName: 'XXX科室',
jobNumber: '3523213',
name: '赵丽娟',
curQualification: '-',
objectiveQualification: 'SH',
status: 0
},
{
localityName: 'XXX属地',
departmentName: 'XXX部门',
officeName: 'XXX科室',
jobNumber: '3523213',
name: '赵丽娟',
curQualification: '-',
objectiveQualification: 'SH',
status: 0
},
]
const loading = ref(true)
const total = ref(0)
const tableData = ref([])
const { proxy } = getCurrentInstance()
//
onMounted(() => {
getDeptTree();
getBusDependencyData();
getSafeTyReviewPageList();
});
//
const busDependencyData = ref([])
//
const getBusDependencyData = () => {
getBusDependencyPage({
pageIndex: 1,
pageSize: 100,
}).then(response => {
if (response.code == 200) {
busDependencyData.value = response.data.list
}
})
}
//
const enabledDeptOptions = ref(undefined)
//
const getDeptTree = () => {
deptTreeSelect().then(res => {
enabledDeptOptions.value = filterDisabledDept(JSON.parse(JSON.stringify(res.data)))
})
}
/** 过滤禁用的部门 */
const filterDisabledDept = (deptList) => {
return deptList.filter(dept => {
if (dept.disabled) {
return false
}
if (dept.children && dept.children.length) {
dept.children = filterDisabledDept(dept.children)
}
return true
})
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNum = 1
getList()
queryParams.value.pageIndex = 1
getSafeTyReviewPageList()
}
/** 重置按钮操作 */
const resetQuery = () => {
dateRange.value = []
proxy.resetForm("queryRef")
queryParams.value.pageIndex = 1
queryParams.value.deptId = undefined
proxy.$refs.deptTreeRef.setCurrentKey(null)
queryParams.value.dependencyId = undefined
queryParams.value.year = undefined
handleQuery()
}
const getList = () => {
const getSafeTyReviewPageList = () => {
loading.value = true
busSafetyReviewPagePageList(queryParams.value).then(res => {
if (res.code == 200) {
tableData.value = res.data.list
total.value = res.data.total
}
loading.value = false
}).catch(() => {
loading.value = false
})
}
const handleDelete = (record) => {
const rowId = record.id
proxy.$modal.confirm('是否确认删除该项数据项?').then(function () {
return deleteBusSafetyReview(rowId)
}).then(() => {
getSafeTyReviewPageList();
proxy.$modal.msgSuccess("删除成功")
}).catch(() => { })
}
const handleOpenAddForm = () => {
router.push('/safetyReview/examinerTasksForm')
}
const handleView = () => {
router.push('/labelManage/adminApproval/approvalDetail')
}
const handleApproval = () => {
router.push('/labelManage/adminApproval/approvalDetail')
}
const handleEdit = (record) => {
router.push('/safetyReview/examinerTasksForm/' + record.id)
}
</script>
<style lang='scss'>
.app-main {

View File

@ -13,60 +13,61 @@
<el-card>
<template #header>
<div class="card-header">
<span>新增</span>
<span>{{ formTitle }}</span>
</div>
</template>
<el-form ref="ruleFormRef" :model="ruleForm" label-position="top" label-width="110px">
<el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" label-position="top" label-width="110px">
<div class="headerTitle">基本信息</div>
<div class="applyFormContainer">
<el-row class="myRow" :gutter="20">
<el-col :span="8">
<el-form-item label="年度" prop="userName">
<el-date-picker v-model="ruleForm.year" type="year" placeholder="请选择"
style="width: 100%;" />
<el-form-item label="年度" prop="year">
<el-date-picker v-model="ruleForm.year" type="year" format="YYYY"
value-format="YYYY" placeholder="请选择" style="width: 100%;" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="部门" prop="deptId">
<el-select v-model="ruleForm.deptId" placeholder="请选择" clearable>
<el-option label="Zone one" value="shanghai" />
<el-option label="Zone two" value="beijing" />
<el-tree-select v-model="ruleForm.deptId" :data="enabledDeptOptions" clearable
:props="{ value: 'id', label: 'label', children: 'children' }" value-key="id"
placeholder="请选择部门" check-strictly />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="属地" prop="dependencyId">
<el-select v-model="ruleForm.dependencyId" placeholder="请选择属地" clearable
@change="handleChoseDependency">
<el-option v-for="item in busDependencyData" :key="item.id"
:label="item.dependencyName" :value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="属地" prop="deptId">
<el-select v-model="ruleForm.deptId" placeholder="请选择" clearable>
<el-option label="Zone one" value="shanghai" />
<el-option label="Zone two" value="beijing" />
</el-select>
<el-form-item label="属地ESC">
<el-input v-model="escUserName" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="属地ESC" prop="deptId">
<el-input v-model="ruleForm.userName" disabled />
<el-form-item label="ESC工号">
<el-input v-model="escWorkNo" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="ESC工号" prop="deptId">
<el-input v-model="ruleForm.userName" disabled />
<el-form-item label="开口项数量" prop="openItemCount">
<el-input-number v-model="ruleForm.openItemCount" :min="0" style="width: 100%;" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开口项数量" prop="deptId">
<el-input-number v-model="ruleForm.count" :min="1" style="width: 100%;" />
<el-form-item label="审查时间" prop="reviewDate">
<el-date-picker v-model="ruleForm.reviewDate" type="date" format="YYYY-MM-DD"
value-format="YYYY-MM-DD" placeholder="请选择" style="width: 100%;"
@change="handleDateChange" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="审查时间" prop="deptId">
<el-date-picker v-model="ruleForm.startTime" type="date" placeholder="请选择"
style="width: 100%;" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="下次审查时间" prop="deptId">
<el-date-picker v-model="ruleForm.endTime" type="date" placeholder="请选择"
style="width: 100%;" disabled />
<el-form-item label="下次审查时间">
<el-date-picker v-model="ruleForm.nextReviewDate" type="date" format="YYYY-MM-DD"
value-format="YYYY-MM-DD" placeholder="请选择" style="width: 100%;" disabled />
</el-form-item>
</el-col>
</el-row>
@ -77,51 +78,84 @@
<div class="groupBtnPanel">
<el-button-group>
<el-button v-for="(item, index) in ToolOptions" :key="index"
:type="activeIndex === index ? 'primary' : 'default'" @click="activeIndex = index">
:type="activeIndex === index ? 'primary' : 'default'"
@click="handleChangeLeve(index, item)">
{{ item }}
</el-button>
</el-button-group>
</div>
<div class="applyFormContainer">
<div class="borderLine"></div>
<el-table :data="tableData" style="width: 100%; margin-bottom: 20px;">
<el-table :data="showTableData" style="width: 100%; margin-bottom: 20px;">
<el-table-column label="序号" width="60">
<template #default="scope">
{{ scope.$index + 1 }}
</template>
</el-table-column>
<el-table-column prop="name" label="问题描述" />
<el-table-column prop="certificate" label="等级" align="center" width="100">
<el-table-column prop="remark" label="问题描述" min-width="260">
<template #default="scope">
<el-text v-if="scope.row.expired == 0" type="danger" class="dangerText">主要偏差</el-text>
<el-text v-if="scope.row.expired == 1" type="danger" class="dangerText">一般偏差</el-text>
<el-text v-if="scope.row.expired == 2" type="success" class="successText">建议项</el-text>
<span v-show="!scope.row.editFlag">
{{ scope.row.remark }}
</span>
<el-input v-show="scope.row.editFlag" v-model="scope.row.remark" :rows="3"
type="textarea" />
</template>
</el-table-column>
<el-table-column prop="expired" label="整改负责人" width="120">
</el-table-column>
<el-table-column prop="startTime" label="计划完成时间" width="160">
<el-table-column prop="level" label="等级" align="center" width="150">
<template #default="scope">
<el-text v-if="scope.row.level == 3 && !scope.row.editFlag" type="danger"
class="dangerText">主要偏差</el-text>
<el-text v-if="scope.row.level == 2 && !scope.row.editFlag" type="danger"
class="infoinfoText">一般偏差</el-text>
<el-text v-if="scope.row.level == 1 && !scope.row.editFlag" type="success"
class="successText">建议项</el-text>
<el-select v-show="scope.row.editFlag" v-model="scope.row.level" placeholder="请选择"
clearable style="width: 120px">
<el-option v-for="item in leveProList" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</template>
</el-table-column>
<el-table-column prop="chargeUserName" label="整改负责人" width="120" />
<el-table-column prop="planDoneTime" label="计划完成时间" width="160">
<template #default="scope">
<span v-if="!scope.row.editFlag">
{{ scope.row.planDoneTime }}
</span>
<el-date-picker v-if="scope.row.editFlag" v-model="scope.row.planDoneTime" type="date"
format="YYYY-MM-DD" value-format="YYYY-MM-DD" placeholder="请选择"
style="width: 100%;" />
</template>
</el-table-column>
<el-table-column prop="expireTime" label="状态" width="100">
<template #default="scope">
<el-text v-if="scope.row.state == 0" type="info" class="nomarlText">未整改</el-text>
<el-text v-if="scope.row.state == 1" type="info" class="nomarlText">待审核</el-text>
<el-text v-if="scope.row.state == 2" type="success" class="successText">已整改</el-text>
<el-text v-if="scope.row.state == 3" type="danger" class="dangerText">驳回</el-text>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="150" class-name="small-padding fixed-width">
<template #default="scope">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:config:edit']">编辑</el-button>
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:config:remove']">删除</el-button>
<div v-show="!scope.row.editFlag">
<el-button link type="primary" @click="handleEditClick(scope.row, scope.$index)"
v-hasPermi="['system:config:edit']">编辑</el-button>
<el-divider direction="vertical"></el-divider>
<el-button link type="primary" @click="handleRemove(scope.$index)"
v-hasPermi="['system:config:remove']">删除</el-button>
</div>
<div v-show="scope.row.editFlag">
<el-button link type="primary" @click="handleSaveClick(scope.row, scope.$index)"
v-hasPermi="['system:config:edit']">保存</el-button>
<el-divider direction="vertical"></el-divider>
<el-button link type="primary" @click="handleCancelClick(scope.row, scope.$index)"
v-hasPermi="['system:config:remove']">取消</el-button>
</div>
</template>
</el-table-column>
</el-table>
<el-button class="problemAddBtn">
<img :src="grayAddIcon" class="custom-icon" style="margin-right: 10px;"/>
<el-button class="problemAddBtn" :disabled="ruleForm.openItemCount == 0" @click="handleAddProblem">
<img :src="grayAddIcon" class="custom-icon" style="margin-right: 10px;" />
新增
</el-button>
</div>
@ -140,44 +174,201 @@
import { onMounted, reactive } from 'vue'
import { useRouter } from 'vue-router'
import grayAddIcon from '@/assets/images/grayAddIcon.png'
import { deptTreeSelect } from "@/api/system/user"
import { getBusDependencyPage } from "@/api/system/dependency"
import { addBusSafetyReview, updateBusSafetyReview, getBusSafetyReview } from "@/api/safetyReview"
import moment from 'moment'
const router = useRouter()
const route = useRoute()
const formTitle = ref('新增')
const escUserId = ref(null)
const escUserName = ref(null)
const escWorkNo = ref(null)
//
const buildingNo = ref(null)
//
const factoryArea = ref(null)
//
const reviewProblemList = ref([])
//
const showTableData = ref([])
//
const cachShowTableData = ref([])
//
const ToolOptions = ref(['全部', '主要偏差', '一般偏差', '建议项'])
const leveProList = ref([
{ value: 3, label: '主要偏差' },
{ value: 2, label: '一般偏差' },
{ value: 1, label: '建议项' }
])
const activeIndex = ref(0)
const levelList = ref([
{ title: '高压安全审查', path: '/safetyReview' },
{ title: '审核员任务', path: '/safetyReview/examinerTasks' },
{ title: '新增', path: '/safetyReview/examinerTasks/addTaskForm' }
{ title: '新增', path: '/safetyReview/examinerTasksForm' }
])
const { proxy } = getCurrentInstance()
const data = reactive({
ruleForm: {},
rules: {
targetQualification: [{ required: true, message: "目标资质不能为空", trigger: "change" }],
employeeNumber: [{ required: true, message: "员工工号不能为空", trigger: "blur" }],
employeeChineseName: [{ required: true, message: "员工姓名(中文)不能为空", trigger: "blur" }],
employeeEnglishName: [{ required: true, message: "员工姓名(英文)", trigger: "blur" }],
departmentName: [{ required: true, message: "部门不能为空", trigger: "change" }],
officeName: [{ required: true, message: "科室不能为空", trigger: "change" }],
localityName: [{ required: true, message: "属地不能为空", trigger: "change" }],
localityManager: [{ required: true, message: "属地ESC不能为空", trigger: "blur" }],
},
})
//
const ToolOptions = ref(['全部', '主要偏差', '一般偏差', '建议项'])
const activeIndex = ref(0)
//
onMounted(() => {
getDeptTree();
getBusDependencyData();
const id = route.params && route.params.Id
if (id) {
console.log('接收id', id)
console.log('接收id', id)
ruleForm.value.id = id
formTitle.value = '编辑'
levelList.value = [
{ title: '高压安全审查', path: '/safetyReview' },
{ title: '审核员任务', path: '/safetyReview/examinerTasks' },
{ title: '编辑', path: '/safetyReview/examinerTasksForm' }
]
getDetailInfo(id)
} else {
ruleForm.value.id = null
formTitle.value = '新增'
levelList.value = [
{ title: '高压安全审查', path: '/safetyReview' },
{ title: '审核员任务', path: '/safetyReview/examinerTasks' },
{ title: '新增', path: '/safetyReview/examinerTasksForm' }
]
}
});
const tableData = [
]
const { proxy } = getCurrentInstance()
const data = reactive({
ruleForm: {
year: undefined,
deptId: undefined,
dependencyId: undefined,
reviewDate: undefined,
nextReviewDate: undefined,
openItemCount: 0,
reviewState: 0,
},
rules: {
year: [{ required: true, message: "年度不能为空", trigger: "change" }],
deptId: [{ required: true, message: "部门不能为空", trigger: "change" }],
dependencyId: [{ required: true, message: "属地不能为空", trigger: "change" }],
openItemCount: [{ required: true, message: "开口项数量不能为空", trigger: "blur" }],
reviewDate: [{ required: true, message: "审查时间不能为空", trigger: "change" }],
},
})
const { ruleForm, rules } = toRefs(data)
//
const getDetailInfo = (id) => {
getBusSafetyReview(id).then(res => {
if (res.code == 200) {
ruleForm.value = res.data
escUserName.value = res.data.escUserName
escWorkNo.value = res.data.escWorkNo
// docUploadList.value = JSON.parse(res.data.fileContent)
}
})
}
// ESC
const handleChoseDependency = (val) => {
if (val) {
const curDependency = busDependencyData.value.find(item => item.id == val)
escUserId.value = curDependency.escUserId,
escUserName.value = curDependency.escUserName
escWorkNo.value = curDependency.escWorkNo
buildingNo.value = curDependency.buildingNo
factoryArea.value = curDependency.factoryArea
}
}
//
const handleDateChange = (val) => {
ruleForm.value.reviewDate = moment(val).format('YYYY-MM-DD')
ruleForm.value.nextReviewDate = moment(val).add(3, 'years').format('YYYY-MM-DD')
};
//
const busDependencyData = ref([])
//
const getBusDependencyData = () => {
getBusDependencyPage({
pageIndex: 1,
pageSize: 100,
}).then(response => {
if (response.code == 200) {
busDependencyData.value = response.data.list.filter(item => item.buildingNo !== '-')
}
})
}
//
const enabledDeptOptions = ref(undefined)
//
const getDeptTree = () => {
deptTreeSelect().then(res => {
enabledDeptOptions.value = filterDisabledDept(JSON.parse(JSON.stringify(res.data)))
})
}
/** 过滤禁用的部门 */
const filterDisabledDept = (deptList) => {
return deptList.filter(dept => {
if (dept.disabled) {
return false
}
if (dept.children && dept.children.length) {
dept.children = filterDisabledDept(dept.children)
}
return true
})
}
//
const handleAddProblem = () => {
if (showTableData.value.length < ruleForm.value.openItemCount) {
const itemProblem = {
safetyReviewId: null,
remark: null,
level: null,
chargeUserId: escUserId.value,
chargeUserName: escUserName.value,
planDoneTime: null,
state: 0,
editFlag: true
}
showTableData.value.push(itemProblem)
cachShowTableData.value.push(itemProblem)
} else {
proxy.$modal.msgError("填报问题不允许超出开口项数量!!!");
}
}
//
const handleEditClick = (row, rowIndex) => {
var cacheRow = JSON.stringify(row)
cachShowTableData.value[rowIndex] = JSON.parse(cacheRow)
row.editFlag = true
}
//
const handleRemove = (index) => {
showTableData.value.splice(index, 1)
cachShowTableData.value.splice(index, 1)
}
//
const handleSaveClick = (row, rowIndex) => {
row.editFlag = false
var editRow = JSON.stringify(row)
showTableData.value[rowIndex] = JSON.parse(editRow)
cachShowTableData.value[rowIndex] = JSON.parse(editRow)
}
//
const handleCancelClick = (row, rowIndex) => {
const cacheRow = JSON.stringify(cachShowTableData.value[rowIndex])
showTableData.value[rowIndex] = JSON.parse(cacheRow)
row.editFlag = false
}
//
const handleChangeLeve = (index, _level) => {
activeIndex.value = index
if (_level == '主要偏差') showTableData.value = cachShowTableData.value.filter(item => item.level == 3)
else if (_level == '一般偏差') showTableData.value = cachShowTableData.value.filter(item => item.level == 2)
else if (_level == '建议项') showTableData.value = cachShowTableData.value.filter(item => item.level == 1)
else showTableData.value = cachShowTableData.value
}
const handleCancel = () => {
proxy.resetForm("ruleFormRef")
router.push({
@ -186,25 +377,27 @@ const handleCancel = () => {
}
const handleSubmit = () => {
proxy.$refs["ruleFormRef"].validate(valid => {
if (valid) {
router.push({
path: '/safetyReview/examinerTasks'
})
// if (form.value.roleId != undefined) {
// form.value.menuIds = getMenuAllCheckedKeys()
// updateRole(form.value).then(response => {
// proxy.$modal.msgSuccess("")
// open.value = false
// getList()
// })
// } else {
// form.value.menuIds = getMenuAllCheckedKeys()
// addRole(form.value).then(response => {
// proxy.$modal.msgSuccess("")
// open.value = false
// getList()
// })
// }
if (valid) {
if (showTableData.value.length == 0 && ruleForm.value.openItemCount > 0) {
proxy.$modal.msgWarning("请填报问题")
return false
}
ruleForm.value.reviewProblemList = showTableData.value
if (ruleForm.value.id != undefined) {
updateBusSafetyReview(ruleForm.value).then(response => {
proxy.$modal.msgSuccess("修改成功")
router.push({
path: '/safetyReview/examinerTasks'
})
})
} else {
addBusSafetyReview(ruleForm.value).then(response => {
proxy.$modal.msgSuccess("新增成功")
router.push({
path: '/safetyReview/examinerTasks'
})
})
}
}
})
}
@ -303,6 +496,20 @@ const handleSubmit = () => {
padding: 6px 14px;
}
.nomarlText {
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 18px;
color: #b3b2b0;
}
.infoinfoText {
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 18px;
color: #DD9200;
}
.successText {
font-family: Microsoft YaHei;
font-weight: 400;
@ -318,7 +525,7 @@ const handleSubmit = () => {
}
.applyFormContainer {
padding-top: 20px;
padding: 20px 0;
overflow: hidden;
}