From 31dcd2ac79af82cc149f34fbfb6ffd3d4a91a3cd Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: Tue, 25 Feb 2025 13:46:58 +0800
Subject: [PATCH] 修改名称
---
src/views/newSpecialWorkSystem/workTicket/wdsq/index.vue | 298 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 265 insertions(+), 33 deletions(-)
diff --git a/src/views/newSpecialWorkSystem/workTicket/wdsq/index.vue b/src/views/newSpecialWorkSystem/workTicket/wdsq/index.vue
index 8502469..e036b00 100644
--- a/src/views/newSpecialWorkSystem/workTicket/wdsq/index.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/wdsq/index.vue
@@ -34,6 +34,13 @@
/>
</el-select>
</div>
+ <div class="basic-line" style="display:flex;white-space:nowrap;line-height: 40px">
+ <span>作业票编号:</span>
+ <el-input
+ v-model="searPara.workPermitNo"
+ placeholder="请输入作业票编号"
+ />
+ </div>
<div style="margin-left: 20px">
<el-button type="primary" @click="searchRecord">查询</el-button>
<el-button plain @click="clearSearch">重置</el-button>
@@ -49,11 +56,21 @@
<el-button type="primary" :icon="Refresh" size="default" @click="reLoadData()" />
</el-row>
<el-table ref="multipleTableRef" :data="applyData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }">
+ <el-table-column property="workPermitNo" label="作业编号" align="center">
+ <template #default="scope">
+ {{scope.row.workPermitNo?scope.row.workPermitNo:'—'}}
+ </template>
+ </el-table-column>
<el-table-column property="seDepName" label="事业部" align="center"/>
<el-table-column property="applyDepName" label="作业所在车间" align="center"/>
<el-table-column property="workContent" label="作业内容" align="center"/>
<el-table-column property="workTypeDesc" label="作业类型" align="center"/>
- <el-table-column property="workDepName" label="作业单位" align="center"/>
+ <el-table-column label="作业单位" align="center">
+ <template #default="scope">
+ <span v-if="scope.row.workDepList && scope.row.workDepList.length>0">{{scope.row.workDepList.map(i=>i.workDepName).join(',')}}</span>
+ <span v-else>{{scope.row.workDepName }}</span>
+ </template>
+ </el-table-column>
<el-table-column property="headList" label="负责人及电话" align="center">
<template #default="scope">
{{scope.row.headList.map(i=>{return i.userName + '(' + i.phone+ ')' }).join(',')}}
@@ -89,17 +106,19 @@
<el-table-column label="风险研判" align="center">
<template #default="scope">
<el-button v-if="scope.row.status == 0" link type="primary" size="small" @click="openReport('上传', scope.row)">上传研判报告</el-button>
- <el-tag type="danger" v-else-if="scope.row.status == -1">已废止</el-tag>
+ <el-tag type="danger" v-else-if="scope.row.status == 15">已取消</el-tag>
+ <el-tag type="danger" v-else-if="scope.row.status == 16">已废止</el-tag>
<el-button v-else link type="primary" size="small" @click="openReport('查看', scope.row)">查看研判报告</el-button>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" align="center" width="150">
<template #default="scope">
- <span v-if="scope.row.status == -1">已废止</span>
- <el-button v-if="scope.row.status == 0 || scope.row.status == 1" link type="danger" size="small" :icon="Delete" @click="abortRecordBtn(scope.row)">作废</el-button>
- <el-button v-if="scope.row.status !== -1" link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
-<!-- <el-button link type="success" size="small" :icon="Finished">修改</el-button>-->
- <el-button v-if="scope.row.status == 1" link type="success" size="small" :icon="Download" @click="checkTicket(scope.row)">正式办票</el-button>
+ <span v-if="scope.row.status == 16">已废止</span>
+ <span v-if="scope.row.status == 15">已取消</span>
+ <el-button v-if="scope.row.status == 0 || scope.row.status == 1" link type="danger" size="small" :icon="Delete" @click="abortRecordBtn(scope.row)">取消</el-button>
+ <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
+ <el-button v-if="scope.row.status == 0 || scope.row.status == 1" link type="primary" size="small" v-throttle :icon="Edit" @click="openEdit(scope.row)">修改</el-button>
+ <el-button link type="success" v-throttle v-if="scope.row.status == 0 || scope.row.status == 1" size="small" :icon="Download" @click="checkTicket(scope.row)">正式办票</el-button>
<!-- <el-button :disabled="scope.row.status == 7 ? false : true" link type="primary" size="small" :icon="Download" @click="downLoadBtn(scope.row)">导出作业票</el-button>-->
</template>
</el-table-column>
@@ -122,13 +141,20 @@
<detail-log :type=dialogType :statusList=statusList :details = details></detail-log>
<template #footer>
<span class="dialog-footer">
- <el-button type="primary" @click="dialogDetails = false"
- >确认</el-button
- >
+ <el-button type="primary" @click="dialogDetails = false">确认</el-button>
</span>
</template>
</el-dialog>
<report-log ref="reportDialogRef" @refresh="getListByPage"></report-log>
+ <fire-dialog ref="fireRef" :lists="lists" @refresh="getListByPage"></fire-dialog>
+ <plate-dialog ref="plateRef" :lists="lists" @refresh="getListByPage"></plate-dialog>
+ <space-dialog ref="spaceRef" :lists="lists" @refresh="getListByPage"></space-dialog>
+ <hoist-dialog ref="hoistRef" :lists="lists" @refresh="getListByPage"></hoist-dialog>
+ <ground-dialog ref="groundRef" :lists="lists" @refresh="getListByPage"></ground-dialog>
+ <broken-dialog ref="brokenRef" :lists="lists" @refresh="getListByPage"></broken-dialog>
+ <height-dialog ref="heightRef" :lists="lists" @refresh="getListByPage"></height-dialog>
+ <power-dialog ref="powerRef" :lists="lists" @refresh="getListByPage"></power-dialog>
+ <open-dialog ref="openRef" :lists="lists" @refresh="getListByPage"></open-dialog>
</div>
</template>
@@ -175,6 +201,7 @@
searPara: {}
timeRange: Array<string>;
dep4List: Array<type>;
+ lists: {}
}
interface type {
id: number;
@@ -188,13 +215,31 @@
name: 'myApply',
components: {
detailLog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/detailLog.vue')),
- reportLog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/jsaReportDialog.vue'))
+ reportLog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/jsaReportDialog.vue')),
+ fireDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/fireDialog.vue')),
+ plateDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/plateDialog.vue')),
+ spaceDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/spaceDialog.vue')),
+ hoistDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/hoistDialog.vue')),
+ groundDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/groundDialog.vue')),
+ brokenDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/brokenDialog.vue')),
+ heightDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/heightDialog.vue')),
+ powerDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/powerDialog.vue')),
+ openDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/openDialog.vue'))
},
setup() {
const userInfo = useUserInfo();
const { userInfos } = storeToRefs(userInfo);
const router = useRouter();
const reportDialogRef = ref();
+ const fireRef = ref()
+ const plateRef = ref()
+ const spaceRef = ref()
+ const hoistRef = ref()
+ const groundRef = ref()
+ const brokenRef = ref()
+ const heightRef = ref()
+ const powerRef = ref()
+ const openRef = ref()
const state = reactive<stateType>({
pageIndex1: 1,
pageSize1: 10,
@@ -207,6 +252,7 @@
searPara:{
startTime: '',
endTime: '',
+ workPermitNo: '',
workType: null,
headUserName: '',
secondDepId: null
@@ -235,8 +281,18 @@
{ id: 5, name: '断路作业' },
{ id: 6, name: '高处作业' },
{ id: 7, name: '临时用电作业' },
- { id: 8, name: '盲板抽堵作业' }
+ { id: 8, name: '盲板抽堵作业' },
+ { id: 9, name: '打开作业' }
],
+ lists: {
+ workerList: [],
+ departList: [],
+ departList2: [],
+ deviceList: [],
+ otherWorks: [],
+ spList: [],
+ riskList: []
+ },
dep4List: [
{id:49,name:'电石事业部'},
{id:50,name:'电力事业部'},
@@ -245,51 +301,207 @@
],
statusList: [
{
- value: -1,
- label: '废止'
- },
- {
value: 0,
- label: '风险研判中'
+ label: '风险研判'
},
{
value: 1,
- label: '票证办理中'
+ label: '票证办理'
},
{
value: 2,
- label: '安全措施确认中'
+ label: '气体分析'
},
{
value: 3,
- label: '培训交底中'
+ label: '安全措施确认,培训交底'
},
{
value: 4,
- label: '气体分析中'
+ label: '安全措施确认'
},
{
value: 5,
- label: '作业开始'
+ label: '培训交底'
},
{
value: 6,
- label: '作业监护'
+ label: '部门审批'
},
{
value: 7,
- label: '作业结束'
+ label: '作业票填报结束'
},
{
value: 8,
- label: '作业验收'
+ label: '作业气体分析不合格'
},
{
value: 9,
- label: '安全措施确认,培训交底中'
+ label: '审批未通过'
+ },
+ {
+ value: 10,
+ label: '开始'
+ },
+ {
+ value: 11,
+ label: '监护'
+ },
+ {
+ value: 12,
+ label: '结束'
+ },
+ {
+ value: 13,
+ label: '待验收'
+ },
+ {
+ value: 14,
+ label: '验收完成'
+ },
+ {
+ value: 15,
+ label: '取消'
+ },
+ {
+ value: 16,
+ label: '废止作业票'
}
]
});
+
+ // 页面载入时执行方法
+ onMounted(() => {
+ getListByPage();
+ getAllDepartment()
+ spWorker()
+ getOpList()
+ getAll()
+ getAllDevice()
+ getAllRisks()
+ getOtherWork()
+ });
+
+ const openEdit = (row)=>{
+ if(row.workType == 1){
+ fireRef.value.openDialog(row,'edit')
+ }
+ if(row.workType == 2){
+ spaceRef.value.openDialog(row,'edit')
+ }
+ if(row.workType == 3){
+ hoistRef.value.openDialog(row,'edit')
+ }
+ if(row.workType == 4){
+ groundRef.value.openDialog(row,'edit')
+ }
+ if(row.workType == 5){
+ brokenRef.value.openDialog(row,'edit')
+ }
+ if(row.workType == 6){
+ heightRef.value.openDialog(row,'edit')
+ }
+ if(row.workType == 7){
+ powerRef.value.openDialog(row,'edit')
+ }
+ if(row.workType == 8){
+ plateRef.value.openDialog(row,'edit')
+ }
+ if(row.workType == 9){
+ openRef.value.openDialog(row,'edit')
+ }
+ }
+
+ const spWorker = async ()=>{
+ for(let id of ['18','19']){
+ const res = await workApplyApi().getSpList({roleId: id})
+ if(id == '18'){
+ if (res.data.code === '200') {
+ state.lists.spList.jhList = JSON.parse(JSON.stringify(res.data.data))
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ }
+ if(id == '19'){
+ if (res.data.code === '200') {
+ state.lists.spList.sfList = JSON.parse(JSON.stringify(res.data.data))
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ }
+ }
+ }
+
+ const getOpList = async()=>{
+ const res = await workApplyApi().getOpList()
+ if(res.data.code == '200'){
+ if(res.data.data && res.data.data.length>0){
+ state.lists.spList.opList = JSON.parse(JSON.stringify(res.data.data)).map(i=>{
+ if(i.certList && i.certList.length>0){
+ i.certList = i.certList.map(item=>{
+ item['realName'] = i.realName + '(' + item.certTypeName +':'+ item.certExpiredAt + ')'
+ item['uid'] = item.certNo + ',' + item.certExpiredAt
+ return item
+ })
+ }
+ return i
+ })
+ }
+ }else{
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ })
+ }
+ }
+
+ // 获取用户列表
+ const getAll = async ()=>{
+ const res = await workApplyApi().getAllUsers()
+ if (res.data.code === '200') {
+ state.lists.workerList = JSON.parse(JSON.stringify(res.data.data))
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ };
+
+ // 获取设备列表
+ const getAllDevice = async ()=>{
+ const res = await workApplyApi().getAllDevices()
+ if (res.data.code === '200') {
+ state.lists.deviceList = JSON.parse(JSON.stringify(res.data.data))
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ }
+
+ // 获取设备列表
+ const getAllRisks = async ()=>{
+ const res = await workApplyApi().getAllRiskIdentity()
+ if (res.data.code === '200') {
+ // state.allDevices = JSON.parse(JSON.stringify(res.data.data))
+ state.lists.riskList = JSON.parse(JSON.stringify(res.data.data))
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ }
+
const giveTime = () => {
if (state.timeRange && state.timeRange !== null) {
state.searPara.startTime = state.timeRange[0];
@@ -321,12 +533,25 @@
if (res.data.code === '200') {
state.departmentList = JSON.parse(JSON.stringify(res.data.data))
recursion(state.departmentList);
+ state.lists.departList = JSON.parse(JSON.stringify(res.data.data))
+ state.lists.departList2 = JSON.parse(JSON.stringify(res.data.data))[0].children[0].children.filter(i=>i.depId == 32 || i.depId == 48 || i.depId == 49 || i.depId == 50 || i.depId == 10 || i.depId == 41 || i.depId == 46 || i.depId == 47)
} else {
ElMessage({
type: 'warning',
message: res.data.msg
});
}
+ };
+ const getOtherWork = async () => {
+ let res = await workApplyApi().getOtherWork({pageSize: 999, pageIndex: 1, searchParams: {workPermitNo: '', workType: null}})
+ if (res.data.code === '200') {
+ state.lists.otherWorks = JSON.parse(JSON.stringify(res.data.data))
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
};
const recursion = (value: any) => {
@@ -391,10 +616,12 @@
state.searPara = {
startTime: '',
endTime: '',
+ workPermitNo: '',
workType: null,
headUserName: '',
secondDepId: null
};
+ state.pageIndex1 = 1
getListByPage();
};
@@ -537,12 +764,6 @@
await initBackEndControlRoutes();
};
- // 页面载入时执行方法
- onMounted(() => {
- getListByPage();
- getAllDepartment()
- });
-
return {
View,
Edit,
@@ -552,6 +773,17 @@
Finished,
Download,
reportDialogRef,
+ fireRef,
+ plateRef,
+ spaceRef,
+ hoistRef,
+ groundRef,
+ brokenRef,
+ heightRef,
+ powerRef,
+ openRef,
+ openEdit,
+ getAllDepartment,
checkTicket,
giveTime,
reLoadData,
@@ -627,7 +859,7 @@
}
}
&:last-of-type {
- height: calc(100% - 100px);
+ height: calc(100% - 130px);
}
}
.el-row {
--
Gitblit v1.9.2