对比新文件 |
| | |
| | | import { getToken } from '../utils/auth' |
| | | import request from '@/utils/request' |
| | | |
| | | export function workApprovalApi() { |
| | | return { |
| | | // 分页获取审批列表 |
| | | getApprovalListPage: (data) => { |
| | | return request({ |
| | | headers: { |
| | | 'Authorization': getToken() |
| | | }, |
| | | url: process.env.BASE_API + `/work/apply/pending/page/list`, |
| | | method: 'post', |
| | | data: data |
| | | }); |
| | | }, |
| | | |
| | | // 获取当前层级审批数据 |
| | | getApprovalData: (data) => { |
| | | return request({ |
| | | headers: { |
| | | 'Authorization': getToken() |
| | | }, |
| | | url: process.env.BASE_API + `/work/approval/pending/data`, |
| | | method: 'post', |
| | | data: data |
| | | }); |
| | | }, |
| | | |
| | | // 获取当前层级审批进度 |
| | | getApprovalStatus: (data) => { |
| | | return request({ |
| | | headers: { |
| | | 'Authorization': getToken() |
| | | }, |
| | | url: process.env.BASE_API + `/work/apply/approver/approved/view`, |
| | | method: 'post', |
| | | data: data |
| | | }); |
| | | }, |
| | | |
| | | // 终止当前审批进度 |
| | | postAbord: (data) => { |
| | | return request({ |
| | | headers: { |
| | | 'Authorization': getToken() |
| | | }, |
| | | url: process.env.BASE_API + `/work/apply/abord`, |
| | | method: 'post', |
| | | data: data |
| | | }); |
| | | } |
| | | }; |
| | | } |
对比新文件 |
| | |
| | | <template> |
| | | <div style="height: 100%"> |
| | | <el-form :model="details" label-width="150px"> |
| | | <el-form-item label="作业申请单号"> |
| | | <el-input v-model="details.workPermitNo" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="申请人"> |
| | | <el-input v-model="details.applyUname" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="部门名称"> |
| | | <el-input v-model="details.depName" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业人"> |
| | | <el-input v-model="details.operators" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业类型"> |
| | | <el-input v-model="details.workTypeDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业等级"> |
| | | <el-input v-model="details.workLevelDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业内容"> |
| | | <el-input v-model="details.workContent" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业地址"> |
| | | <el-input v-model="details.workLocation" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业单位ID"> |
| | | <el-input v-model="details.workDetail.operationDepId" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="断路原因"> |
| | | <el-input v-model="details.workDetail.bcReason" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="断路地段说明"> |
| | | <el-input v-model="details.workDetail.bcExplain" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="涉及相关部门"> |
| | | <el-input v-model="details.workDetail.involvedDepIds" readonly type="textarea"/> |
| | | </el-form-item> |
| | | <el-form-item label="期望开始时间"> |
| | | <el-input v-model="details.expStartTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="期望结束时间"> |
| | | <el-input v-model="details.expEndTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="申请时间"> |
| | | <el-input v-model="details.applyTime" readonly /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="当前层级">--> |
| | | <!-- <el-input v-model="details.stepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="上一层级">--> |
| | | <!-- <el-input v-model="details.preStepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="下一层级">--> |
| | | <!-- <el-input v-model="details.nextStepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="层级审批类型"> |
| | | <el-input v-model="details.stepTypeDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepSerial && details.stepSerial!=null" label="层级排序号"> |
| | | <el-input v-model="details.stepSerial" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepStartApprovalTime && details.stepStartApprovalTime!=null" label="层级预期开始审批时间"> |
| | | <el-input v-model="details.stepStartApprovalTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepFinishApprovalTime && details.stepFinishApprovalTime!=null" label="层级预期结束审批时间"> |
| | | <el-input v-model="details.stepFinishApprovalTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="审批人姓名"> |
| | | <el-input v-model="details.unitApprovalUname" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitApprovalStartTime && details.unitApprovalStartTime!=null" label="单元审批开始时间"> |
| | | <el-input v-model="details.unitApprovalStartTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitApprovalEndTime && details.unitApprovalEndTime!=null" label="单元审批结束时间"> |
| | | <el-input v-model="details.unitApprovalEndTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitResultDesc && details.unitResultDesc!=null" label="单元审批结果"> |
| | | <el-input v-model="details.unitResultDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.statusDesc && details.statusDesc!=null" label="当前状态"> |
| | | <el-input v-model="details.statusDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepApprovalResultDesc && details.stepApprovalResultDesc!=null" label="审批结果"> |
| | | <el-input v-model="details.stepApprovalResultDesc" readonly /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default{ |
| | | name: 'space', |
| | | components: {}, |
| | | props:['details'], |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | .home-container { |
| | | height: 100%; |
| | | overflow: hidden; |
| | | position: relative; |
| | | .el-row{ |
| | | margin-bottom: 20px; |
| | | } |
| | | .el-row:last-child { |
| | | margin-bottom: 0; |
| | | } |
| | | .el-input{ |
| | | width: 100% !important; |
| | | } |
| | | .el-date-editor::v-deep{ |
| | | width: 100%; |
| | | } |
| | | .el-select{ |
| | | width: 100%; |
| | | } |
| | | .el-cascader{ |
| | | width: 100% !important; |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div style="height: 100%"> |
| | | <el-form :model="details" label-width="150px"> |
| | | <el-form-item label="作业申请单号"> |
| | | <el-input v-model="details.workPermitNo" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="申请人"> |
| | | <el-input v-model="details.applyUname" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="部门名称"> |
| | | <el-input v-model="details.depName" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业人"> |
| | | <el-input v-model="details.operators" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业类型"> |
| | | <el-input v-model="details.workTypeDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业等级"> |
| | | <el-input v-model="details.workLevelDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业内容"> |
| | | <el-input v-model="details.workContent" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业地址"> |
| | | <el-input v-model="details.workLocation" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业方式"> |
| | | <el-input v-model="details.workDetail.hotMethod" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="关联其他作业"> |
| | | <el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="申请时间"> |
| | | <el-input v-model="details.applyTime" readonly /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="当前层级">--> |
| | | <!-- <el-input v-model="details.stepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="上一层级">--> |
| | | <!-- <el-input v-model="details.preStepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="下一层级">--> |
| | | <!-- <el-input v-model="details.nextStepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="层级审批类型"> |
| | | <el-input v-model="details.stepTypeDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepSerial && details.stepSerial!=null" label="层级排序号"> |
| | | <el-input v-model="details.stepSerial" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepStartApprovalTime && details.stepStartApprovalTime!=null" label="层级预期开始审批时间"> |
| | | <el-input v-model="details.stepStartApprovalTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepFinishApprovalTime && details.stepFinishApprovalTime!=null" label="层级预期结束审批时间"> |
| | | <el-input v-model="details.stepFinishApprovalTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="审批人姓名"> |
| | | <el-input v-model="details.unitApprovalUname" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitApprovalStartTime && details.unitApprovalStartTime!=null" label="单元审批开始时间"> |
| | | <el-input v-model="details.unitApprovalStartTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitApprovalEndTime && details.unitApprovalEndTime!=null" label="单元审批结束时间"> |
| | | <el-input v-model="details.unitApprovalEndTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitResultDesc && details.unitResultDesc!=null" label="单元审批结果"> |
| | | <el-input v-model="details.unitResultDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.statusDesc && details.statusDesc!=null" label="当前状态"> |
| | | <el-input v-model="details.statusDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepApprovalResultDesc && details.stepApprovalResultDesc!=null" label="审批结果"> |
| | | <el-input v-model="details.stepApprovalResultDesc" readonly /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default{ |
| | | name: 'fire', |
| | | components: {}, |
| | | props:['details'], |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | .home-container { |
| | | height: 100%; |
| | | overflow: hidden; |
| | | position: relative; |
| | | .el-row{ |
| | | margin-bottom: 20px; |
| | | } |
| | | .el-row:last-child { |
| | | margin-bottom: 0; |
| | | } |
| | | .el-input{ |
| | | width: 100% !important; |
| | | } |
| | | .el-date-editor::v-deep{ |
| | | width: 100%; |
| | | } |
| | | .el-select{ |
| | | width: 100%; |
| | | } |
| | | .el-cascader{ |
| | | width: 100% !important; |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div style="height: 100%"> |
| | | <el-form :model="details" label-width="150px"> |
| | | <el-form-item label="作业申请单号"> |
| | | <el-input v-model="details.workPermitNo" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="申请人"> |
| | | <el-input v-model="details.applyUname" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="部门名称"> |
| | | <el-input v-model="details.depName" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业人"> |
| | | <el-input v-model="details.operators" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业类型"> |
| | | <el-input v-model="details.workTypeDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业等级"> |
| | | <el-input v-model="details.workLevelDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业内容"> |
| | | <el-input v-model="details.workContent" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业地址"> |
| | | <el-input v-model="details.workLocation" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业单位ID"> |
| | | <el-input v-model="details.workDetail.operationDepId" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="范围"> |
| | | <el-input v-model="details.workDetail.gbScope" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="动土方式"> |
| | | <el-input v-model="details.workDetail.gbMethod" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="关联其他作业"> |
| | | <el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea"/> |
| | | </el-form-item> |
| | | <el-form-item label="期望开始时间"> |
| | | <el-input v-model="details.expStartTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="期望结束时间"> |
| | | <el-input v-model="details.expEndTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="申请时间"> |
| | | <el-input v-model="details.applyTime" readonly /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="当前层级">--> |
| | | <!-- <el-input v-model="details.stepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="上一层级">--> |
| | | <!-- <el-input v-model="details.preStepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="下一层级">--> |
| | | <!-- <el-input v-model="details.nextStepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="层级审批类型"> |
| | | <el-input v-model="details.stepTypeDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepSerial && details.stepSerial!=null" label="层级排序号"> |
| | | <el-input v-model="details.stepSerial" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepStartApprovalTime && details.stepStartApprovalTime!=null" label="层级预期开始审批时间"> |
| | | <el-input v-model="details.stepStartApprovalTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepFinishApprovalTime && details.stepFinishApprovalTime!=null" label="层级预期结束审批时间"> |
| | | <el-input v-model="details.stepFinishApprovalTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="审批人姓名"> |
| | | <el-input v-model="details.unitApprovalUname" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitApprovalStartTime && details.unitApprovalStartTime!=null" label="单元审批开始时间"> |
| | | <el-input v-model="details.unitApprovalStartTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitApprovalEndTime && details.unitApprovalEndTime!=null" label="单元审批结束时间"> |
| | | <el-input v-model="details.unitApprovalEndTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitResultDesc && details.unitResultDesc!=null" label="单元审批结果"> |
| | | <el-input v-model="details.unitResultDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.statusDesc && details.statusDesc!=null" label="当前状态"> |
| | | <el-input v-model="details.statusDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepApprovalResultDesc && details.stepApprovalResultDesc!=null" label="审批结果"> |
| | | <el-input v-model="details.stepApprovalResultDesc" readonly /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default{ |
| | | name: 'space', |
| | | components: {}, |
| | | props:['details'], |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | .home-container { |
| | | height: 100%; |
| | | overflow: hidden; |
| | | position: relative; |
| | | .el-row{ |
| | | margin-bottom: 20px; |
| | | } |
| | | .el-row:last-child { |
| | | margin-bottom: 0; |
| | | } |
| | | .el-input{ |
| | | width: 100% !important; |
| | | } |
| | | .el-date-editor::v-deep{ |
| | | width: 100%; |
| | | } |
| | | .el-select{ |
| | | width: 100%; |
| | | } |
| | | .el-cascader{ |
| | | width: 100% !important; |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div style="height: 100%"> |
| | | <el-form :model="details" label-width="150px"> |
| | | <el-form-item label="作业申请单号"> |
| | | <el-input v-model="details.workPermitNo" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="申请人"> |
| | | <el-input v-model="details.applyUname" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="部门名称"> |
| | | <el-input v-model="details.depName" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业人"> |
| | | <el-input v-model="details.operators" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业类型"> |
| | | <el-input v-model="details.workTypeDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业等级"> |
| | | <el-input v-model="details.workLevelDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业内容"> |
| | | <el-input v-model="details.workContent" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业地址"> |
| | | <el-input v-model="details.workLocation" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业单位ID"> |
| | | <el-input v-model="details.workDetail.operationDepId" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业高度"> |
| | | <el-input v-model="details.workDetail.operationHeight" readonly type="textarea"><template #append>米(m)</template></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="关联其他作业"> |
| | | <el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea"/> |
| | | </el-form-item> |
| | | <el-form-item label="期望开始时间"> |
| | | <el-input v-model="details.expStartTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="期望结束时间"> |
| | | <el-input v-model="details.expEndTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="申请时间"> |
| | | <el-input v-model="details.applyTime" readonly /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="当前层级">--> |
| | | <!-- <el-input v-model="details.stepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="上一层级">--> |
| | | <!-- <el-input v-model="details.preStepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="下一层级">--> |
| | | <!-- <el-input v-model="details.nextStepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="层级审批类型"> |
| | | <el-input v-model="details.stepTypeDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepSerial && details.stepSerial!=null" label="层级排序号"> |
| | | <el-input v-model="details.stepSerial" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepStartApprovalTime && details.stepStartApprovalTime!=null" label="层级预期开始审批时间"> |
| | | <el-input v-model="details.stepStartApprovalTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepFinishApprovalTime && details.stepFinishApprovalTime!=null" label="层级预期结束审批时间"> |
| | | <el-input v-model="details.stepFinishApprovalTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="审批人姓名"> |
| | | <el-input v-model="details.unitApprovalUname" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitApprovalStartTime && details.unitApprovalStartTime!=null" label="单元审批开始时间"> |
| | | <el-input v-model="details.unitApprovalStartTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitApprovalEndTime && details.unitApprovalEndTime!=null" label="单元审批结束时间"> |
| | | <el-input v-model="details.unitApprovalEndTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitResultDesc && details.unitResultDesc!=null" label="单元审批结果"> |
| | | <el-input v-model="details.unitResultDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.statusDesc && details.statusDesc!=null" label="当前状态"> |
| | | <el-input v-model="details.statusDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepApprovalResultDesc && details.stepApprovalResultDesc!=null" label="审批结果"> |
| | | <el-input v-model="details.stepApprovalResultDesc" readonly /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default{ |
| | | name: 'space', |
| | | components: {}, |
| | | props:['details'], |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | .home-container { |
| | | height: 100%; |
| | | overflow: hidden; |
| | | position: relative; |
| | | .el-row{ |
| | | margin-bottom: 20px; |
| | | } |
| | | .el-row:last-child { |
| | | margin-bottom: 0; |
| | | } |
| | | .el-input{ |
| | | width: 100% !important; |
| | | } |
| | | .el-date-editor::v-deep{ |
| | | width: 100%; |
| | | } |
| | | .el-select{ |
| | | width: 100%; |
| | | } |
| | | .el-cascader{ |
| | | width: 100% !important; |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div style="height: 100%"> |
| | | <el-form :model="details" label-width="150px"> |
| | | <el-form-item label="作业申请单号"> |
| | | <el-input v-model="details.workPermitNo" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="申请人"> |
| | | <el-input v-model="details.applyUname" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="部门名称"> |
| | | <el-input v-model="details.depName" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业人"> |
| | | <el-input v-model="details.operators" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业类型"> |
| | | <el-input v-model="details.workTypeDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业等级"> |
| | | <el-input v-model="details.workLevelDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业内容"> |
| | | <el-input v-model="details.workContent" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业地址"> |
| | | <el-input v-model="details.workLocation" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="吊装工具名称"> |
| | | <el-input v-model="details.workDetail.hoistingToolName" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="起吊物体重量"> |
| | | <el-input v-model="details.workDetail.weightMass" readonly type="textarea"><template #append>吨(t)</template></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="关联其他作业"> |
| | | <el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea"/> |
| | | </el-form-item> |
| | | <el-form-item label="期望开始时间"> |
| | | <el-input v-model="details.expStartTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="期望结束时间"> |
| | | <el-input v-model="details.expEndTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="申请时间"> |
| | | <el-input v-model="details.applyTime" readonly /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="当前层级">--> |
| | | <!-- <el-input v-model="details.stepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="上一层级">--> |
| | | <!-- <el-input v-model="details.preStepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="下一层级">--> |
| | | <!-- <el-input v-model="details.nextStepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="层级审批类型"> |
| | | <el-input v-model="details.stepTypeDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepSerial && details.stepSerial!=null" label="层级排序号"> |
| | | <el-input v-model="details.stepSerial" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepStartApprovalTime && details.stepStartApprovalTime!=null" label="层级预期开始审批时间"> |
| | | <el-input v-model="details.stepStartApprovalTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepFinishApprovalTime && details.stepFinishApprovalTime!=null" label="层级预期结束审批时间"> |
| | | <el-input v-model="details.stepFinishApprovalTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="审批人姓名"> |
| | | <el-input v-model="details.unitApprovalUname" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitApprovalStartTime && details.unitApprovalStartTime!=null" label="单元审批开始时间"> |
| | | <el-input v-model="details.unitApprovalStartTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitApprovalEndTime && details.unitApprovalEndTime!=null" label="单元审批结束时间"> |
| | | <el-input v-model="details.unitApprovalEndTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitResultDesc && details.unitResultDesc!=null" label="单元审批结果"> |
| | | <el-input v-model="details.unitResultDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.statusDesc && details.statusDesc!=null" label="当前状态"> |
| | | <el-input v-model="details.statusDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepApprovalResultDesc && details.stepApprovalResultDesc!=null" label="审批结果"> |
| | | <el-input v-model="details.stepApprovalResultDesc" readonly /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | export default{ |
| | | name: 'space', |
| | | components: {}, |
| | | props:['details'], |
| | | setup() { |
| | | const userInfo = useUserInfo() |
| | | const { userInfos } = storeToRefs(userInfo); |
| | | return { |
| | | Search |
| | | }; |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | .home-container { |
| | | height: 100%; |
| | | overflow: hidden; |
| | | position: relative; |
| | | .el-row{ |
| | | margin-bottom: 20px; |
| | | } |
| | | .el-row:last-child { |
| | | margin-bottom: 0; |
| | | } |
| | | .el-input{ |
| | | width: 100% !important; |
| | | } |
| | | .el-date-editor::v-deep{ |
| | | width: 100%; |
| | | } |
| | | .el-select{ |
| | | width: 100%; |
| | | } |
| | | .el-cascader{ |
| | | width: 100% !important; |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div style="height: 100%"> |
| | | <el-form :model="details" label-width="150px"> |
| | | <el-form-item label="作业申请单号"> |
| | | <el-input v-model="details.workPermitNo" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="申请人"> |
| | | <el-input v-model="details.applyUname" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="部门名称"> |
| | | <el-input v-model="details.depName" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业人"> |
| | | <el-input v-model="details.operators" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业类型"> |
| | | <el-input v-model="details.workTypeDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业等级"> |
| | | <el-input v-model="details.workLevelDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业内容"> |
| | | <el-input v-model="details.workContent" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业地址"> |
| | | <el-input v-model="details.workLocation" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="盲板编号"> |
| | | <el-input v-model="details.workDetail.bpCode" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="主要介质"> |
| | | <el-input v-model="details.workDetail.mainMedia" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="温度"> |
| | | <el-input v-model="details.workDetail.temperature" readonly type="textarea"><template #append>摄氏度(℃)</template></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="压力"> |
| | | <el-input v-model="details.workDetail.pressure" readonly type="textarea"><template #append>千帕(kPa)</template></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="盲板材质"> |
| | | <el-input v-model="details.workDetail.bpMaterialQuality" readonly type="textarea"/> |
| | | </el-form-item> |
| | | <el-form-item label="盲板规格"> |
| | | <el-input v-model="details.workDetail.bpSpecification" readonly type="textarea"/> |
| | | </el-form-item> |
| | | <el-form-item label="盲板位置"> |
| | | <el-input v-model="details.workDetail.bpLocation" readonly type="textarea"/> |
| | | </el-form-item> |
| | | <el-form-item label="装盲板时间"> |
| | | <el-input v-model="details.workDetail.installBpTime" readonly/> |
| | | </el-form-item> |
| | | <el-form-item label="拆盲板时间"> |
| | | <el-input v-model="details.workDetail.uninstallBpTime" readonly/> |
| | | </el-form-item> |
| | | <el-form-item label="关联其他作业"> |
| | | <el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea"/> |
| | | </el-form-item> |
| | | <el-form-item label="期望开始时间"> |
| | | <el-input v-model="details.expStartTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="期望结束时间"> |
| | | <el-input v-model="details.expEndTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="申请时间"> |
| | | <el-input v-model="details.applyTime" readonly /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="当前层级">--> |
| | | <!-- <el-input v-model="details.stepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="上一层级">--> |
| | | <!-- <el-input v-model="details.preStepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="下一层级">--> |
| | | <!-- <el-input v-model="details.nextStepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="层级审批类型"> |
| | | <el-input v-model="details.stepTypeDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepSerial && details.stepSerial!=null" label="层级排序号"> |
| | | <el-input v-model="details.stepSerial" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepStartApprovalTime && details.stepStartApprovalTime!=null" label="层级预期开始审批时间"> |
| | | <el-input v-model="details.stepStartApprovalTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepFinishApprovalTime && details.stepFinishApprovalTime!=null" label="层级预期结束审批时间"> |
| | | <el-input v-model="details.stepFinishApprovalTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="审批人姓名"> |
| | | <el-input v-model="details.unitApprovalUname" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitApprovalStartTime && details.unitApprovalStartTime!=null" label="单元审批开始时间"> |
| | | <el-input v-model="details.unitApprovalStartTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitApprovalEndTime && details.unitApprovalEndTime!=null" label="单元审批结束时间"> |
| | | <el-input v-model="details.unitApprovalEndTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitResultDesc && details.unitResultDesc!=null" label="单元审批结果"> |
| | | <el-input v-model="details.unitResultDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.statusDesc && details.statusDesc!=null" label="当前状态"> |
| | | <el-input v-model="details.statusDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepApprovalResultDesc && details.stepApprovalResultDesc!=null" label="审批结果"> |
| | | <el-input v-model="details.stepApprovalResultDesc" readonly /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default{ |
| | | name: 'space', |
| | | components: {}, |
| | | props:['details'], |
| | | |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | .home-container { |
| | | height: 100%; |
| | | overflow: hidden; |
| | | position: relative; |
| | | .el-row{ |
| | | margin-bottom: 20px; |
| | | } |
| | | .el-row:last-child { |
| | | margin-bottom: 0; |
| | | } |
| | | .el-input{ |
| | | width: 100% !important; |
| | | } |
| | | .el-date-editor::v-deep{ |
| | | width: 100%; |
| | | } |
| | | .el-select{ |
| | | width: 100%; |
| | | } |
| | | .el-cascader{ |
| | | width: 100% !important; |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div style="height: 100%"> |
| | | <el-form :model="details" label-width="150px"> |
| | | <el-form-item label="作业申请单号"> |
| | | <el-input v-model="details.workPermitNo" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="申请人"> |
| | | <el-input v-model="details.applyUname" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="部门名称"> |
| | | <el-input v-model="details.depName" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业人"> |
| | | <el-input v-model="details.operators" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业类型"> |
| | | <el-input v-model="details.workTypeDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业等级"> |
| | | <el-input v-model="details.workLevelDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业内容"> |
| | | <el-input v-model="details.workContent" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业地址"> |
| | | <el-input v-model="details.workLocation" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="电源接入点"> |
| | | <el-input v-model="details.workDetail.powerAccessPoint" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="工作电压"> |
| | | <el-input v-model="details.workDetail.workingVoltage" readonly type="textarea"><template #append>伏特(v)</template></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="用电设备及功率"> |
| | | <el-input v-model="details.workDetail.equipmentAndPower" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="关联其他作业"> |
| | | <el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea"/> |
| | | </el-form-item> |
| | | <el-form-item label="期望开始时间"> |
| | | <el-input v-model="details.expStartTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="期望结束时间"> |
| | | <el-input v-model="details.expEndTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="申请时间"> |
| | | <el-input v-model="details.applyTime" readonly /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="当前层级">--> |
| | | <!-- <el-input v-model="details.stepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="上一层级">--> |
| | | <!-- <el-input v-model="details.preStepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="下一层级">--> |
| | | <!-- <el-input v-model="details.nextStepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="层级审批类型"> |
| | | <el-input v-model="details.stepTypeDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepSerial && details.stepSerial!=null" label="层级排序号"> |
| | | <el-input v-model="details.stepSerial" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepStartApprovalTime && details.stepStartApprovalTime!=null" label="层级预期开始审批时间"> |
| | | <el-input v-model="details.stepStartApprovalTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepFinishApprovalTime && details.stepFinishApprovalTime!=null" label="层级预期结束审批时间"> |
| | | <el-input v-model="details.stepFinishApprovalTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="审批人姓名"> |
| | | <el-input v-model="details.unitApprovalUname" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitApprovalStartTime && details.unitApprovalStartTime!=null" label="单元审批开始时间"> |
| | | <el-input v-model="details.unitApprovalStartTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitApprovalEndTime && details.unitApprovalEndTime!=null" label="单元审批结束时间"> |
| | | <el-input v-model="details.unitApprovalEndTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitResultDesc && details.unitResultDesc!=null" label="单元审批结果"> |
| | | <el-input v-model="details.unitResultDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.statusDesc && details.statusDesc!=null" label="当前状态"> |
| | | <el-input v-model="details.statusDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepApprovalResultDesc && details.stepApprovalResultDesc!=null" label="审批结果"> |
| | | <el-input v-model="details.stepApprovalResultDesc" readonly /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default{ |
| | | name: 'space', |
| | | components: {}, |
| | | props:['details'], |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | .home-container { |
| | | height: 100%; |
| | | overflow: hidden; |
| | | position: relative; |
| | | .el-row{ |
| | | margin-bottom: 20px; |
| | | } |
| | | .el-row:last-child { |
| | | margin-bottom: 0; |
| | | } |
| | | .el-input{ |
| | | width: 100% !important; |
| | | } |
| | | .el-date-editor::v-deep{ |
| | | width: 100%; |
| | | } |
| | | .el-select{ |
| | | width: 100%; |
| | | } |
| | | .el-cascader{ |
| | | width: 100% !important; |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div style="height: 100%"> |
| | | <el-form :model="details" label-width="150px"> |
| | | <el-form-item label="作业申请单号"> |
| | | <el-input v-model="details.workPermitNo" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="申请人"> |
| | | <el-input v-model="details.applyUname" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="部门名称"> |
| | | <el-input v-model="details.depName" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业人"> |
| | | <el-input v-model="details.operators" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业类型"> |
| | | <el-input v-model="details.workTypeDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业等级"> |
| | | <el-input v-model="details.workLevelDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="作业内容"> |
| | | <el-input v-model="details.workContent" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="作业地址"> |
| | | <el-input v-model="details.workLocation" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="受限空间所属单位ID"> |
| | | <el-input v-model="details.workDetail.csDepId" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="受限空间名称"> |
| | | <el-input v-model="details.workDetail.csName" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="空间原有介质名称"> |
| | | <el-input v-model="details.workDetail.csOriginalName" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="关联其他作业"> |
| | | <el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="期望开始时间"> |
| | | <el-input v-model="details.expStartTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="期望结束时间"> |
| | | <el-input v-model="details.expEndTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="申请时间"> |
| | | <el-input v-model="details.applyTime" readonly /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="当前层级">--> |
| | | <!-- <el-input v-model="details.stepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="上一层级">--> |
| | | <!-- <el-input v-model="details.preStepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="下一层级">--> |
| | | <!-- <el-input v-model="details.nextStepId" readonly />--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="层级审批类型"> |
| | | <el-input v-model="details.stepTypeDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepSerial && details.stepSerial!=null" label="层级排序号"> |
| | | <el-input v-model="details.stepSerial" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepStartApprovalTime && details.stepStartApprovalTime!=null" label="层级预期开始审批时间"> |
| | | <el-input v-model="details.stepStartApprovalTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepFinishApprovalTime && details.stepFinishApprovalTime!=null" label="层级预期结束审批时间"> |
| | | <el-input v-model="details.stepFinishApprovalTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item label="审批人姓名"> |
| | | <el-input v-model="details.unitApprovalUname" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitApprovalStartTime && details.unitApprovalStartTime!=null" label="单元审批开始时间"> |
| | | <el-input v-model="details.unitApprovalStartTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitApprovalEndTime && details.unitApprovalEndTime!=null" label="单元审批结束时间"> |
| | | <el-input v-model="details.unitApprovalEndTime" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.unitResultDesc && details.unitResultDesc!=null" label="单元审批结果"> |
| | | <el-input v-model="details.unitResultDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.statusDesc && details.statusDesc!=null" label="当前状态"> |
| | | <el-input v-model="details.statusDesc" readonly /> |
| | | </el-form-item> |
| | | <el-form-item v-if="details.stepApprovalResultDesc && details.stepApprovalResultDesc!=null" label="审批结果"> |
| | | <el-input v-model="details.stepApprovalResultDesc" readonly /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default{ |
| | | name: 'space', |
| | | components: {}, |
| | | props:['details'], |
| | | |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | .home-container { |
| | | height: 100%; |
| | | overflow: hidden; |
| | | position: relative; |
| | | .el-row{ |
| | | margin-bottom: 20px; |
| | | } |
| | | .el-row:last-child { |
| | | margin-bottom: 0; |
| | | } |
| | | .el-input{ |
| | | width: 100% !important; |
| | | } |
| | | .el-date-editor::v-deep{ |
| | | width: 100%; |
| | | } |
| | | .el-select{ |
| | | width: 100%; |
| | | } |
| | | .el-cascader{ |
| | | width: 100% !important; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | |
| | | <div class="home-container"> |
| | | <!-- <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">--> |
| | | <!-- <el-tab-pane label="申请中" name="1">--> |
| | | <div style="height: 100%"> |
| | | <el-row class="homeCard"> |
| | | <span>作业类型:</span> |
| | | <el-col :span="10"> |
| | | <div class="grid-content topInfo"> |
| | | <el-select v-model="searchWord"> |
| | | <el-option |
| | | v-for="item in workType" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | <el-button type="primary" @click="searchRecord">查询</el-button> |
| | | <el-button plain @click="clearSearch">重置</el-button> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <div class="homeCard"> |
| | | <div class="main-card"> |
| | | <el-row class="cardTop"> |
| | | <el-col :span="12" class="mainCardBtn"> |
| | | <!-- <el-button type="primary" :icon="Plus" size="default" @click="toApply()">申请</el-button>--> |
| | | <!-- <el-button type="danger" :icon="Delete" size="default">删除</el-button>--> |
| | | <!-- <el-button type="success" size="default">设置分类</el-button>--> |
| | | </el-col> |
| | | <!-- <el-button type="primary" @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="applyUname" label="申请人" /> |
| | | <el-table-column property="depName" label="部门名称" /> |
| | | <el-table-column property="operators" label="作业人" /> |
| | | <el-table-column property="workTypeDesc" label="作业类型" /> |
| | | <el-table-column property="workLevelDesc" label="作业等级" /> |
| | | <el-table-column property="applyTime" label="申请时间" width="180" /> |
| | | <el-table-column label="审批状态" align="center" width="180"> |
| | | <template slot-scope="scope"> |
| | | <el-tag :type="scope.row.status==2?'success':(scope.row.status==8||scope.row.status==9)?'warning':'danger'">{{ scope.row.statusDesc }}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" label="操作" align="center" width="250"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" @click="viewRecord(scope.row)">查看</el-button> |
| | | <el-button type="text" @click="viewStatus(scope.row)">进度</el-button> |
| | | <!-- <el-button link type="warning" size="small" :icon="Delete" @click="deleteRecordBtn(scope.row)">终止</el-button>--> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="pageBtn"> |
| | | <el-pagination v-model:currentPage="pageIndex1" v-model:page-size="pageSize1" :page-sizes="[10, 15]" background layout="total, sizes, prev, pager, next, jumper" :total="totalSize1" @size-change="handleSizeChange1" @current-change="handleCurrentChange1" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-dialog v-model="dialogDetails" title="作业审批详情" center> |
| | | <fire v-if="dialogType == 1" :details = details></fire> |
| | | <space v-else-if="dialogType == 2" :details = details></space> |
| | | <hoist v-else-if="dialogType == 3" :details = details></hoist> |
| | | <ground v-else-if="dialogType == 4" :details = details></ground> |
| | | <broken v-else-if="dialogType == 5" :details = details></broken> |
| | | <height v-else-if="dialogType == 6" :details = details></height> |
| | | <power v-else-if="dialogType == 7" :details = details></power> |
| | | <plate v-else :details = details></plate> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button type="primary" @click="dialogDetails = false" |
| | | >确认</el-button |
| | | > |
| | | </span> |
| | | </template> |
| | | </el-dialog> |
| | | <el-dialog v-model="dialogStatus" title="作业审批进度" center width="60%"> |
| | | <el-form v-if="approveInfo.operators.length > 0" style="margin-bottom: 40px"> |
| | | <el-form-item label="申请作业人"> |
| | | <el-input v-model="approveInfo.operators" readonly type="textarea" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div style="display: flex; flex-direction: column-reverse"> |
| | | <div v-for="(item, index) in approveInfo.approvalSteps" class="stepItem"> |
| | | <div class="stepNum">{{ item.stepSerial }}</div> |
| | | <div class="stepCard"> |
| | | <el-card class="box-card" shadow="always"> |
| | | <div class="text"> |
| | | 审批结果:<span>{{ item.approvalResultDesc }}</span> |
| | | </div> |
| | | <div class="text"> |
| | | 审批类型:<span>{{ item.typeDesc }}</span> |
| | | </div> |
| | | <div class="text" v-show="item.startApprovalTime != null"> |
| | | 开始时间:<span>{{ item.startApprovalTime }}</span> |
| | | </div> |
| | | <div class="approveUnit"> |
| | | <div class="item-tit"><span>审批人</span><span>审批状态</span></div> |
| | | <div class="item-cont" v-for="i in item.stepUnits"> |
| | | <span>{{ i.approvalUname }}</span |
| | | ><span>{{ i.resultDesc }}</span> |
| | | </div> |
| | | </div> |
| | | <div class="approveItem"> |
| | | <div class="item-tit"> |
| | | <span>审批项目</span> |
| | | <!-- <span>类型</span>--> |
| | | <div>措施标准</div> |
| | | </div> |
| | | <div class="item-cont" v-for="i in item.stepItems"> |
| | | <span>{{ i.itemName }}</span> |
| | | <!-- <span>{{ i.typeDesc }}</span>--> |
| | | <div v-if="i.measure !== null"> |
| | | <div> |
| | | <span>作业类型:</span><span>{{ i.measure.workTypeDesc }}</span> |
| | | </div> |
| | | <div> |
| | | <span>措施内容:</span><span>{{ i.measure.context }}</span> |
| | | </div> |
| | | </div> |
| | | <div v-if="i.stand !== null"> |
| | | <div> |
| | | <span>标题名称:</span><span>{{ i.stand.title }}</span> |
| | | </div> |
| | | <div> |
| | | <span>标准内容:</span><span>{{ i.stand.typeDesc }}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="text" v-show="item.expFinishApprovalTime != null"> |
| | | 期望结束时间:<span>{{ item.expFinishApprovalTime }}</span> |
| | | </div> |
| | | <div class="text" v-show="item.finishApprovalTime != null"> |
| | | 结束时间:<span>{{ item.finishApprovalTime }}</span> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog v-model="deleteDialog" title="提示" width="30%" center> |
| | | <span>您确定要终止该条审批吗?</span> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button @click="deleteDialog = false" size="default">取消</el-button> |
| | | <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button> |
| | | </span> |
| | | </template> |
| | | </el-dialog> |
| | | <!-- </el-tab-pane>--> |
| | | <!-- <el-tab-pane label="已通过" name="2">--> |
| | | <!-- <div style="height: 100%">--> |
| | | <!-- <el-row class="homeCard">--> |
| | | <!-- <el-col :span="8">--> |
| | | <!-- <div class="grid-content topInfo">--> |
| | | <!-- <el-input v-model="searchWord" placeholder="作业证名称"></el-input>--> |
| | | <!-- <el-button type="primary">查询</el-button>--> |
| | | <!-- <el-button plain>重置</el-button>--> |
| | | <!-- </div>--> |
| | | <!-- </el-col>--> |
| | | <!-- </el-row>--> |
| | | <!-- <div class="homeCard">--> |
| | | <!-- <div class="main-card">--> |
| | | <!-- <el-table ref="multipleTableRef" :data="passedData" style="width: 100%" height="calc(100% - 48px)" :header-cell-style="{ background: '#fafafa' }" @selection-change="handleSelectionChange">--> |
| | | <!-- <el-table-column type="selection" width="55" />--> |
| | | <!-- <el-table-column type="index" label="编号" width="200" />--> |
| | | <!-- <el-table-column property="level" label="作业证等级" width="180" sortable />--> |
| | | <!-- <el-table-column property="applyDate" label="申请日期" sortable />--> |
| | | <!-- <el-table-column property="name" label="申请人" width="180" />--> |
| | | <!-- <el-table-column property="department" label="申请部门" width="180" />--> |
| | | <!-- <el-table-column label="申请状态" width="180">--> |
| | | <!-- <template slot-scope="scope">--> |
| | | <!-- <el-tag type="success">{{ scope.row.status }}</el-tag>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <!-- </el-table>--> |
| | | <!-- <div class="pageBtn">--> |
| | | <!-- <el-pagination v-model:currentPage="pageIndex2" v-model:page-size="pageSize2" :page-sizes="[10, 15]" small="false" background layout="total, sizes, prev, pager, next, jumper" :total="totalSize2" @size-change="handleSizeChange2" @current-change="handleCurrentChange2" />--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- </el-tab-pane>--> |
| | | <!-- </el-tabs>--> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: "index" |
| | | } |
| | | import fire from './components/fireLog' |
| | | import space from './components/spaceLog' |
| | | import hoist from './components/hoistLog' |
| | | import ground from './components/groundLog' |
| | | import broken from './components/brokenLog' |
| | | import height from './components/heightLog' |
| | | import power from './components/powerLog' |
| | | import plate from './components/plateLog' |
| | | import {getDepartmentList} from "../../../../api/departmentManage"; |
| | | import {workApprovalApi} from "../../../../api/workApproval"; |
| | | |
| | | export default{ |
| | | name: 'myApproval', |
| | | components: { |
| | | fire, |
| | | space, |
| | | hoist, |
| | | ground, |
| | | broken, |
| | | height, |
| | | power, |
| | | plate |
| | | }, |
| | | data() { |
| | | return { |
| | | pageIndex1: 1, |
| | | pageSize1: 10, |
| | | totalSize1: 0, |
| | | dialogType: null, |
| | | activeName: '1', |
| | | departmentList: [], |
| | | departmentRecursionList: [], |
| | | chosenIndex: null, |
| | | searchWord: '', |
| | | applyData: [], |
| | | workTimeList: [], |
| | | multipleSelection: [], |
| | | approveInfo: { |
| | | approvalSteps: [], |
| | | operators: [] |
| | | }, |
| | | dialogDetails: false, |
| | | dialogStatus: false, |
| | | deleteDialog: false, |
| | | addRecord: {}, |
| | | details: {}, |
| | | statusInfo: {}, |
| | | deleteId: null, |
| | | deleteArr: [], |
| | | workType: [ |
| | | { id: 1, name: '动火作业' }, |
| | | { id: 2, name: '受限空间作业' }, |
| | | { id: 3, name: '吊装作业' }, |
| | | { id: 4, name: '动土作业' }, |
| | | { id: 5, name: '断路作业' }, |
| | | { id: 6, name: '高处作业' }, |
| | | { id: 7, name: '临时用电作业' }, |
| | | { id: 8, name: '盲板抽堵作业' } |
| | | ], |
| | | } |
| | | }, |
| | | methods:{ |
| | | async getListByPage() { |
| | | const data = { pageSize: this.pageSize1, pageIndex: this.pageIndex1, searchParams: { workType: this.searchWord } }; |
| | | let res = await workApprovalApi().getApprovalListPage(data); |
| | | if (res.data.code === '200') { |
| | | this.applyData = JSON.parse(JSON.stringify(res.data.data)); |
| | | this.applyData = this.applyData.map((item) => { |
| | | if (item.operators == null || item.operators == []) { |
| | | item.operators = []; |
| | | } else { |
| | | item.operators = Array.from(item.operators, ({ operatorUname }) => operatorUname); |
| | | } |
| | | return item; |
| | | }); |
| | | this.totalSize1 = res.data.total; |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | reLoadData() { |
| | | this.getListByPage(); |
| | | }, |
| | | |
| | | toApply() { |
| | | this.$router.push({ |
| | | path: 'workApply' |
| | | }); |
| | | }, |
| | | |
| | | handleClick(tab, event) { |
| | | console.log(tab, event); |
| | | }, |
| | | |
| | | async getAllDepartment() { |
| | | let res = await getDepartmentList({pageSize:1000,pageIndex:1}) |
| | | if(res.data.code === '200'){ |
| | | this.departmentList = res.data.result.result |
| | | this.recursion(this.departmentList); |
| | | }else{ |
| | | this.$message({ |
| | | message:res.data.message, |
| | | type:'warning' |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | recursion(value) { |
| | | for (let i of value) { |
| | | if (i.children.length !== 0) { |
| | | this.departmentRecursionList.push(i); |
| | | this.recursion(i.children); |
| | | } else { |
| | | this.departmentRecursionList.push(i); |
| | | } |
| | | } |
| | | }, |
| | | |
| | | searchRecord() { |
| | | if (this.searchWord == '') { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: '请输入查询关键词' |
| | | }); |
| | | } else { |
| | | this.getListByPage(); |
| | | } |
| | | }, |
| | | |
| | | clearSearch() { |
| | | this.searchWord = ''; |
| | | this.getListByPage(); |
| | | }, |
| | | |
| | | viewStatus(row) { |
| | | this.getStatus({ workApplyId: row.workApplyId }); |
| | | this.dialogStatus = true; |
| | | }, |
| | | |
| | | async getStatus(data) { |
| | | let res = await workApprovalApi().getApprovalStatus(data); |
| | | if (res.data.code === '200') { |
| | | this.approveInfo = JSON.parse(JSON.stringify(res.data.data)); |
| | | this.approveInfo.operators = Array.from(this.approveInfo.operators, ({ operatorUname }) => operatorUname); |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | deleteRecordBtn(row) { |
| | | this.deleteId = row.workApplyId; |
| | | this.deleteDialog = true; |
| | | }, |
| | | |
| | | async deleteRecord(data) { |
| | | let res = await workApprovalApi().postAbord(data); |
| | | if (res.data.code === '200') { |
| | | this.$message({ |
| | | type: 'success', |
| | | message: res.data.msg |
| | | }); |
| | | this.getListByPage(); |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | conFirmDelete() { |
| | | this.deleteRecord({ workApplyId: this.deleteId }); |
| | | this.deleteDialog = false; |
| | | }, |
| | | |
| | | handleSizeChange1(val) { |
| | | this.pageSize1 = val; |
| | | this.getListByPage(); |
| | | }, |
| | | |
| | | handleCurrentChange1(val) { |
| | | this.pageIndex1 = val; |
| | | this.getListByPage(); |
| | | }, |
| | | |
| | | // 查看记录 |
| | | viewRecord(row) { |
| | | this.dialogType = row.workType |
| | | this.details = JSON.parse(JSON.stringify(row)); |
| | | // getApprovalData(this.details.workApplyId) |
| | | if(this.details.workDetail.otherSpecialWork == '' || !this.details.workDetail.otherSpecialWork){ |
| | | this.details.workDetail.otherSpecialWork = '' |
| | | } |
| | | else { |
| | | const a = this.details.workDetail.otherSpecialWork |
| | | this.details.workDetail.otherSpecialWork = a.split(',').map((item) => { |
| | | return this.workType.find((i) => i.id === Number(item)).name; |
| | | }).join('、'); |
| | | } |
| | | if(this.details.workDetail.involvedDepIds == '' || !this.details.workDetail.involvedDepIds){ |
| | | this.details.workDetail.involvedDepIds = '' |
| | | } |
| | | else { |
| | | const a = this.details.workDetail.involvedDepIds |
| | | this.details.workDetail.involvedDepIds = a.split(',').map((item) => { |
| | | return this.departmentRecursionList.find((i) => i.depId === Number(item)).depName; |
| | | }).join('、'); |
| | | } |
| | | this.dialogDetails = true; |
| | | }, |
| | | |
| | | }, |
| | | |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | <style scoped lang="scss"> |
| | | $homeNavLengh: 8; |
| | | .home-container { |
| | | height: calc(100vh - 144px); |
| | | box-sizing: border-box; |
| | | overflow: hidden; |
| | | .demo-tabs { |
| | | width: 100%; |
| | | height: 100%; |
| | | |
| | | &::v-deep(.el-tabs__content) { |
| | | height: calc(100% - 60px); |
| | | } |
| | | |
| | | .el-tab-pane { |
| | | height: 100%; |
| | | } |
| | | } |
| | | .homeCard { |
| | | width: 100%; |
| | | padding: 20px; |
| | | box-sizing: border-box; |
| | | background: #fff; |
| | | border-radius: 4px; |
| | | |
| | | .main-card { |
| | | width: 100%; |
| | | height: 100%; |
| | | .cardTop { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | margin-bottom: 20px; |
| | | .mainCardBtn { |
| | | margin: 0; |
| | | } |
| | | } |
| | | .pageBtn { |
| | | height: 60px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: right; |
| | | |
| | | .demo-pagination-block + .demo-pagination-block { |
| | | margin-top: 10px; |
| | | } |
| | | .demo-pagination-block .demonstration { |
| | | margin-bottom: 16px; |
| | | } |
| | | } |
| | | } |
| | | &:last-of-type { |
| | | height: calc(100% - 100px); |
| | | } |
| | | } |
| | | .stepItem { |
| | | display: flex; |
| | | align-items: flex-start; |
| | | margin-top: 30px; |
| | | margin-left: 30px; |
| | | padding-bottom: 30px; |
| | | padding-left: 40px; |
| | | border-left: 1px solid #a0cfff; |
| | | position: relative; |
| | | &:first-of-type { |
| | | margin-top: 30px; |
| | | } |
| | | &:first-of-type { |
| | | margin-bottom: 0; |
| | | border-left: none; |
| | | } |
| | | .stepNum { |
| | | position: absolute; |
| | | width: 40px; |
| | | height: 40px; |
| | | border-radius: 20px; |
| | | box-sizing: border-box; |
| | | font-size: 18px; |
| | | color: #333; |
| | | border: 1px solid #a0cfff; |
| | | line-height: 38px; |
| | | text-align: center; |
| | | left: -20px; |
| | | top: -30px; |
| | | background: #d9ecff; |
| | | } |
| | | .stepCard { |
| | | width: 100%; |
| | | margin-top: -30px; |
| | | |
| | | .box-card { |
| | | width: 100%; |
| | | |
| | | .card-header { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | |
| | | span { |
| | | font-weight: bold; |
| | | margin-left: 10px; |
| | | } |
| | | } |
| | | |
| | | .text { |
| | | width: 100%; |
| | | font-size: 14px; |
| | | margin-bottom: 10px; |
| | | padding-left: 10px; |
| | | |
| | | span { |
| | | font-weight: bolder; |
| | | color: #409eff; |
| | | } |
| | | |
| | | &:last-of-type { |
| | | margin-bottom: 0; |
| | | } |
| | | } |
| | | .approveUnit { |
| | | width: 100%; |
| | | font-size: 14px; |
| | | margin-bottom: 20px; |
| | | padding: 10px 15px; |
| | | border: 1px solid #fff; |
| | | background: #ecf8ff; |
| | | border-radius: 6px; |
| | | .item-tit { |
| | | width: 100%; |
| | | display: flex; |
| | | color: #409eff; |
| | | align-items: flex-start; |
| | | justify-content: space-between; |
| | | padding-bottom: 10px; |
| | | border-bottom: 1px solid #a0cfff; |
| | | |
| | | & > span { |
| | | flex: 1; |
| | | &:last-of-type{ |
| | | text-align: center; |
| | | } |
| | | } |
| | | & > div { |
| | | flex: 1; |
| | | text-align: center; |
| | | } |
| | | } |
| | | .item-cont { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | padding: 10px 0; |
| | | border-bottom: 1px solid #c6e2ff; |
| | | |
| | | & > span { |
| | | flex: 1; |
| | | &:last-of-type{ |
| | | text-align: center; |
| | | } |
| | | } |
| | | & > div { |
| | | flex: 1; |
| | | text-align: center; |
| | | |
| | | & > div { |
| | | text-align: left; |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | span { |
| | | width: 45%; |
| | | &:first-of-type { |
| | | width: 30%; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | &:last-of-type { |
| | | border-bottom: 0; |
| | | } |
| | | } |
| | | } |
| | | .approveItem { |
| | | width: 100%; |
| | | font-size: 14px; |
| | | margin-bottom: 20px; |
| | | padding: 10px 15px; |
| | | background: #ecf8ff; |
| | | border: 1px solid #fff; |
| | | border-radius: 6px; |
| | | .item-tit { |
| | | width: 100%; |
| | | display: flex; |
| | | color: #409eff; |
| | | align-items: flex-start; |
| | | justify-content: space-between; |
| | | padding-bottom: 10px; |
| | | border-bottom: 1px solid #a0cfff; |
| | | |
| | | & > span { |
| | | flex: 1; |
| | | } |
| | | & > div { |
| | | flex: 2; |
| | | text-align: center; |
| | | } |
| | | } |
| | | .item-cont { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | padding: 10px 0; |
| | | border-bottom: 1px solid #c6e2ff; |
| | | |
| | | & > span { |
| | | flex: 1; |
| | | } |
| | | & > div { |
| | | flex: 2; |
| | | text-align: center; |
| | | |
| | | & > div { |
| | | text-align: left; |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: flex-start; |
| | | margin-bottom: 10px; |
| | | span { |
| | | width: 50%; |
| | | &:first-of-type { |
| | | width: 25%; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | &:last-of-type { |
| | | border-bottom: 0; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | &:hover .card-header { |
| | | color: #0098f5; |
| | | } |
| | | &:hover .stepNum { |
| | | border: 2px solid #0098f5; |
| | | color: #0098f5; |
| | | } |
| | | } |
| | | .el-row { |
| | | display: flex; |
| | | align-items: center; |
| | | margin-bottom: 20px; |
| | | &:last-child { |
| | | margin-bottom: 0; |
| | | } |
| | | .grid-content { |
| | | align-items: center; |
| | | min-height: 36px; |
| | | } |
| | | |
| | | .topInfo { |
| | | display: flex; |
| | | align-items: center; |
| | | font-size: 16px; |
| | | font-weight: bold; |
| | | |
| | | & > div { |
| | | white-space: nowrap; |
| | | margin-right: 20px; |
| | | } |
| | | } |
| | | } |
| | | .el-card { |
| | | border: 0; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <el-form-item label="涉及相关部门"> |
| | | <el-input v-model="details.workDetail.involvedDepIds" readonly type="textarea"/> |
| | | </el-form-item> |
| | | <el-form-item label="图片"> |
| | | <el-image v-for="item in details.workDetail.bcPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="图片">--> |
| | | <!-- <el-image v-for="item in details.workDetail.bcPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="期望开始时间"> |
| | | <el-input v-model="details.expStartTime" readonly /> |
| | | </el-form-item> |
| | |
| | | <el-form-item label="关联其他作业"> |
| | | <el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea"/> |
| | | </el-form-item> |
| | | <el-form-item label="图片"> |
| | | <el-image v-for="item in details.workDetail.gbPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="图片">--> |
| | | <!-- <el-image v-for="item in details.workDetail.gbPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="期望开始时间"> |
| | | <el-input v-model="details.expStartTime" readonly /> |
| | | </el-form-item> |
| | |
| | | return{ |
| | | |
| | | } |
| | | }, |
| | | created(){ |
| | | debugger |
| | | console.log(this.details); |
| | | } |
| | | }; |
| | | </script> |
| | |
| | | <el-form-item label="关联其他作业"> |
| | | <el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea"/> |
| | | </el-form-item> |
| | | <el-form-item label="盲板位置图"> |
| | | <el-image v-for="item in details.workDetail.bpLocationMapPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="盲板位置图">--> |
| | | <!-- <el-image v-for="item in details.workDetail.bpLocationMapPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="期望开始时间"> |
| | | <el-input v-model="details.expStartTime" readonly /> |
| | | </el-form-item> |
| | |
| | | return{ |
| | | |
| | | } |
| | | }, |
| | | created(){ |
| | | console.log(this.details); |
| | | } |
| | | }; |
| | | </script> |
| | |
| | | return{ |
| | | |
| | | } |
| | | }, |
| | | methods:{ |
| | | } |
| | | }; |
| | | </script> |
| | |
| | | <div class="main-card"> |
| | | <el-row class="cardTop"> |
| | | <el-col :span="24" class="mainCardBtn"> |
| | | <el-button type="primary" size="default" @click="toApply()">申请</el-button> |
| | | <!-- <el-button type="primary" size="default" @click="toApply()">申请</el-button>--> |
| | | <!-- <el-button type="danger" :icon="Delete" size="default">删除</el-button>--> |
| | | <!-- <el-button type="success" size="default">设置分类</el-button>--> |
| | | </el-col> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-dialog v-model="dialogDetails" title="作业申请详情" center> |
| | | <el-dialog :visible.sync="dialogDetails" title="作业申请详情" center> |
| | | <fire v-if="dialogType == 1" :details = details></fire> |
| | | <space v-else-if="dialogType == 2" :details = details></space> |
| | | <hoist v-else-if="dialogType == 3" :details = details></hoist> |
| | | <ground v-else-if="dialogType == 4" :details = details></ground> |
| | | <broken v-else-if="dialogType == 5" :details = details></broken> |
| | | <height v-else-if="dialogType == 6" :details = details></height> |
| | | <power v-else-if="dialogType == 7" :details = details></power> |
| | | <plate v-else :details = details></plate> |
| | | <space v-if="dialogType == 2" :details = details></space> |
| | | <hoist v-if="dialogType == 3" :details = details></hoist> |
| | | <ground v-if="dialogType == 4" :details = details></ground> |
| | | <broken v-if="dialogType == 5" :details = details></broken> |
| | | <height v-if="dialogType == 6" :details = details></height> |
| | | <power v-if="dialogType == 7" :details = details></power> |
| | | <plate v-if="dialogType == 8" :details = details></plate> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <div class="dialog-footer" align="right"> |
| | | <el-button type="primary" @click="dialogDetails = false" |
| | | >确认</el-button |
| | | > |
| | | </span> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | <el-dialog v-model="dialogStatus" title="作业申请进度" width="60%"> |
| | | <el-dialog :visible.sync="dialogStatus" title="作业申请进度" width="60%"> |
| | | <el-form v-if="approveInfo.operators.length > 0" style="margin-bottom: 40px"> |
| | | <el-form-item label="申请作业人"> |
| | | <el-input v-model="approveInfo.operators" readonly type="textarea" /> |
| | |
| | | </div> |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog v-model="deleteDialog" title="提示" width="30%" center> |
| | | <el-dialog :visible.sync="deleteDialog" title="提示" width="30%" center> |
| | | <span>您确定要取消该条申请吗?</span> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | |
| | | ] |
| | | } |
| | | }, |
| | | created(){ |
| | | this.getListByPage() |
| | | }, |
| | | methods:{ |
| | | async getListByPage() { |
| | | const data = { pageSize: this.pageSize1, pageIndex: this.pageIndex1, searchParams: { workType: this.searchWord } }; |
| | |
| | | let res = await workApplyApi().getStatus(data); |
| | | if (res.data.code === '200') { |
| | | this.approveInfo = JSON.parse(JSON.stringify(res.data.data)); |
| | | this.approveInfo.operators = Array.from(this.approveInfo.operators, ({ operatorUname }) => operatorUname); |
| | | console.log(this.approveInfo, 'steps'); |
| | | this.approveInfo.operators = this.approveInfo.operators.map(item => { |
| | | return item.operatorUname |
| | | }).join('、') |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | |
| | | viewRecord(row) { |
| | | this.dialogType = row.workType |
| | | this.details = JSON.parse(JSON.stringify(row)); |
| | | this.details.operators = this.details.operators.join('、') |
| | | if(this.details.workDetail.otherSpecialWork == '' || !this.details.workDetail.otherSpecialWork){ |
| | | this.details.workDetail.otherSpecialWork=[] |
| | | this.details.workDetail.otherSpecialWork = '' |
| | | } |
| | | else { |
| | | console.log(this.details.workDetail.otherSpecialWork,'split') |
| | | const a = this.details.workDetail.otherSpecialWork |
| | | this.details.workDetail.otherSpecialWork = a.split(',').map((item) => { |
| | | return this.workType.find((i) => i.id === Number(item)).name; |
| | | }); |
| | | }).join('、'); |
| | | } |
| | | if(this.details.workDetail.involvedDepIds == '' || !this.details.workDetail.involvedDepIds){ |
| | | this.details.workDetail.involvedDepIds=[] |
| | | this.details.workDetail.involvedDepIds = '' |
| | | } |
| | | else { |
| | | const a = this.details.workDetail.involvedDepIds |
| | | this.details.workDetail.involvedDepIds = a.split(',').map((item) => { |
| | | return this.departmentRecursionList.find((i) => i.depId === Number(item)).depName; |
| | | }); |
| | | }).join('、'); |
| | | } |
| | | if(this.details.workDetail.gbPath){ |
| | | this.details.workDetail.gbPath = this.details.workDetail.gbPath.split(',') |
| | |
| | | <el-select v-model="form.operatorUids" multiple> |
| | | <el-option |
| | | v-for="item in workerList" |
| | | :key="item.uid" |
| | | :label="item.username" |
| | | :value="item.uid" |
| | | :key="item.id" |
| | | :label="item.realname" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业内容" prop="workContent"> |
| | | <el-input |
| | | v-model="form.workContent" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入作业内容" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业时间" prop="workTimeLine"> |
| | | <el-date-picker |
| | | v-model="form.workTimeLine" |
| | | format="YYYY-MM-DD HH:mm" |
| | | value-format="YYYY-MM-DD HH:mm:00" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | type="datetimerange" |
| | | range-separator="至" |
| | | start-placeholder="开始时间" |
| | |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业内容" prop="workContent"> |
| | | <el-input |
| | | v-model="form.workContent" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入作业内容" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业地址" prop="workLocation"> |
| | | <el-input |
| | | v-model="form.workLocation" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入作业地址" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业地址" prop="workLocation"> |
| | | <el-input |
| | | v-model="form.workLocation" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入作业地址" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | |
| | |
| | | <el-form-item label="作业单位" prop="workDetail.operationDepId"> |
| | | <el-select v-model="form.workDetail.operationDepId"> |
| | | <el-option |
| | | v-for="item in csDepList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | v-for="item in departList" |
| | | :key="item.id" |
| | | :label="item.department" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="涉及相关部门" prop="workDetail.involvedDepIds"> |
| | | <el-cascader v-model="form.workDetail.involvedDepIds" :options="departList" :props="casProps" :show-all-levels="false" @change="handleChange" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="危险辨识" prop="hazardIdentification"> |
| | | <el-input |
| | | v-model="form.hazardIdentification" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入危险辨识" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="图片上传" prop="workDetail.bcPath"> |
| | | <el-upload accept="image/*" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='imgLimit' v-model:file-list="fileList" :http-request="upload" :action="uploadUrl" list-type="picture-card" :on-remove="handleRemove" :before-remove="beforeRemove" :before-upload="getUploadUrl"> |
| | | <el-icon><Plus /></el-icon> |
| | | <template #tip> |
| | | <div class="el-upload__tip">上传jpg/png图片尺寸小于500KB,最多可上传5张</div> |
| | | </template> |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="涉及相关部门" prop="workDetail.involvedDepIds"> |
| | | <el-select v-model="form.workDetail.involvedDepIds"> |
| | | <el-option |
| | | v-for="item in departList" |
| | | :key="item.id" |
| | | :label="item.department" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24"> |
| | | <el-form-item label="隐患上报图" prop="img"> |
| | | <el-upload |
| | | accept=".pdf,.jpg,.png" |
| | | :action="fileRoad" |
| | | class="upload-demo" |
| | | ref="upload" |
| | | :headers="header" |
| | | :data="uploadForm" |
| | | list-type="picture-card" |
| | | :file-list="fileList" |
| | | v-model="form.workDetail.gbPath" |
| | | :on-change="handleChangeFile" |
| | | :on-success="onFileSuccess" |
| | | :multiple="false" |
| | | :auto-upload="true"> |
| | | <i slot="default" class="el-icon-plus"></i> |
| | | <div slot="file" slot-scope="{file}"> |
| | | <img |
| | | class="el-upload-list__item-thumbnail" |
| | | :src="file.url" alt="" |
| | | > |
| | | <span class="el-upload-list__item-actions"> |
| | | <span |
| | | class="el-upload-list__item-preview" |
| | | @click="handleFile(file)" |
| | | > |
| | | <i class="el-icon-zoom-in"></i> |
| | | </span> |
| | | <span |
| | | v-if="!disabled" |
| | | class="el-upload-list__item-delete" |
| | | @click="handleRemove(file,file.$index)" |
| | | > |
| | | <i class="el-icon-delete"></i> |
| | | </span> |
| | | </span> |
| | | </div> |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </el-form> |
| | | <div class="applyBtn"> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | export default{ |
| | | import {workApplyApi} from "../../../../../api/workApply"; |
| | | import Cookies from "_js-cookie@2.2.0@js-cookie"; |
| | | |
| | | export default{ |
| | | name: 'brokenForm', |
| | | components: {}, |
| | | props:['workerList','departList'], |
| | | data(){ |
| | | return{ |
| | | fileRoad:process.env.BASE_API + '/task/web/upload', |
| | | uploadForm:{ |
| | | }, |
| | | header:{Authorization:''}, |
| | | fileList:[], |
| | | disabled:false, |
| | | form: { |
| | | operatorUids: [], |
| | | workType: 5, |
| | |
| | | }, |
| | | workTimeLine: [], |
| | | expStartTime: '', |
| | | hazardIdentification: '', |
| | | expEndTime: '' |
| | | }, |
| | | fileList: [], |
| | | imgLimit: 5, |
| | | uploadUrl: '', |
| | | dialogVisible: false, |
| | |
| | | multiple: true |
| | | }, |
| | | applyRules:{ |
| | | operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'change' }], |
| | | workType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | "workDetail.operationDepId": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | "workDetail.bcReason": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | |
| | | } |
| | | }, |
| | | methods:{ |
| | | async submitForm(formEl) { |
| | | if (!formEl) return |
| | | await formEl.validate(async (valid, fields) => { |
| | | submitForm(formEl) { |
| | | this.$refs["ruleFormRef"].validate(async (valid, fields) => { |
| | | if (valid) { |
| | | state.form.expStartTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[0] |
| | | state.form.expEndTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[1] |
| | | let { workTimeLine, ...data } = JSON.parse(JSON.stringify(state.form)) |
| | | data.workDetail.involvedDepIds = data.workDetail.involvedDepIds.join(',') |
| | | data.workDetail.bcPath = data.workDetail.bcPath.join(',') |
| | | this.form.expStartTime = JSON.parse(JSON.stringify(this.form.workTimeLine))[0] |
| | | this.form.expEndTime = JSON.parse(JSON.stringify(this.form.workTimeLine))[1] |
| | | let { workTimeLine, ...data } = JSON.parse(JSON.stringify(this.form)) |
| | | data.workDetail.involvedDepIds = data.workDetail.involvedDepIds.toString() |
| | | data.workDetail.bcPath = JSON.stringify(this.fileList.map(item => { return item.url.substring(process.env.IMG_API.length) })) |
| | | const res = await workApplyApi().postBrokenApply(data) |
| | | if (res.data.code === '200') { |
| | | ElMessage({ |
| | | this.$message({ |
| | | type: 'success', |
| | | message: '提交成功!' |
| | | }); |
| | | formEl.resetFields() |
| | | state.form.workDetail.bcPath = [] |
| | | state.fileList = [] |
| | | this.$refs["ruleFormRef"].clearValidate() |
| | | this.form = { |
| | | operatorUids: [], |
| | | workType: 5, |
| | | workLevel: 0, |
| | | workContent: '', |
| | | workLocation: '', |
| | | workDetail:{ |
| | | operationDepId: null, |
| | | bcReason: '', |
| | | bcExplain: '', |
| | | bcPath: [], |
| | | involvedDepIds: [] |
| | | }, |
| | | workTimeLine: [], |
| | | expStartTime: '', |
| | | hazardIdentification: '', |
| | | expEndTime: '' |
| | | } |
| | | this.fileList = [] |
| | | } else { |
| | | ElMessage({ |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }); |
| | |
| | | console.log('error submit!', fields) |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | |
| | | handleChangeFile(){ |
| | | this.header.Authorization = Cookies.get('token') |
| | | }, |
| | | onFileSuccess(response){ |
| | | if(response.code === '200'){ |
| | | this.fileList.push({url:process.env.IMG_API + response.result.path}) |
| | | this.$notify({ |
| | | type:'success', |
| | | duration:2000, |
| | | message:'上传成功', |
| | | title:'成功', |
| | | }) |
| | | }else{ |
| | | this.$message({ |
| | | message:res.data.message, |
| | | type:'warning' |
| | | }) |
| | | } |
| | | }, |
| | | handleFile(file){ |
| | | this.dialogImageUrl = file.url; |
| | | this.dialogVisible = true; |
| | | }, |
| | | showImg(file){ |
| | | window.open(file, '_blank') |
| | | }, |
| | | handleRemove(file,value){ |
| | | return this.$confirm(`确定移除 ${ file.uid }?`,'提示',{ |
| | | confirmButtonText:'确定', |
| | | cancelButtonText:'取消', |
| | | type:'warning', |
| | | }).then(()=> { |
| | | this.fileList.splice(value,1) |
| | | }) |
| | | }, |
| | | }, |
| | | |
| | | }; |
| | | </script> |
| | | |
| | |
| | | <el-form-item label="作业时间" prop="workTimeLine"> |
| | | <el-date-picker |
| | | v-model="form.workTimeLine" |
| | | value-format="yyyy-MM-dd HH:mm:00" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | type="datetimerange" |
| | | range-separator="至" |
| | | start-placeholder="开始时间" |
| | |
| | | <el-select v-model="form.operatorUids" multiple> |
| | | <el-option |
| | | v-for="item in workerList" |
| | | :key="item.uid" |
| | | :label="item.username" |
| | | :value="item.uid" |
| | | :key="item.id" |
| | | :label="item.realname" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业内容" prop="workContent"> |
| | | <el-input |
| | | v-model="form.workContent" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入作业内容" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业时间" prop="workTimeLine"> |
| | | <el-date-picker |
| | | v-model="form.workTimeLine" |
| | | format="YYYY-MM-DD HH:mm" |
| | | value-format="YYYY-MM-DD HH:mm:00" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | type="datetimerange" |
| | | range-separator="至" |
| | | start-placeholder="开始时间" |
| | |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业内容" prop="workContent"> |
| | | <el-input |
| | | v-model="form.workContent" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入作业内容" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业地址" prop="workLocation"> |
| | | <el-input |
| | | v-model="form.workLocation" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入作业地址" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业地址" prop="workLocation"> |
| | | <el-input |
| | | v-model="form.workLocation" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入作业地址" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业单位" prop="workDetail.operationDepId"> |
| | | <el-select v-model="form.workDetail.operationDepId"> |
| | | <el-option |
| | | v-for="item in csDepList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | v-for="item in departList" |
| | | :key="item.id" |
| | | :label="item.department" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="动土方式" prop="workDetail.gbMethod"> |
| | | <el-input |
| | | v-model="form.workDetail.gbMethod" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="危险辨识" prop="hazardIdentification"> |
| | | <el-input |
| | | v-model="form.hazardIdentification" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入危险辨识" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | |
| | | <el-col :span="12"> |
| | | <el-form-item label="关联作业" prop="workDetail.otherSpecialWork"> |
| | | <el-select v-model="form.workDetail.otherSpecialWork" multiple> |
| | | <el-option v-for="item in otherWorkList" :key="item.value" :label="item.label" :value="item.value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="动土方式" prop="workDetail.gbMethod"> |
| | | <el-input |
| | | v-model="form.workDetail.gbMethod" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="关联作业" prop="workDetail.otherSpecialWork"> |
| | | <el-select v-model="form.workDetail.otherSpecialWork" multiple> |
| | | <el-option v-for="item in otherWorkList" :key="item.value" :label="item.label" :value="item.value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="图片上传" prop="workDetail.gbPath"> |
| | | <el-upload accept="image/*" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='imgLimit' v-model:file-list="fileList" :http-request="upload" :action="uploadUrl" list-type="picture-card" :on-remove="handleRemove" :before-remove="beforeRemove" :before-upload="getUploadUrl"> |
| | | <el-icon><Plus /></el-icon> |
| | | <template #tip> |
| | | <div class="el-upload__tip">上传jpg/png图片尺寸小于500KB,最多可上传5张</div> |
| | | </template> |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24"> |
| | | <el-form-item label="隐患上报图" prop="img"> |
| | | <el-upload |
| | | accept=".pdf,.jpg,.png" |
| | | :action="fileRoad" |
| | | class="upload-demo" |
| | | ref="upload" |
| | | :headers="header" |
| | | :data="uploadForm" |
| | | list-type="picture-card" |
| | | :file-list="fileList" |
| | | v-model="form.workDetail.gbPath" |
| | | :on-change="handleChangeFile" |
| | | :on-success="onFileSuccess" |
| | | :multiple="false" |
| | | :auto-upload="true"> |
| | | <i slot="default" class="el-icon-plus"></i> |
| | | <div slot="file" slot-scope="{file}"> |
| | | <img |
| | | class="el-upload-list__item-thumbnail" |
| | | :src="file.url" alt="" |
| | | > |
| | | <span class="el-upload-list__item-actions"> |
| | | <span |
| | | class="el-upload-list__item-preview" |
| | | @click="handleFile(file)" |
| | | > |
| | | <i class="el-icon-zoom-in"></i> |
| | | </span> |
| | | <span |
| | | v-if="!disabled" |
| | | class="el-upload-list__item-delete" |
| | | @click="handleRemove(file,file.$index)" |
| | | > |
| | | <i class="el-icon-delete"></i> |
| | | </span> |
| | | </span> |
| | | </div> |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </el-form> |
| | | <div class="applyBtn"> |
| | | <el-button type="primary" size="large" plain @click="submitForm(ruleFormRef)">发起申请</el-button> |
| | | <el-button type="primary" size="large" plain @click="submitForm()">发起申请</el-button> |
| | | </div> |
| | | </div> |
| | | <el-dialog v-model="dialogVisible"> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | import Cookies from "_js-cookie@2.2.0@js-cookie"; |
| | | import {workApplyApi} from "../../../../../api/workApply"; |
| | | |
| | | export default { |
| | | name: 'groundForm', |
| | | components: {}, |
| | | props:['workerList'], |
| | | props:['workerList','departList'], |
| | | data(){ |
| | | return{ |
| | | fileRoad:process.env.BASE_API + '/task/web/upload', |
| | | uploadForm:{ |
| | | }, |
| | | header:{Authorization:''}, |
| | | fileList:[], |
| | | disabled:false, |
| | | form: { |
| | | operatorUids: [], |
| | | workType: 4, |
| | |
| | | expStartTime: '', |
| | | expEndTime: '' |
| | | }, |
| | | fileList: [], |
| | | imgLimit: 5, |
| | | uploadUrl: '', |
| | | dialogVisible: false, |
| | |
| | | } |
| | | ], |
| | | applyRules:{ |
| | | operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'change' }], |
| | | workType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | "workDetail.operationDepId": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | |
| | | } |
| | | }, |
| | | methods:{ |
| | | async submitForm(formEl) { |
| | | if (!formEl) return |
| | | await formEl.validate(async (valid, fields) => { |
| | | submitForm() { |
| | | this.$refs["ruleFormRef"].validate(async (valid, fields) => { |
| | | if (valid) { |
| | | state.form.expStartTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[0] |
| | | state.form.expEndTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[1] |
| | | let { workTimeLine, ...data } = JSON.parse(JSON.stringify(state.form)) |
| | | this.form.expStartTime = JSON.parse(JSON.stringify(this.form.workTimeLine))[0] |
| | | this.form.expEndTime = JSON.parse(JSON.stringify(this.form.workTimeLine))[1] |
| | | let { workTimeLine, ...data } = JSON.parse(JSON.stringify(this.form)) |
| | | data.workDetail.otherSpecialWork = data.workDetail.otherSpecialWork.join(',') |
| | | data.workDetail.gbPath = data.workDetail.gbPath.join(',') |
| | | data.workDetail.gbPath = JSON.stringify(this.fileList.map(item => { return item.url.substring(process.env.IMG_API.length) })) |
| | | const res = await workApplyApi().postGroundApply(data) |
| | | if (res.data.code === '200') { |
| | | ElMessage({ |
| | | this.$message({ |
| | | type: 'success', |
| | | message: '提交成功!' |
| | | }); |
| | | formEl.resetFields() |
| | | state.form.workDetail.gbPath = [] |
| | | state.fileList = [] |
| | | this.$refs["ruleFormRef"].clearValidate() |
| | | this.form = { |
| | | operatorUids: [], |
| | | workType: 2, |
| | | workLevel: 0, |
| | | workContent: '', |
| | | workLocation: '', |
| | | workDetail:{ |
| | | csDepId: null, |
| | | csName: '', |
| | | csOriginalName: '', |
| | | otherSpecialWork: [] |
| | | }, |
| | | workTimeLine: [], |
| | | expStartTime: '', |
| | | hazardIdentification: '', |
| | | expEndTime: '' |
| | | } |
| | | this.fileList = [] |
| | | } else { |
| | | ElMessage({ |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }); |
| | |
| | | console.log('error submit!', fields) |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | |
| | | handleChangeFile(){ |
| | | this.header.Authorization = Cookies.get('token') |
| | | }, |
| | | onFileSuccess(response){ |
| | | if(response.code === '200'){ |
| | | this.fileList.push({url:process.env.IMG_API + response.result.path}) |
| | | this.$notify({ |
| | | type:'success', |
| | | duration:2000, |
| | | message:'上传成功', |
| | | title:'成功', |
| | | }) |
| | | }else{ |
| | | this.$message({ |
| | | message:res.data.message, |
| | | type:'warning' |
| | | }) |
| | | } |
| | | }, |
| | | handleFile(file){ |
| | | this.dialogImageUrl = file.url; |
| | | this.dialogVisible = true; |
| | | }, |
| | | showImg(file){ |
| | | window.open(file, '_blank') |
| | | }, |
| | | handleRemove(file,value){ |
| | | return this.$confirm(`确定移除 ${ file.uid }?`,'提示',{ |
| | | confirmButtonText:'确定', |
| | | cancelButtonText:'取消', |
| | | type:'warning', |
| | | }).then(()=> { |
| | | this.fileList.splice(value,1) |
| | | }) |
| | | }, |
| | | |
| | | }, |
| | | }; |
| | |
| | | } |
| | | </style> |
| | | <style> |
| | | .avatar-uploader .el-upload { |
| | | border: 1px dashed var(--el-border-color); |
| | | border-radius: 6px; |
| | | cursor: pointer; |
| | | position: relative; |
| | | overflow: hidden; |
| | | transition: var(--el-transition-duration-fast); |
| | | } |
| | | |
| | | .avatar-uploader .el-upload:hover { |
| | | border-color: var(--el-color-primary); |
| | | } |
| | | |
| | | .el-icon.avatar-uploader-icon { |
| | | font-size: 28px; |
| | |
| | | <el-select v-model="form.operatorUids" multiple> |
| | | <el-option |
| | | v-for="item in workerList" |
| | | :key="item.uid" |
| | | :label="item.username" |
| | | :value="item.uid" |
| | | :key="item.id" |
| | | :label="item.realname" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业等级" prop="workLevel"> |
| | | <el-select v-model="form.workLevel"> |
| | | <el-option |
| | | v-for="item in workLevelList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业等级" prop="workLevel"> |
| | | <el-select v-model="form.workLevel"> |
| | | <el-option |
| | | v-for="item in workLevelList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业时间" prop="workTimeLine"> |
| | | <el-date-picker |
| | | v-model="form.workTimeLine" |
| | | format="YYYY-MM-DD HH:mm" |
| | | value-format="YYYY-MM-DD HH:mm:00" |
| | | type="datetimerange" |
| | | range-separator="至" |
| | | start-placeholder="开始时间" |
| | | end-placeholder="结束时间" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="危险辨识" prop="hazardIdentification"> |
| | | <el-input |
| | | v-model="form.hazardIdentification" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入危险辨识" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业时间" prop="workTimeLine"> |
| | | <el-date-picker |
| | | v-model="form.workTimeLine" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | type="datetimerange" |
| | | range-separator="至" |
| | | start-placeholder="开始时间" |
| | | end-placeholder="结束时间" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业内容" prop="workContent"> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | </div> |
| | | </el-form> |
| | | <div class="applyBtn"> |
| | | <el-button type="primary" size="large" plain @click="submitForm(ruleFormRef)">发起申请</el-button> |
| | | <el-button type="primary" size="large" plain @click="submitForm()">发起申请</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | <script> |
| | | |
| | | export default{ |
| | | import {workApplyApi} from "../../../../../api/workApply"; |
| | | |
| | | export default{ |
| | | name: 'hoistForm', |
| | | components: {}, |
| | | props:['workerList'], |
| | |
| | | }, |
| | | workTimeLine: [], |
| | | expStartTime: '', |
| | | hazardIdentification: '', |
| | | expEndTime: '' |
| | | }, |
| | | workLevelList: [ |
| | |
| | | } |
| | | ], |
| | | applyRules:{ |
| | | operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'change' }], |
| | | workType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | workLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | workLevel: [{ required: true, message: '该内容不能为空', trigger: 'change' }], |
| | | workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | "workDetail.hoistingToolName": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | |
| | | } |
| | | }, |
| | | methods:{ |
| | | async submitForm (formEl) { |
| | | if (!formEl) return |
| | | await formEl.validate(async (valid, fields) => { |
| | | submitForm (formEl) { |
| | | this.$refs["ruleFormRef"].validate(async (valid, fields) => { |
| | | if (valid) { |
| | | state.form.expStartTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[0] |
| | | state.form.expEndTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[1] |
| | | let { workTimeLine, ...data } = JSON.parse(JSON.stringify(state.form)) |
| | | this.form.expStartTime = JSON.parse(JSON.stringify(this.form.workTimeLine))[0] |
| | | this.form.expEndTime = JSON.parse(JSON.stringify(this.form.workTimeLine))[1] |
| | | let { workTimeLine, ...data } = JSON.parse(JSON.stringify(this.form)) |
| | | data.workDetail.weightMass = Number(data.workDetail.weightMass) |
| | | const res = await workApplyApi().postHoistApply(data) |
| | | if (res.data.code === '200') { |
| | | ElMessage({ |
| | | this.$message({ |
| | | type: 'success', |
| | | message: '提交成功!' |
| | | }); |
| | | formEl.resetFields() |
| | | this.$refs["ruleFormRef"].clearValidate() |
| | | this.form = { |
| | | operatorUids: [], |
| | | workType: 3, |
| | | workLevel: null, |
| | | workContent: '', |
| | | workLocation: '', |
| | | workDetail:{ |
| | | hoistingToolName: '', |
| | | weightMass: null |
| | | }, |
| | | workTimeLine: [], |
| | | expStartTime: '', |
| | | hazardIdentification: '', |
| | | expEndTime: '' |
| | | } |
| | | } else { |
| | | ElMessage({ |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }); |
| | |
| | | <el-select v-model="form.operatorUids" multiple> |
| | | <el-option |
| | | v-for="item in workerList" |
| | | :key="item.uid" |
| | | :label="item.username" |
| | | :value="item.uid" |
| | | :key="item.id" |
| | | :label="item.realname" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | <el-form-item label="作业时间" prop="workTimeLine"> |
| | | <el-date-picker |
| | | v-model="form.workTimeLine" |
| | | format="yyyy-MM-dd HH:mm:ss" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | type="datetimerange" |
| | | range-separator="至" |
| | |
| | | <el-form-item label="盲板时间" prop="workDetail.installLine"> |
| | | <el-date-picker |
| | | v-model="form.workDetail.installLine" |
| | | format="YYYY-MM-DD HH:mm" |
| | | value-format="YYYY-MM-DD HH:mm:00" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | type="datetimerange" |
| | | range-separator="--" |
| | | start-placeholder="装盲板时间" |
| | |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="盲板位置" prop="workDetail.bpLocation"> |
| | | <el-input |
| | | v-model="form.workDetail.bpLocation" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="盲板位置" prop="workDetail.bpLocation"> |
| | | <el-input |
| | | v-model="form.workDetail.bpLocation" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="12"> |
| | | <el-form-item label="关联作业" prop="workDetail.otherSpecialWork"> |
| | | <el-select v-model="form.workDetail.otherSpecialWork" multiple> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="盲板位置图" prop="workDetail.bpLocationMapPath"> |
| | | <el-upload accept="image/*" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='imgLimit' v-model:file-list="fileList" :http-request="upload" :action="uploadUrl" list-type="picture-card" :on-remove="handleRemove" :before-remove="beforeRemove" :before-upload="getUploadUrl"> |
| | | <el-icon><Plus /></el-icon> |
| | | <template #tip> |
| | | <div class="el-upload__tip">上传jpg/png图片尺寸小于500KB,最多可上传5张</div> |
| | | </template> |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24"> |
| | | <el-form-item label="隐患上报图" prop="img"> |
| | | <el-upload |
| | | accept=".pdf,.jpg,.png" |
| | | :action="fileRoad" |
| | | class="upload-demo" |
| | | ref="upload" |
| | | :headers="header" |
| | | :data="uploadForm" |
| | | list-type="picture-card" |
| | | :file-list="fileList" |
| | | v-model="form.workDetail.bpLocationMapPath" |
| | | :on-change="handleChangeFile" |
| | | :on-success="onFileSuccess" |
| | | :multiple="false" |
| | | :auto-upload="true"> |
| | | <i slot="default" class="el-icon-plus"></i> |
| | | <div slot="file" slot-scope="{file}"> |
| | | <img |
| | | class="el-upload-list__item-thumbnail" |
| | | :src="file.url" alt="" |
| | | > |
| | | <span class="el-upload-list__item-actions"> |
| | | <span |
| | | class="el-upload-list__item-preview" |
| | | @click="handleFile(file)" |
| | | > |
| | | <i class="el-icon-zoom-in"></i> |
| | | </span> |
| | | <span |
| | | v-if="!disabled" |
| | | class="el-upload-list__item-delete" |
| | | @click="handleRemove(file,file.$index)" |
| | | > |
| | | <i class="el-icon-delete"></i> |
| | | </span> |
| | | </span> |
| | | </div> |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </el-form> |
| | | <div class="applyBtn"> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | export default{ |
| | | import {workApplyApi} from "../../../../../api/workApply"; |
| | | import Cookies from "_js-cookie@2.2.0@js-cookie"; |
| | | |
| | | export default{ |
| | | name: 'brokenForm', |
| | | components: {}, |
| | | props:['workerList'], |
| | | data(){ |
| | | return{ |
| | | fileRoad:process.env.BASE_API + '/task/web/upload', |
| | | uploadForm:{ |
| | | }, |
| | | header:{Authorization:''}, |
| | | disabled:false, |
| | | form: { |
| | | fileRoad:process.env.BASE_API + '/task/web/upload', |
| | | uploadForm:{ |
| | | }, |
| | | header:{Authorization:''}, |
| | | disabled:false, |
| | | operatorUids: [], |
| | | workType: 8, |
| | | workLevel: null, |
| | |
| | | } |
| | | }, |
| | | methods:{ |
| | | async submitForm(formEl) { |
| | | if (!formEl) return |
| | | await formEl.validate(async (valid, fields) => { |
| | | submitForm(formEl) { |
| | | this.$refs["ruleFormRef"].validate(async (valid, fields) => { |
| | | if (valid) { |
| | | state.form.expStartTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[0] |
| | | state.form.expEndTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[1] |
| | | state.form.workDetail.installBpTime = JSON.parse(JSON.stringify(state.form.workDetail.installLine))[0] |
| | | state.form.workDetail.uninstallBpTime = JSON.parse(JSON.stringify(state.form.workDetail.installLine))[1] |
| | | let { workTimeLine, ...data } = JSON.parse(JSON.stringify(state.form)) |
| | | let { installLine, ...data2 } = JSON.parse(JSON.stringify(state.form.workDetail)) |
| | | this.form.expStartTime = JSON.parse(JSON.stringify(this.form.workTimeLine))[0] |
| | | this.form.expEndTime = JSON.parse(JSON.stringify(this.form.workTimeLine))[1] |
| | | this.form.workDetail.installBpTime = JSON.parse(JSON.stringify(this.form.workDetail.installLine))[0] |
| | | this.form.workDetail.uninstallBpTime = JSON.parse(JSON.stringify(this.form.workDetail.installLine))[1] |
| | | let { workTimeLine, ...data } = JSON.parse(JSON.stringify(this.form)) |
| | | let { installLine, ...data2 } = JSON.parse(JSON.stringify(this.form.workDetail)) |
| | | data.workDetail = data2 |
| | | data.workDetail.otherSpecialWork = data.workDetail.otherSpecialWork.join(',') |
| | | data.workDetail.bpLocationMapPath = data.workDetail.bpLocationMapPath.join(',') |
| | | data.workDetail.bpLocationMapPath = JSON.stringify(this.fileList.map(item => { return item.url.substring(process.env.IMG_API.length) })) |
| | | data.workDetail.temperature = Number(data.workDetail.temperature) |
| | | data.workDetail.pressure = Number(data.workDetail.pressure) |
| | | const res = await workApplyApi().postPlateApply(data) |
| | | if (res.data.code === '200') { |
| | | ElMessage({ |
| | | this.$message({ |
| | | type: 'success', |
| | | message: '提交成功!' |
| | | }); |
| | | formEl.resetFields() |
| | | state.form.workDetail.bpLocationMapPath = [] |
| | | state.fileList = [] |
| | | this.$refs["ruleFormRef"].clearValidate() |
| | | this.form = { |
| | | operatorUids: [], |
| | | workType: 8, |
| | | workLevel: null, |
| | | workContent: '', |
| | | workLocation: '', |
| | | workDetail:{ |
| | | bpCode: '', |
| | | mainMedia: '', |
| | | temperature: null, |
| | | pressure: null, |
| | | bpMaterialQuality: '', |
| | | bpSpecification: '', |
| | | bpLocation: '', |
| | | bpLocationMapPath: [], |
| | | installLine: [], |
| | | installBpTime: '', |
| | | uninstallBpTime: '', |
| | | hazardIdentification: '', |
| | | otherSpecialWork: [] |
| | | }, |
| | | workTimeLine: [], |
| | | expStartTime: '', |
| | | expEndTime: '' |
| | | } |
| | | this.fileList = [] |
| | | } else { |
| | | ElMessage({ |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }); |
| | |
| | | console.log('error submit!', fields) |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | handleChangeFile(){ |
| | | this.header.Authorization = Cookies.get('token') |
| | | }, |
| | | onFileSuccess(response){ |
| | | if(response.code === '200'){ |
| | | this.fileList.push({url:process.env.IMG_API + response.result.path}) |
| | | this.$notify({ |
| | | type:'success', |
| | | duration:2000, |
| | | message:'上传成功', |
| | | title:'成功', |
| | | }) |
| | | }else{ |
| | | this.$message({ |
| | | message:res.data.message, |
| | | type:'warning' |
| | | }) |
| | | } |
| | | }, |
| | | handleFile(file){ |
| | | this.dialogImageUrl = file.url; |
| | | this.dialogVisible = true; |
| | | }, |
| | | showImg(file){ |
| | | window.open(file, '_blank') |
| | | }, |
| | | handleRemove(file,value){ |
| | | return this.$confirm(`确定移除 ${ file.uid }?`,'提示',{ |
| | | confirmButtonText:'确定', |
| | | cancelButtonText:'取消', |
| | | type:'warning', |
| | | }).then(()=> { |
| | | this.fileList.splice(value,1) |
| | | }) |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | <el-select v-model="form.operatorUids" multiple> |
| | | <el-option |
| | | v-for="item in workerList" |
| | | :key="item.uid" |
| | | :label="item.username" |
| | | :value="item.uid" |
| | | :key="item.id" |
| | | :label="item.realname" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业内容" prop="workContent"> |
| | | <el-input |
| | | v-model="form.workContent" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入作业内容" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业时间" prop="workTimeLine"> |
| | | <el-date-picker |
| | | v-model="form.workTimeLine" |
| | | format="YYYY-MM-DD HH:mm" |
| | | value-format="YYYY-MM-DD HH:mm:00" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | type="datetimerange" |
| | | range-separator="至" |
| | | start-placeholder="开始时间" |
| | |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业内容" prop="workContent"> |
| | | <el-input |
| | | v-model="form.workContent" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入作业内容" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业地址" prop="workLocation"> |
| | | <el-input |
| | | v-model="form.workLocation" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入作业地址" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业地址" prop="workLocation"> |
| | | <el-input |
| | | v-model="form.workLocation" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入作业地址" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | |
| | |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="危险辨识" prop="hazardIdentification"> |
| | | <el-input |
| | | v-model="form.hazardIdentification" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入危险辨识" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </el-form> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | export default{ |
| | | import {workApplyApi} from "../../../../../api/workApply"; |
| | | |
| | | export default{ |
| | | name: 'hoistForm', |
| | | components: {}, |
| | | props:['workerList'], |
| | |
| | | }, |
| | | workTimeLine: [], |
| | | expStartTime: '', |
| | | hazardIdentification: '', |
| | | expEndTime: '' |
| | | }, |
| | | workLevelList: [ |
| | |
| | | } |
| | | ], |
| | | applyRules:{ |
| | | operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'change' }], |
| | | workType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | workLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | workLevel: [{ required: true, message: '该内容不能为空', trigger: 'change' }], |
| | | workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | "workDetail.powerAccessPoint": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | |
| | | } |
| | | }, |
| | | methods:{ |
| | | async submitForm(formEl) { |
| | | if (!formEl) return |
| | | await formEl.validate(async (valid, fields) => { |
| | | submitForm() { |
| | | this.$refs["ruleFormRef"].validate(async (valid, fields) => { |
| | | if (valid) { |
| | | state.form.expStartTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[0] |
| | | state.form.expEndTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[1] |
| | | let { workTimeLine, ...data } = JSON.parse(JSON.stringify(state.form)) |
| | | this.form.expStartTime = JSON.parse(JSON.stringify(this.form.workTimeLine))[0] |
| | | this.form.expEndTime = JSON.parse(JSON.stringify(this.form.workTimeLine))[1] |
| | | let { workTimeLine, ...data } = JSON.parse(JSON.stringify(this.form)) |
| | | // data.workDetail.weightMass = Number(data.workDetail.weightMass) |
| | | const res = await workApplyApi().postPowerApply(data) |
| | | if (res.data.code === '200') { |
| | | ElMessage({ |
| | | this.$message({ |
| | | type: 'success', |
| | | message: '提交成功!' |
| | | }); |
| | | formEl.resetFields() |
| | | this.$refs["ruleFormRef"].clearValidate() |
| | | this.form = { |
| | | operatorUids: [], |
| | | workType: 7, |
| | | workLevel: 0, |
| | | workContent: '', |
| | | workLocation: '', |
| | | workDetail:{ |
| | | powerAccessPoint: '', |
| | | workingVoltage: null, |
| | | equipmentAndPower: '' |
| | | }, |
| | | workTimeLine: [], |
| | | expStartTime: '', |
| | | hazardIdentification: '', |
| | | expEndTime: '' |
| | | } |
| | | } else { |
| | | ElMessage({ |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }); |
| | |
| | | <el-select v-model="form.operatorUids" multiple> |
| | | <el-option |
| | | v-for="item in workerList" |
| | | :key="item.uid" |
| | | :label="item.username" |
| | | :value="item.uid" |
| | | :key="item.id" |
| | | :label="item.realname" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业内容" prop="workContent"> |
| | | <el-input |
| | | v-model="form.workContent" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入作业内容" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业时间" prop="workTimeLine"> |
| | | <el-date-picker |
| | | v-model="form.workTimeLine" |
| | | format="YYYY-MM-DD HH:mm" |
| | | value-format="YYYY-MM-DD HH:mm:00" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | type="datetimerange" |
| | | range-separator="至" |
| | | start-placeholder="开始时间" |
| | |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业内容" prop="workContent"> |
| | | <el-input |
| | | v-model="form.workContent" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入作业内容" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业地址" prop="workLocation"> |
| | | <el-input |
| | | v-model="form.workLocation" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入作业地址" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业地址" prop="workLocation"> |
| | | <el-input |
| | | v-model="form.workLocation" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入作业地址" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="受限空间所属单位" prop="workDetail.csDepId"> |
| | | <el-select v-model="form.workDetail.csDepId"> |
| | | <el-option |
| | | v-for="item in csDepList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | v-for="item in departList" |
| | | :key="item.id" |
| | | :label="item.department" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="关联作业" prop="workDetail.otherSpecialWork"> |
| | | <el-select v-model="form.workDetail.otherSpecialWork" multiple> |
| | | <el-option v-for="item in otherWorkList" :key="item.value" :label="item.label" :value="item.value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="危险辨识" prop="hazardIdentification"> |
| | | <el-input |
| | | v-model="form.hazardIdentification" |
| | | autosize |
| | | type="textarea" |
| | | placeholder="请输入危险辨识" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="关联作业" prop="workDetail.otherSpecialWork"> |
| | | <el-select v-model="form.workDetail.otherSpecialWork" multiple> |
| | | <el-option v-for="item in otherWorkList" :key="item.value" :label="item.label" :value="item.value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | </el-row> |
| | | </div> |
| | | </el-form> |
| | | <div class="applyBtn"> |
| | | <el-button type="primary" size="large" plain @click="submitForm(ruleFormRef)">发起申请</el-button> |
| | | <el-button type="primary" size="large" plain @click="submitForm()">发起申请</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default{ |
| | | import {workApplyApi} from "../../../../../api/workApply"; |
| | | |
| | | export default{ |
| | | name: 'spaceForm', |
| | | components: {}, |
| | | props:['workerList'], |
| | | props:['workerList','departList'], |
| | | data(){ |
| | | return{ |
| | | form: { |
| | |
| | | }, |
| | | workTimeLine: [], |
| | | expStartTime: '', |
| | | hazardIdentification: '', |
| | | expEndTime: '' |
| | | }, |
| | | csDepList: [ |
| | |
| | | } |
| | | ], |
| | | applyRules:{ |
| | | operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | workType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'change' }], |
| | | workType: [{ required: true, message: '该内容不能为空', trigger: 'change' }], |
| | | workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | "workDetail.csDepId": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | |
| | | } |
| | | }, |
| | | methods:{ |
| | | async submitForm(formEl) { |
| | | if (!formEl) return |
| | | await formEl.validate(async (valid, fields) => { |
| | | submitForm() { |
| | | this.$refs["ruleFormRef"].validate(async (valid, fields) => { |
| | | if (valid) { |
| | | state.form.expStartTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[0] |
| | | state.form.expEndTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[1] |
| | | let { workTimeLine, ...data } = JSON.parse(JSON.stringify(state.form)) |
| | | this.form.expStartTime = JSON.parse(JSON.stringify(this.form.workTimeLine))[0] |
| | | this.form.expEndTime = JSON.parse(JSON.stringify(this.form.workTimeLine))[1] |
| | | let { workTimeLine, ...data } = JSON.parse(JSON.stringify(this.form)) |
| | | data.workDetail.otherSpecialWork = data.workDetail.otherSpecialWork.join(',') |
| | | console.log(data,'data') |
| | | const res = await workApplyApi().postSpaceApply(data) |
| | |
| | | type: 'success', |
| | | message: '提交成功!' |
| | | }); |
| | | formEl.resetFields() |
| | | this.$refs["ruleFormRef"].clearValidate() |
| | | this.form = { |
| | | operatorUids: [], |
| | | workType: 2, |
| | | workLevel: 0, |
| | | workContent: '', |
| | | workLocation: '', |
| | | workDetail:{ |
| | | csDepId: null, |
| | | csName: '', |
| | | csOriginalName: '', |
| | | otherSpecialWork: [] |
| | | }, |
| | | workTimeLine: [], |
| | | expStartTime: '', |
| | | hazardIdentification: '', |
| | | expEndTime: '' |
| | | } |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | |
| | | <fire-form :workerList="allWorkers"></fire-form> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="受限空间作业"> |
| | | <space-form :workerList= allWorkers></space-form> |
| | | <space-form :workerList= allWorkers :departList = departmentList></space-form> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="吊装作业"> |
| | | <hoist-form :workerList = allWorkers></hoist-form> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="动土作业"> |
| | | <ground-form :workerList = allWorkers></ground-form> |
| | | <ground-form :workerList = allWorkers :departList = departmentList></ground-form> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="断路作业"> |
| | | <broken-form :workerList= allWorkers :departList = departmentList></broken-form> |