对接安全审查问题录入
This commit is contained in:
parent
1272a80453
commit
dde0d4c5c6
42
src/api/safetyReview.js
Normal file
42
src/api/safetyReview.js
Normal 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'
|
||||
})
|
||||
}
|
|
@ -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工具列表
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user