From a2f1ef07ac5826ce333a99b1d269db819d811a21 Mon Sep 17 00:00:00 2001 From: zy <907315977@qq.com> Date: Thu, 27 Jun 2024 13:35:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AB=E9=A1=B9=E4=BD=9C=E4=B8=9A=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E7=BC=96=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../breakground/components/corpInfo.vue | 128 ++++++ .../breakground/components/detail.vue | 279 +++++++++++++ .../breakground/components/list.vue | 369 ++++++++++++++++++ src/views/dangerousWork/breakground/index.vue | 23 ++ src/views/dangerousWork/circuit/index.vue | 2 +- .../highwork/components/corpInfo.vue | 128 ++++++ .../highwork/components/detail.vue | 279 +++++++++++++ .../highwork/components/list.vue | 359 +++++++++++++++++ src/views/dangerousWork/highwork/index.vue | 20 + .../hoisting/components/corpInfo.vue | 128 ++++++ .../hoisting/components/detail.vue | 279 +++++++++++++ .../hoisting/components/list.vue | 359 +++++++++++++++++ src/views/dangerousWork/hoisting/index.vue | 20 + .../lectricity/components/corpInfo.vue | 128 ++++++ .../lectricity/components/detail.vue | 279 +++++++++++++ .../lectricity/components/list.vue | 359 +++++++++++++++++ src/views/dangerousWork/lectricity/index.vue | 23 ++ .../limitspace/components/corpInfo.vue | 128 ++++++ .../limitspace/components/detail.vue | 279 +++++++++++++ .../limitspace/components/list.vue | 359 +++++++++++++++++ src/views/dangerousWork/limitspace/index.vue | 23 ++ 21 files changed, 3950 insertions(+), 1 deletion(-) create mode 100644 src/views/dangerousWork/breakground/components/corpInfo.vue create mode 100644 src/views/dangerousWork/breakground/components/detail.vue create mode 100644 src/views/dangerousWork/breakground/components/list.vue create mode 100644 src/views/dangerousWork/breakground/index.vue create mode 100644 src/views/dangerousWork/highwork/components/corpInfo.vue create mode 100644 src/views/dangerousWork/highwork/components/detail.vue create mode 100644 src/views/dangerousWork/highwork/components/list.vue create mode 100644 src/views/dangerousWork/highwork/index.vue create mode 100644 src/views/dangerousWork/hoisting/components/corpInfo.vue create mode 100644 src/views/dangerousWork/hoisting/components/detail.vue create mode 100644 src/views/dangerousWork/hoisting/components/list.vue create mode 100644 src/views/dangerousWork/hoisting/index.vue create mode 100644 src/views/dangerousWork/lectricity/components/corpInfo.vue create mode 100644 src/views/dangerousWork/lectricity/components/detail.vue create mode 100644 src/views/dangerousWork/lectricity/components/list.vue create mode 100644 src/views/dangerousWork/lectricity/index.vue create mode 100644 src/views/dangerousWork/limitspace/components/corpInfo.vue create mode 100644 src/views/dangerousWork/limitspace/components/detail.vue create mode 100644 src/views/dangerousWork/limitspace/components/list.vue create mode 100644 src/views/dangerousWork/limitspace/index.vue diff --git a/src/views/dangerousWork/breakground/components/corpInfo.vue b/src/views/dangerousWork/breakground/components/corpInfo.vue new file mode 100644 index 0000000..b082343 --- /dev/null +++ b/src/views/dangerousWork/breakground/components/corpInfo.vue @@ -0,0 +1,128 @@ +<template> + <div class="app-container"> + <div class="filter-container"> + <div class="filter-group "> + <div class="filter-lable" style="width: 60px"> + 公司名称: + </div> + <div class="filter-width"> + <el-input v-model="KEYWORDS" placeholder="公司名称" class="filter-item" style="width: 150px;"/> + </div> + </div> + <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery"> + 搜索 + </el-button> + <el-button v-waves class="filter-item" type="success" icon="el-icon-refresh" @click="goKeyReset"> + 重置 + </el-button> + </div> + <el-table + v-loading="listLoading" + ref="multipleTable" + :data="varList" + :header-cell-style="{ + 'font-weight': 'bold', + 'color': '#000' + }" + tooltip-effect="dark" + border + fit + highlight-current-row + > + <el-table-column type="index" label="序号" width="50" align="center" /> + <el-table-column prop="CORP_NAME" label="公司名称" /> + <el-table-column prop="checkedCount" label="申请总数" align="center" > + <template slot-scope="{row}"> + <span :style="row.applications_num > 0 ? {color:'#0c60e1',cursor: 'pointer'} : {color: '#606266'}" @click="goList('Blindboard',row.CORPINFO_ID,'1')">{{ row.applications_num }}</span> + </template> + </el-table-column> + <el-table-column prop="checkedItemCount" label="完成数" align="center" > + <template slot-scope="{row}"> + <span :style="row.completions_num > 0 ? {color:'#0c60e1',cursor: 'pointer'} : {color: '#606266'}" @click="goList('Blindboard',row.CORPINFO_ID,'2')">{{ row.completions_num }}</span> + </template> + </el-table-column> + <el-table-column prop="ybCount" label="废除数" align="center" > + <template slot-scope="{row}"> + <span :style="row.abolishments_num > 0 ? {color:'#0c60e1',cursor: 'pointer'} : {color: '#606266'}" @click="goList('Blindboard',row.CORPINFO_ID, '3')">{{ row.abolishments_num }}</span> + </template> + </el-table-column> + <el-table-column prop="zdCount" label="进行数" align="center" > + <template slot-scope="{row}"> + <span :style="row.operations_num > 0 ? {color:'#0c60e1',cursor: 'pointer'} : {color: '#606266'}" @click="goList('Blindboard',row.CORPINFO_ID, '4')">{{ row.operations_num }}</span> + </template> + </el-table-column> + </el-table> + <div class="page-btn-group"> + <div/> + <pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" /> + </div> + </div> +</template> + +<script> +import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包 +import { requestFN } from '@/utils/request' +import waves from '@/directive/waves' // waves directive +import SelectTree from '@/components/SelectTree' +export default { + components: { Pagination, SelectTree }, + directives: { waves }, + data() { + return { + USER_LEVEL: sessionStorage.getItem('user').LEVEL || -1, + config: config, + listLoading: true, + add: false, + del: false, + edit: false, + listQuery: { + page: 1, + limit: 20 + }, + total: 0, + KEYWORDS: '', + varList: [], + pd: [] + } + }, + + async created() { + await this.getList() + }, + methods: { + getQuery() { + this.getList() + }, + goKeyReset() { + this.KEYWORDS = '' + this.getList() + }, + // 点击列表数,跳转详情 + goList(tableName, CORPINFO_ID, ticketType) { + this.$parent.activeName = tableName + this.$parent.CORPINFO_ID = CORPINFO_ID + this.$parent.ticketType = ticketType + this.$parent.CUTROAD_ID ='' + }, + getList() { + return new Promise((resolve) => { + this.listLoading = true + requestFN( + '/gfBreakGround/corpCountlist?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page, + { + COPRINF_ID: sessionStorage.getItem('user').CORPINFO_ID || '', + KEYWORDS: this.KEYWORDS + } + ).then((data) => { + this.listLoading = false + this.varList = data.varList + this.total = data.page.totalResult + resolve() + }).catch((e) => { + this.listLoading = false + }) + }) + } + } +} +</script> diff --git a/src/views/dangerousWork/breakground/components/detail.vue b/src/views/dangerousWork/breakground/components/detail.vue new file mode 100644 index 0000000..5adb003 --- /dev/null +++ b/src/views/dangerousWork/breakground/components/detail.vue @@ -0,0 +1,279 @@ +<template> + <div> + <div id="printTest" class="app-container print-work"> + <el-page-header content="审批表详情" class="no-print" @back="goBack"/> + <table class="table-ui"> + <thead> + <tr> + <td colspan="6" style="border: none"> + <div class="level-title mt-20"> + <h1>断路安全作业票</h1> + <div class="level-code" >编号:{{ pd.CHECK_NO }}</div> + </div> + </td> + </tr> + </thead> + <tr> + <td class="bbg">申请单位</td> + <td>{{ pd.APPLY_DEPARTMENT_NAME }}</td> + <td class="bbg">作业单位</td> + <td>{{ pd.CONSTRUCTION_DEPARTMENT_NAME }}</td> + <td class="bbg">作业负责人</td> + <td>{{ pd.CONSTRUCTION_USER_NAME }}</td> + </tr> + <tr> + <td class="bbg">涉及相关单位(部门)</td> + <td colspan="3">{{ pd.OTHER_DEPT }}</td> + <td class="bbg">监护人</td> + <td> + <div v-if="pd.GUARDIAN_USER_SIGNER_PATH" style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.GUARDIAN_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.GUARDIAN_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr> + <td class="bbg">断路原因</td> + <td colspan="5">{{ pd.WORK_REASON }}</td> + </tr> + <tr> + <td class="bbg">关联的其他特殊作业及安全作业票编号</td> + <td colspan="5">{{ pd.SPECIAL_WORK }}</td> + </tr> + <tr> + <td colspan="6"> + <div>断路地段示意图(可另附图)及相关说明:{{ pd.WORK_CONTENT }}</div> + <div style="display: flex;justify-content: space-between;margin-top: 20px;"> + <img v-viewer :src="config.fileUrl + pd.CONTENT_IMG_PATH" alt="" width="100" height="100"> + <div> + 编制人: + <img v-viewer :src="config.fileUrl + pd.APPLY_USER_SIGNER_PATH" alt="" width="100" height="100"> + {{ pd.APPLY_USER_SIGNER_TIME }} + </div> + </div> + </td> + </tr> + <tr> + <td class="bbg">风险辨识结果</td> + <td colspan="5">{{ pd.HAZARD_IDENTIFICATION.split(";_;")[0] }}</td> + </tr> + <tr> + <td class="bbg">作业实施时间</td> + <td colspan="5">{{ pd.WORK_START_DATE }}至{{ pd.WORK_END_DATE }}止</td> + </tr> + <tr> + <td colspan="6"> + <table class="table-ui"> + <tr> + <td>序号</td> + <td>安全措施</td> + <td>是否涉及</td> + <td>确认人</td> + </tr> + <tr v-for="(item,index) in measuresList" :key="index"> + <td>{{ index + 1 }}</td> + <td>{{ item.PROTECTIVE_MEASURES }}</td> + <td> + <span v-if="item.STATUS=='1'"><input type="radio" disabled checked>涉 及</span> + <span v-if="item.STATUS=='-1'"><input type="radio" disabled checked>不涉及</span> + </td> + <td> + {{ item.CONFIRM_NAME }} + </td> + </tr> + <tr v-if="pd.APPLY_USER_MEASURES || pd.CONSTRUCTION_USER_MEASURES || pd.PRODUCTION_USER_MEASURES || pd.SAFETY_USER_MEASURES || pd.LEADER_USER_MEASURES "> + <td>{{ measuresList.length + 1 }}</td> + <td colspan="3"> + <div v-if="pd.APPLY_USER_MEASURES" style="display: flex;justify-content: space-between;"> + <span>其他安全措施:{{ pd.APPLY_USER_MEASURES }}</span> + <span>编制人:{{ pd.APPLY_USER_NAME }}</span> + </div> + <div v-if="pd.CONSTRUCTION_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;"> + <span>其他安全措施:{{ pd.CONSTRUCTION_USER_MEASURES }}</span> + <span>编制人:{{ pd.CONSTRUCTION_USER_NAME }}</span> + </div> + <div v-if="pd.PRODUCTION_USER_ID && pd.PRODUCTION_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;"> + <span>其他安全措施:{{ pd.PRODUCTION_USER_MEASURES }}</span> + <span>编制人:{{ pd.PRODUCTION_USER_NAME }}</span> + </div> + <div v-if="pd.SAFETY_USER_ID && pd.SAFETY_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;"> + <span>其他安全措施:{{ pd.SAFETY_USER_MEASURES }}</span> + <span>编制人:{{ pd.SAFETY_USER_NAME }}</span> + </div> + <div v-if="pd.LEADER_USER_ID && pd.LEADER_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;"> + <span>其他安全措施:{{ pd.LEADER_USER_MEASURES }}</span> + <span>编制人:{{ pd.LEADER_USER_NAME }}</span> + </div> + </td> + </tr> + </table> + </td> + </tr> + <tr> + <td class="bbg">安全交底人</td> + <td colspan="10"> + <div v-if="pd.CONFESS_USER_SIGNER_PATH" style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.CONFESS_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr> + <td class="bbg">接受交底人</td> + <td colspan="10"> + <div v-for="item in imgList" :key="item.ACCEPT_CONFESS_ID" style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + item.ACCEPT_CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ item.ACCEPT_CONFESS_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="pd.CONSTRUCTION_USER_SIGNER_PATH"> + <td colspan="6"> + <div>作业负责人意见:{{ pd.CONSTRUCTION_CONTENT }}</div> + <div style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.CONSTRUCTION_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.CONSTRUCTION_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="pd.PRODUCTION_USER_SIGNER_PATH"> + <td colspan="6"> + <div>所在单位意见:{{ pd.PRODUCTION_CONTENT }}</div> + <div style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.PRODUCTION_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.PRODUCTION_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="pd.SAFETY_USER_SIGNER_PATH"> + <td colspan="6"> + <div>消防、安全管理部门意见:{{ pd.SAFETY_CONTENT }}</div> + <div style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.SAFETY_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.SAFETY_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="pd.LEADER_USER_SIGNER_PATH"> + <td colspan="6"> + <div>审批部门意见:{{ pd.LEADER_CONTENT }}</div> + <div style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.LEADER_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.LEADER_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="imgList1.length>0"> + <td colspan="10"> + <div>完工验收:{{ pd.ACCEPT_CONTENT }}</div> + <div v-for="item in imgList1" :key="item.ACCEPT_CONFESS_ID" style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + item.ACCEPT_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ item.ACCEPT_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + </table> + </div> + <div style="padding-top: 100px"/> + <div class="ui-foot"> + <el-button icon="el-icon-arrow-left" @click="goBack">返 回</el-button> + </div> + </div> +</template> + +<script> +import { requestFN } from '@/utils/request' +import dateformat from '@/utils/dateformat' +export default { + data() { + return { + config: config, + CUTROAD_ID: this.$parent.CUTROAD_ID, // 主键ID + pd: [], // 存放字段参数 + measuresList: [], + otherProtectiveMeasures: [], + imgList: [], + imgList1: [], + hazardIdentification: [] + } + }, + created() { + this.getData() + }, + methods: { + validStr(str) { + if (str != null && str != '' && typeof (str) != 'undefined' && str != 0) { return true } + return false + }, + formatTime(date, column) { + if (date) { + return dateformat(date, 'YYYY年MM月DD日HH时mm分') + } else { + return '' + } + }, + formatDate(date, column) { + if (date) { + return dateformat(date, 'YYYY-MM-DD') + } else { + return '' + } + }, + getRowKey(row) { + return row.CUTROAD_ID + }, + getData() { + this.listLoading = true + requestFN( + '/gfBreakGround/goEdit', + { + CUTROAD_ID: this.CUTROAD_ID + } + ).then((data) => { + this.listLoading = false + this.pd = data.pd // 参数map + this.measuresList = data.measuresList // 参数map + this.imgList = data.imgList + this.pd.APPLY_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[0] + this.pd.CONSTRUCTION_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[1] + this.pd.PRODUCTION_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[2] + this.pd.SAFETY_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[3] + this.pd.LEADER_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[4] + }).catch((e) => { + this.listLoading = false + }) + }, + goBack() { + this.$parent.activeName = 'circuit_list' + this.$parent.CUTROAD_ID = '' + } + + } +} +</script> + +<style lang="sass" scoped> +.print-approval-p10 + padding: 20px 0 + span + vertical-align: middle +.bbg + width: 270px +.print-approval-img + width: 200px + height: 97px + display: inline-block + img + width: 100% + height: 100% +.level-code + margin-left: auto +</style> diff --git a/src/views/dangerousWork/breakground/components/list.vue b/src/views/dangerousWork/breakground/components/list.vue new file mode 100644 index 0000000..18587cc --- /dev/null +++ b/src/views/dangerousWork/breakground/components/list.vue @@ -0,0 +1,369 @@ +<template> + <div class="app-container"> + <el-form label-width="50px"> + <el-row> + <el-col :span="4"> + <el-form-item label="编号"> + <el-input v-model="KEYWORDS" placeholder="请输入编号"/> + </el-form-item> + </el-col> + <el-col :span="4"> + <el-form-item label="状态"> + <el-select v-model="STATUS" clearable placeholder="请选择" style="width: 100%;"> + <el-option v-for="item in statusList" :key="item.ID" :label="item.NAME" :value="item.ID" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="4"> + <el-form-item label-width="10px"> + <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery"> + 搜索 + </el-button> + <el-button v-waves icon="el-icon-refresh" type="success" @click="goKeyReset"> + 重置 + </el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + <el-table v-loading="listLoading" ref="multipleTable" :data="varList" :row-key="getRowKey" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row> + <el-table-column :reserve-selection="true" type="selection" width="57" align="center" /> + <el-table-column type="index" label="序号" width="50" align="center" /> + <el-table-column prop="CHECK_NO" label="编号" show-overflow-tooltip /> + <el-table-column prop="APPLY_USER_NAME" label="填写人" /> + <el-table-column prop="CONSTRUCTION_USER_NAME" label="作业负责人" show-overflow-tooltip /> + <el-table-column prop="PRODUCTION_USER_NAME" label="所在单位负责人" show-overflow-tooltip > + <template slot-scope="{row}"> + {{ row.PRODUCTION_USER_NAME || ' 已跳过' }} + </template> + </el-table-column> + <el-table-column prop="SAFETY_DEPARTMENT_NAME" label="消防、安全管理部门负责人" show-overflow-tooltip width="200"> + <template slot-scope="{row}"> + {{ row.SAFETY_DEPARTMENT_NAME || ' 已跳过' }} + </template> + </el-table-column> + <el-table-column prop="LEADER_USER_NAME" label="审批部门负责人" show-overflow-tooltip > + <template slot-scope="{row}"> + {{ row.LEADER_USER_NAME || ' 已跳过' }} + </template> + </el-table-column> + <el-table-column prop="ACCEPT_USER_NAME" label="验收部门负责人" show-overflow-tooltip /> + <el-table-column prop="STATUS" label="审核状态"> + <template slot-scope="{row}"> + <span v-if="row.APPLY_STATUS==0">断路安全作业待提交</span> + <span v-else-if="row.APPLY_STATUS==1">作业负责人待审核</span> + <span v-else-if="row.APPLY_STATUS==2">所在单位待审核</span> + <span v-else-if="row.APPLY_STATUS==3">消防、安全管理部门待审核</span> + <span v-else-if="row.APPLY_STATUS==4">审批部门待审核</span> + <span v-else-if="row.APPLY_STATUS==5">待验收</span> + <span v-else-if="row.APPLY_STATUS==6">验收归档</span> + <span v-else-if="row.APPLY_STATUS==-2">作业负责人审核打回</span> + <span v-else-if="row.APPLY_STATUS==-3">所在单位审核打回</span> + <span v-else-if="row.APPLY_STATUS==-4">消防、安全管理部门审核打回</span> + <span v-else-if="row.APPLY_STATUS==-5">审批部门审核打回</span> + <span v-else-if="row.APPLY_STATUS==-6">验收打回</span> + </template> + </el-table-column> + <el-table-column label="操作" align="center" width="230"> + <template slot-scope="{row}"> + <el-button type="primary" icon="el-icon-plus" @click="goChart(row)">流程图</el-button> + <el-button type="primary" icon="el-icon-document" size="mini" @click="goDetail(row.CUTROAD_ID)">审批表详情</el-button> + </template> + </el-table-column> + </el-table> + <div class="page-btn-group"> + <div> + <!-- <el-button v-show="add" type="primary" icon="el-icon-plus" @click="handleAdd">新增</el-button>--> + <!-- <el-button v-show="del" type="danger" icon="el-icon-delete" plain @click="batchDel">删除</el-button>--> + </div> + <pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" /> + </div> + <el-dialog :visible.sync="dialogFormShow " :title="dialogType==='add'?'查看流程图':'新增'" width="1400px"> + <el-steps :active="getStatus()" :process-status="getProcessStatus()" finish-status="success" align-center> + <el-step title="断路安全作业提交"> + <template slot="description"> + <div>{{ getProcessMessage().title }}</div> + <div>{{ getProcessMessage().USER_NAME }}</div> + <div>{{ getProcessMessage().OPERATTIME }}</div> + </template> + </el-step> + <el-step title="作业负责人意见"> + <template slot="description"> + <div>{{ pd.CONSTRUCTION_USER_NAME }}</div> + <div>{{ pd.CONSTRUCTION_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="所在单位意见"> + <template slot="description"> + <div v-if="getIsPase('PRODUCTION_USER_NAME')">{{ '已跳过' }}</div> + <div v-else>{{ pd.PRODUCTION_USER_NAME }}</div> + <div>{{ pd.PRODUCTION_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="消防、安全管理部门意见" > + <template slot="description"> + <div v-if="getIsPase('SAFETY_DEPARTMENT_NAME')">{{ '已跳过' }}</div> + <div v-else>{{ pd.SAFETY_USER_NAME }}</div> + <div>{{ pd.SAFETY_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="审批部门意见" > + <template slot="description"> + <div v-if="getIsPase('LEADER_USER_NAME')">{{ '已跳过' }}</div> + <div v-else>{{ pd.LEADER_USER_NAME }}</div> + <div>{{ pd.LEADER_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="完成验收" description=""> + <template slot="description"> + <div>{{ pd.ACCEPT_USER_NAME }}</div> + <div>{{ pd.ACCEPT_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="验收归档" description=""> + <template slot="description"> + <div>{{ pd.ACCEPT_USER_NAME }}</div> + <div>{{ pd.ACCEPT_USER_SIGNER_TIME }}</div> + </template> + </el-step> + </el-steps> + <div style="margin: 60px 60px 0 60px;display: flex;justify-content: space-between"> + <div v-if="pd.GUARDIAN_USER_SIGNER_TIME"> + <div style="color: #13ce66"> + 监护人:{{ pd.GUARDIAN_USER_NAME }}已签字 + </div> + </div> + <div v-if="!pd.GUARDIAN_USER_SIGNER_TIME"> + <div style="color: red"> + 监护人:{{ pd.GUARDIAN_USER_NAME }}未签字 + </div> + </div> + <div v-if="pd.CONFESS_USER_SIGNER_TIME"> + <div style="color: #13ce66"> + 安全交底人:{{ pd.CONFESS_USER_NAME }}已签字 + </div> + </div> + <div v-if="!pd.CONFESS_USER_SIGNER_TIME"> + <div style="color: red"> + 安全交底人:{{ pd.CONFESS_USER_NAME }}未签字 + </div> + </div> + <div v-if="pd.ACCEPT_CONFESS_USER_SIGNER_TIME"> + <div style="color: #13ce66"> + 接受交底人:{{ pd.ACCEPT_CONFESS_USER_NAME }}已签字 + </div> + </div> + <div v-if="!pd.ACCEPT_CONFESS_USER_SIGNER_TIME"> + <div style="color: red"> + 接受交底人:{{ pd.ACCEPT_CONFESS_USER_NAME }}未签字 + </div> + </div> + </div> + <div slot="footer" class="dialog-footer"> + <!-- <el-button @click="dialogFormShow = false">取 消</el-button>--> + <el-button type="primary" @click="dialogFormShow = false">确 定</el-button> + </div> + </el-dialog> + <div style="height: 60px;"></div> + <div class="ui-foot"> + <el-button type="primary" @click="goBack">返 回</el-button> + </div> + </div> +</template> +<script> +import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包 +import { requestFN } from '@/utils/request' +import waves from '@/directive/waves' // waves directive +export default { + components: { Pagination }, + directives: { waves }, + data() { + return { + listLoading: true, + add: false, + del: false, + edit: false, + listQuery: { + page: 1, + limit: 20 + }, + total: 0, + KEYWORDS: '', + varList: [], + pd: [], + + multipleSelectionAll: [], // 所有选中的数据包含跨页数据 + multipleSelection: [], // 当前页选中的数据 + dialogFormShow: false, + dialogFormEdit: false, + dialogType: 'add', + replyVarList: [], // REPLY + replyListQuery: { + page: 1, + limit: 20 + }, + replyTotal: 0, + dialogFormHuifuShow: false, + statusList: [ + { ID: '', NAME: '请选择' }, + { ID: '0', NAME: '断路安全作业待提交' }, + { ID: '1', NAME: '作业负责人待审核' }, + { ID: '2', NAME: '所在单位待审核' }, + { ID: '3', NAME: '消防、安全管理部门待审核' }, + { ID: '4', NAME: '审批部门待审核' }, + { ID: '5', NAME: '待验收' }, + { ID: '6', NAME: '验收归档' }, + { ID: '-2', NAME: '作业负责人审核打回' }, + { ID: '-3', NAME: '所在单位审核打回' }, + { ID: '-4', NAME: '消防、安全管理部门审核打回' }, + { ID: '-5', NAME: '审批部门审核打回' }, + { ID: '-6', NAME: '验收打回' } + ], + STATUS: '', + DEPTIDS: '' + } + }, + created() { + this.getList() + }, + methods: { + getRowKey(row) { + return row.CUTROAD_ID + }, + // 搜索 + getQuery() { + this.$refs.multipleTable.clearSelection() + this.getList() + }, + goKeyReset() { + this.KEYWORDS = '' + this.STATUS = '' + this.getQuery() + }, + // 获取列表 + getList() { + this.listLoading = true + requestFN( + '/gfBreakGround/list?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page, + { + KEYWORDS: this.KEYWORDS, APPLY_STATUS: this.STATUS, + DEPTIDS: this.DEPTIDS, tm: new Date().getTime() + } + ).then((data) => { + this.listLoading = false + this.varList = data.varList + this.total = data.page.totalResult + this.hasButton() + }).catch((e) => { + this.listLoading = false + }) + }, + // 判断按钮权限,用于是否显示按钮 + hasButton() { + var keys = 'cutroad:add,cutroad:del,cutroad:edit,toExcel' + requestFN( + '/head/hasButton', + { + keys: keys + } + ).then((data) => { + this.add = data.cutroadfhadminadd // 新增权限 + this.del = data.cutroadfhadmindel // 删除权限 + this.edit = data.cutroadfhadminedit // 修改权限 + }).catch((e) => { + this.listLoading = false + }) + }, + goChart(row) { + this.pd = row + this.dialogFormShow = true + }, + getStatus() { + if (this.pd.APPLY_STATUS <= '0') { + return 0 + } + if (this.pd.APPLY_STATUS == '1') { + return 1 + } + if (this.pd.APPLY_STATUS == '2') { + return 2 + } + if (this.pd.APPLY_STATUS == '3') { + return 3 + } + if (this.pd.APPLY_STATUS == '4') { + return 4 + } + if (this.pd.APPLY_STATUS == '5') { + return 5 + } + if (this.pd.APPLY_STATUS == '6') { + return 7 + } + }, + getProcessStatus() { + if (this.pd.APPLY_STATUS < '0') { + return 'error' + } else { + return 'process' + } + }, + getProcessMessage() { + let obj = {} + if (this.pd.APPLY_STATUS >= '0') { + obj = { + title: '', + USER_NAME: this.pd.APPLY_USER_NAME, + OPERATTIME: this.pd.CREATTIME + } + } + if (this.pd.APPLY_STATUS == '-2') { + obj = { + title: '作业负责人审核打回', + USER_NAME: this.pd.CONSTRUCTION_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + if (this.pd.APPLY_STATUS == '-3') { + obj = { + title: '所在单位审核打回', + USER_NAME: this.pd.PRODUCTION_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + if (this.pd.APPLY_STATUS == '-4') { + obj = { + title: '消防、安全管理部门审核打回', + USER_NAME: this.pd.SAFETY_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + if (this.pd.APPLY_STATUS == '-5') { + obj = { + title: '审批部门审核打回', + USER_NAME: this.pd.LEADER_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + if (this.pd.APPLY_STATUS == '-6') { + obj = { + title: '验收打回', + AUSER_NAME: this.pd.ACCEPT_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + return obj + }, + getIsPase(col) { + if (!this.pd[col]) { + return '已跳过' + } + }, + goDetail(id) { + this.$parent.activeName = 'Detail' + this.$parent.CUTROAD_ID = id + } + } +} + +</script> diff --git a/src/views/dangerousWork/breakground/index.vue b/src/views/dangerousWork/breakground/index.vue new file mode 100644 index 0000000..17f8ac2 --- /dev/null +++ b/src/views/dangerousWork/breakground/index.vue @@ -0,0 +1,23 @@ +<template> + <div> + <CorpInfo v-show="activeName=='CorpInfo'" ref="list" /> + <Blindboard v-if="activeName=='Blindboard'"/> + <Detail v-if="activeName=='Detail'"/> + </div> +</template> +<script> +import CorpInfo from './components/corpInfo' +import Blindboard from './components/list' +import Detail from './components/detail' +export default { + components: { CorpInfo, Blindboard,Detail }, + data() { + return { + activeName: 'CorpInfo', + CORPINFO_ID: '', + ticketType: '', + CUTROAD_ID: '' + } + } +} +</script> diff --git a/src/views/dangerousWork/circuit/index.vue b/src/views/dangerousWork/circuit/index.vue index 0c0ba5e..c5477fc 100644 --- a/src/views/dangerousWork/circuit/index.vue +++ b/src/views/dangerousWork/circuit/index.vue @@ -1,7 +1,7 @@ <template> <div> <CorpInfo v-show="activeName=='CorpInfo'" ref="list" /> - <circuitList v-if="activeName=='circuit_list'"/> + <circuitList v-show="activeName=='circuit_list'"/> <Detail v-if="activeName=='Detail'"/> </div> </template> diff --git a/src/views/dangerousWork/highwork/components/corpInfo.vue b/src/views/dangerousWork/highwork/components/corpInfo.vue new file mode 100644 index 0000000..377ebb3 --- /dev/null +++ b/src/views/dangerousWork/highwork/components/corpInfo.vue @@ -0,0 +1,128 @@ +<template> + <div class="app-container"> + <div class="filter-container"> + <div class="filter-group "> + <div class="filter-lable" style="width: 60px"> + 公司名称: + </div> + <div class="filter-width"> + <el-input v-model="KEYWORDS" placeholder="公司名称" class="filter-item" style="width: 150px;"/> + </div> + </div> + <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery"> + 搜索 + </el-button> + <el-button v-waves class="filter-item" type="success" icon="el-icon-refresh" @click="goKeyReset"> + 重置 + </el-button> + </div> + <el-table + v-loading="listLoading" + ref="multipleTable" + :data="varList" + :header-cell-style="{ + 'font-weight': 'bold', + 'color': '#000' + }" + tooltip-effect="dark" + border + fit + highlight-current-row + > + <el-table-column type="index" label="序号" width="50" align="center" /> + <el-table-column prop="CORP_NAME" label="公司名称" /> + <el-table-column prop="checkedCount" label="申请总数" align="center" > + <template slot-scope="{row}"> + <span :style="row.applications_num > 0 ? {color:'#0c60e1',cursor: 'pointer'} : {color: '#606266'}" @click="goList('hotwork',row.CORPINFO_ID,'1')">{{ row.applications_num }}</span> + </template> + </el-table-column> + <el-table-column prop="checkedItemCount" label="完成数" align="center" > + <template slot-scope="{row}"> + <span :style="row.completions_num > 0 ? {color:'#0c60e1',cursor: 'pointer'} : {color: '#606266'}" @click="goList('hotwork',row.CORPINFO_ID,'2')">{{ row.completions_num }}</span> + </template> + </el-table-column> + <el-table-column prop="ybCount" label="废除数" align="center" > + <template slot-scope="{row}"> + <span :style="row.abolishments_num > 0 ? {color:'#0c60e1',cursor: 'pointer'} : {color: '#606266'}" @click="goList('hotwork',row.CORPINFO_ID, '3')">{{ row.abolishments_num }}</span> + </template> + </el-table-column> + <el-table-column prop="zdCount" label="进行数" align="center" > + <template slot-scope="{row}"> + <span :style="row.operations_num > 0 ? {color:'#0c60e1',cursor: 'pointer'} : {color: '#606266'}" @click="goList('hotwork',row.CORPINFO_ID, '4')">{{ row.operations_num }}</span> + </template> + </el-table-column> + </el-table> + <div class="page-btn-group"> + <div/> + <pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" /> + </div> + </div> +</template> + +<script> +import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包 +import { requestFN } from '@/utils/request' +import waves from '@/directive/waves' // waves directive +import SelectTree from '@/components/SelectTree' +export default { + components: { Pagination, SelectTree }, + directives: { waves }, + data() { + return { + USER_LEVEL: sessionStorage.getItem('user').LEVEL || -1, + config: config, + listLoading: true, + add: false, + del: false, + edit: false, + listQuery: { + page: 1, + limit: 20 + }, + total: 0, + KEYWORDS: '', + varList: [], + pd: [] + } + }, + + async created() { + await this.getList() + }, + methods: { + getQuery() { + this.getList() + }, + goKeyReset() { + this.KEYWORDS = '' + this.getList() + }, + // 点击列表数,跳转详情 + goList(tableName, CORPINFO_ID, ticketType) { + this.$parent.activeName = tableName + this.$parent.CORPINFO_ID = CORPINFO_ID + this.$parent.ticketType = ticketType + this.$parent.CUTROAD_ID ='' + }, + getList() { + return new Promise((resolve) => { + this.listLoading = true + requestFN( + '/gfHighWork/corpCountlist?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page, + { + COPRINF_ID: sessionStorage.getItem('user').CORPINFO_ID || '', + KEYWORDS: this.KEYWORDS + } + ).then((data) => { + this.listLoading = false + this.varList = data.varList + this.total = data.page.totalResult + resolve() + }).catch((e) => { + this.listLoading = false + }) + }) + } + } +} +</script> diff --git a/src/views/dangerousWork/highwork/components/detail.vue b/src/views/dangerousWork/highwork/components/detail.vue new file mode 100644 index 0000000..d253af5 --- /dev/null +++ b/src/views/dangerousWork/highwork/components/detail.vue @@ -0,0 +1,279 @@ +<template> + <div> + <div id="printTest" class="app-container print-work"> + <el-page-header content="审批表详情" class="no-print" @back="goBack"/> + <table class="table-ui"> + <thead> + <tr> + <td colspan="6" style="border: none"> + <div class="level-title mt-20"> + <h1>断路安全作业票</h1> + <div class="level-code" >编号:{{ pd.CHECK_NO }}</div> + </div> + </td> + </tr> + </thead> + <tr> + <td class="bbg">申请单位</td> + <td>{{ pd.APPLY_DEPARTMENT_NAME }}</td> + <td class="bbg">作业单位</td> + <td>{{ pd.CONSTRUCTION_DEPARTMENT_NAME }}</td> + <td class="bbg">作业负责人</td> + <td>{{ pd.CONSTRUCTION_USER_NAME }}</td> + </tr> + <tr> + <td class="bbg">涉及相关单位(部门)</td> + <td colspan="3">{{ pd.OTHER_DEPT }}</td> + <td class="bbg">监护人</td> + <td> + <div v-if="pd.GUARDIAN_USER_SIGNER_PATH" style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.GUARDIAN_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.GUARDIAN_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr> + <td class="bbg">断路原因</td> + <td colspan="5">{{ pd.WORK_REASON }}</td> + </tr> + <tr> + <td class="bbg">关联的其他特殊作业及安全作业票编号</td> + <td colspan="5">{{ pd.SPECIAL_WORK }}</td> + </tr> + <tr> + <td colspan="6"> + <div>断路地段示意图(可另附图)及相关说明:{{ pd.WORK_CONTENT }}</div> + <div style="display: flex;justify-content: space-between;margin-top: 20px;"> + <img v-viewer :src="config.fileUrl + pd.CONTENT_IMG_PATH" alt="" width="100" height="100"> + <div> + 编制人: + <img v-viewer :src="config.fileUrl + pd.APPLY_USER_SIGNER_PATH" alt="" width="100" height="100"> + {{ pd.APPLY_USER_SIGNER_TIME }} + </div> + </div> + </td> + </tr> + <tr> + <td class="bbg">风险辨识结果</td> + <td colspan="5">{{ pd.HAZARD_IDENTIFICATION.split(";_;")[0] }}</td> + </tr> + <tr> + <td class="bbg">作业实施时间</td> + <td colspan="5">{{ pd.WORK_START_DATE }}至{{ pd.WORK_END_DATE }}止</td> + </tr> + <tr> + <td colspan="6"> + <table class="table-ui"> + <tr> + <td>序号</td> + <td>安全措施</td> + <td>是否涉及</td> + <td>确认人</td> + </tr> + <tr v-for="(item,index) in measuresList" :key="index"> + <td>{{ index + 1 }}</td> + <td>{{ item.PROTECTIVE_MEASURES }}</td> + <td> + <span v-if="item.STATUS=='1'"><input type="radio" disabled checked>涉 及</span> + <span v-if="item.STATUS=='-1'"><input type="radio" disabled checked>不涉及</span> + </td> + <td> + {{ item.CONFIRM_NAME }} + </td> + </tr> + <tr v-if="pd.APPLY_USER_MEASURES || pd.CONSTRUCTION_USER_MEASURES || pd.PRODUCTION_USER_MEASURES || pd.SAFETY_USER_MEASURES || pd.LEADER_USER_MEASURES "> + <td>{{ measuresList.length + 1 }}</td> + <td colspan="3"> + <div v-if="pd.APPLY_USER_MEASURES" style="display: flex;justify-content: space-between;"> + <span>其他安全措施:{{ pd.APPLY_USER_MEASURES }}</span> + <span>编制人:{{ pd.APPLY_USER_NAME }}</span> + </div> + <div v-if="pd.CONSTRUCTION_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;"> + <span>其他安全措施:{{ pd.CONSTRUCTION_USER_MEASURES }}</span> + <span>编制人:{{ pd.CONSTRUCTION_USER_NAME }}</span> + </div> + <div v-if="pd.PRODUCTION_USER_ID && pd.PRODUCTION_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;"> + <span>其他安全措施:{{ pd.PRODUCTION_USER_MEASURES }}</span> + <span>编制人:{{ pd.PRODUCTION_USER_NAME }}</span> + </div> + <div v-if="pd.SAFETY_USER_ID && pd.SAFETY_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;"> + <span>其他安全措施:{{ pd.SAFETY_USER_MEASURES }}</span> + <span>编制人:{{ pd.SAFETY_USER_NAME }}</span> + </div> + <div v-if="pd.LEADER_USER_ID && pd.LEADER_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;"> + <span>其他安全措施:{{ pd.LEADER_USER_MEASURES }}</span> + <span>编制人:{{ pd.LEADER_USER_NAME }}</span> + </div> + </td> + </tr> + </table> + </td> + </tr> + <tr> + <td class="bbg">安全交底人</td> + <td colspan="10"> + <div v-if="pd.CONFESS_USER_SIGNER_PATH" style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.CONFESS_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr> + <td class="bbg">接受交底人</td> + <td colspan="10"> + <div v-for="item in imgList" :key="item.ACCEPT_CONFESS_ID" style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + item.ACCEPT_CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ item.ACCEPT_CONFESS_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="pd.CONSTRUCTION_USER_SIGNER_PATH"> + <td colspan="6"> + <div>作业负责人意见:{{ pd.CONSTRUCTION_CONTENT }}</div> + <div style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.CONSTRUCTION_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.CONSTRUCTION_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="pd.PRODUCTION_USER_SIGNER_PATH"> + <td colspan="6"> + <div>所在单位意见:{{ pd.PRODUCTION_CONTENT }}</div> + <div style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.PRODUCTION_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.PRODUCTION_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="pd.SAFETY_USER_SIGNER_PATH"> + <td colspan="6"> + <div>消防、安全管理部门意见:{{ pd.SAFETY_CONTENT }}</div> + <div style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.SAFETY_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.SAFETY_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="pd.LEADER_USER_SIGNER_PATH"> + <td colspan="6"> + <div>审批部门意见:{{ pd.LEADER_CONTENT }}</div> + <div style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.LEADER_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.LEADER_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="imgList1.length>0"> + <td colspan="10"> + <div>完工验收:{{ pd.ACCEPT_CONTENT }}</div> + <div v-for="item in imgList1" :key="item.ACCEPT_CONFESS_ID" style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + item.ACCEPT_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ item.ACCEPT_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + </table> + </div> + <div style="padding-top: 100px"/> + <div class="ui-foot"> + <el-button icon="el-icon-arrow-left" @click="goBack">返 回</el-button> + </div> + </div> +</template> + +<script> +import { requestFN } from '@/utils/request' +import dateformat from '@/utils/dateformat' +export default { + data() { + return { + config: config, + CUTROAD_ID: this.$parent.CUTROAD_ID, // 主键ID + pd: [], // 存放字段参数 + measuresList: [], + otherProtectiveMeasures: [], + imgList: [], + imgList1: [], + hazardIdentification: [] + } + }, + created() { + this.getData() + }, + methods: { + validStr(str) { + if (str != null && str != '' && typeof (str) != 'undefined' && str != 0) { return true } + return false + }, + formatTime(date, column) { + if (date) { + return dateformat(date, 'YYYY年MM月DD日HH时mm分') + } else { + return '' + } + }, + formatDate(date, column) { + if (date) { + return dateformat(date, 'YYYY-MM-DD') + } else { + return '' + } + }, + getRowKey(row) { + return row.CUTROAD_ID + }, + getData() { + this.listLoading = true + requestFN( + '/dangerousWork/gfcutroad/goEdit', + { + CUTROAD_ID: this.CUTROAD_ID + } + ).then((data) => { + this.listLoading = false + this.pd = data.pd // 参数map + this.measuresList = data.measuresList // 参数map + this.imgList = data.imgList + this.pd.APPLY_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[0] + this.pd.CONSTRUCTION_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[1] + this.pd.PRODUCTION_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[2] + this.pd.SAFETY_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[3] + this.pd.LEADER_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[4] + }).catch((e) => { + this.listLoading = false + }) + }, + goBack() { + this.$parent.activeName = 'circuit_list' + this.$parent.CUTROAD_ID = '' + } + + } +} +</script> + +<style lang="sass" scoped> +.print-approval-p10 + padding: 20px 0 + span + vertical-align: middle +.bbg + width: 270px +.print-approval-img + width: 200px + height: 97px + display: inline-block + img + width: 100% + height: 100% +.level-code + margin-left: auto +</style> diff --git a/src/views/dangerousWork/highwork/components/list.vue b/src/views/dangerousWork/highwork/components/list.vue new file mode 100644 index 0000000..37a1684 --- /dev/null +++ b/src/views/dangerousWork/highwork/components/list.vue @@ -0,0 +1,359 @@ +<template> + <div class="app-container"> + <el-form label-width="50px"> + <el-row> + <el-col :span="4"> + <el-form-item label="编号"> + <el-input v-model="KEYWORDS" placeholder="请输入编号"/> + </el-form-item> + </el-col> + <el-col :span="4"> + <el-form-item label="状态"> + <el-select v-model="STATUS" clearable placeholder="请选择" style="width: 100%;"> + <el-option v-for="item in statusList" :key="item.ID" :label="item.NAME" :value="item.ID" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="4"> + <el-form-item label-width="10px"> + <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery"> + 搜索 + </el-button> + <el-button v-waves icon="el-icon-refresh" type="success" @click="goKeyReset"> + 重置 + </el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + <el-table v-loading="listLoading" ref="multipleTable" :data="varList" :row-key="getRowKey" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row> + <el-table-column :reserve-selection="true" type="selection" width="57" align="center" /> + <el-table-column type="index" label="序号" width="50" align="center" /> + <el-table-column prop="CHECK_NO" label="编号" show-overflow-tooltip /> + <el-table-column prop="APPLY_USER_NAME" label="填写人" /> + <el-table-column prop="CONSTRUCTION_USER_NAME" label="作业负责人" show-overflow-tooltip /> + <el-table-column prop="PRODUCTION_USER_NAME" label="所在单位负责人" show-overflow-tooltip > + <template slot-scope="{row}"> + {{ row.PRODUCTION_USER_NAME || ' 已跳过' }} + </template> + </el-table-column> + <el-table-column prop="SAFETY_DEPARTMENT_NAME" label="消防、安全管理部门负责人" show-overflow-tooltip width="200"> + <template slot-scope="{row}"> + {{ row.SAFETY_DEPARTMENT_NAME || ' 已跳过' }} + </template> + </el-table-column> + <el-table-column prop="LEADER_USER_NAME" label="审批部门负责人" show-overflow-tooltip > + <template slot-scope="{row}"> + {{ row.LEADER_USER_NAME || ' 已跳过' }} + </template> + </el-table-column> + <el-table-column prop="ACCEPT_USER_NAME" label="验收部门负责人" show-overflow-tooltip /> + <el-table-column prop="STATUS" label="审核状态"> + <template slot-scope="{row}"> + <span v-if="row.APPLY_STATUS==0">断路安全作业待提交</span> + <span v-else-if="row.APPLY_STATUS==1">作业负责人待审核</span> + <span v-else-if="row.APPLY_STATUS==2">所在单位待审核</span> + <span v-else-if="row.APPLY_STATUS==3">消防、安全管理部门待审核</span> + <span v-else-if="row.APPLY_STATUS==4">审批部门待审核</span> + <span v-else-if="row.APPLY_STATUS==5">待验收</span> + <span v-else-if="row.APPLY_STATUS==6">验收归档</span> + <span v-else-if="row.APPLY_STATUS==-2">作业负责人审核打回</span> + <span v-else-if="row.APPLY_STATUS==-3">所在单位审核打回</span> + <span v-else-if="row.APPLY_STATUS==-4">消防、安全管理部门审核打回</span> + <span v-else-if="row.APPLY_STATUS==-5">审批部门审核打回</span> + <span v-else-if="row.APPLY_STATUS==-6">验收打回</span> + </template> + </el-table-column> + <el-table-column label="操作" align="center" width="230"> + <template slot-scope="{row}"> + <el-button type="primary" icon="el-icon-plus" @click="goChart(row)">流程图</el-button> + <el-button type="primary" icon="el-icon-document" size="mini" @click="goDetail(row.CUTROAD_ID)">审批表详情</el-button> + </template> + </el-table-column> + </el-table> + <div class="page-btn-group"> + <div> + </div> + <pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" /> + </div> + <el-dialog :visible.sync="dialogFormShow " :title="dialogType==='add'?'查看流程图':'新增'" width="1400px"> + <el-steps :active="getStatus()" :process-status="getProcessStatus()" finish-status="success" align-center> + <el-step title="断路安全作业提交"> + <template slot="description"> + <div>{{ getProcessMessage().title }}</div> + <div>{{ getProcessMessage().USER_NAME }}</div> + <div>{{ getProcessMessage().OPERATTIME }}</div> + </template> + </el-step> + <el-step title="作业负责人意见"> + <template slot="description"> + <div>{{ pd.CONSTRUCTION_USER_NAME }}</div> + <div>{{ pd.CONSTRUCTION_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="所在单位意见"> + <template slot="description"> + <div v-if="getIsPase('PRODUCTION_USER_NAME')">{{ '已跳过' }}</div> + <div v-else>{{ pd.PRODUCTION_USER_NAME }}</div> + <div>{{ pd.PRODUCTION_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="消防、安全管理部门意见" > + <template slot="description"> + <div v-if="getIsPase('SAFETY_DEPARTMENT_NAME')">{{ '已跳过' }}</div> + <div v-else>{{ pd.SAFETY_USER_NAME }}</div> + <div>{{ pd.SAFETY_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="审批部门意见" > + <template slot="description"> + <div v-if="getIsPase('LEADER_USER_NAME')">{{ '已跳过' }}</div> + <div v-else>{{ pd.LEADER_USER_NAME }}</div> + <div>{{ pd.LEADER_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="完成验收" description=""> + <template slot="description"> + <div>{{ pd.ACCEPT_USER_NAME }}</div> + <div>{{ pd.ACCEPT_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="验收归档" description=""> + <template slot="description"> + <div>{{ pd.ACCEPT_USER_NAME }}</div> + <div>{{ pd.ACCEPT_USER_SIGNER_TIME }}</div> + </template> + </el-step> + </el-steps> + <div style="margin: 60px 60px 0 60px;display: flex;justify-content: space-between"> + <div v-if="pd.GUARDIAN_USER_SIGNER_TIME"> + <div style="color: #13ce66"> + 监护人:{{ pd.GUARDIAN_USER_NAME }}已签字 + </div> + </div> + <div v-if="!pd.GUARDIAN_USER_SIGNER_TIME"> + <div style="color: red"> + 监护人:{{ pd.GUARDIAN_USER_NAME }}未签字 + </div> + </div> + <div v-if="pd.CONFESS_USER_SIGNER_TIME"> + <div style="color: #13ce66"> + 安全交底人:{{ pd.CONFESS_USER_NAME }}已签字 + </div> + </div> + <div v-if="!pd.CONFESS_USER_SIGNER_TIME"> + <div style="color: red"> + 安全交底人:{{ pd.CONFESS_USER_NAME }}未签字 + </div> + </div> + <div v-if="pd.ACCEPT_CONFESS_USER_SIGNER_TIME"> + <div style="color: #13ce66"> + 接受交底人:{{ pd.ACCEPT_CONFESS_USER_NAME }}已签字 + </div> + </div> + <div v-if="!pd.ACCEPT_CONFESS_USER_SIGNER_TIME"> + <div style="color: red"> + 接受交底人:{{ pd.ACCEPT_CONFESS_USER_NAME }}未签字 + </div> + </div> + </div> + <div slot="footer" class="dialog-footer"> + <!-- <el-button @click="dialogFormShow = false">取 消</el-button>--> + <el-button type="primary" @click="dialogFormShow = false">确 定</el-button> + </div> + </el-dialog> + <div style="height: 60px;"></div> + <div class="ui-foot"> + <el-button type="primary" @click="goBack">返 回</el-button> + </div> + </div> +</template> +<script> +import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包 +import { requestFN } from '@/utils/request' +import waves from '@/directive/waves' // waves directive +export default { + components: { Pagination }, + directives: { waves }, + data() { + return { + listLoading: true, + add: false, + del: false, + edit: false, + listQuery: { + page: 1, + limit: 20 + }, + total: 0, + KEYWORDS: '', + varList: [], + pd: [], + + multipleSelectionAll: [], // 所有选中的数据包含跨页数据 + multipleSelection: [], // 当前页选中的数据 + dialogFormShow: false, + dialogFormEdit: false, + dialogType: 'add', + replyVarList: [], // REPLY + replyListQuery: { + page: 1, + limit: 20 + }, + replyTotal: 0, + dialogFormHuifuShow: false, + statusList: [ + { ID: '', NAME: '请选择' }, + { ID: '0', NAME: '断路安全作业待提交' }, + { ID: '1', NAME: '作业负责人待审核' }, + { ID: '2', NAME: '所在单位待审核' }, + { ID: '3', NAME: '消防、安全管理部门待审核' }, + { ID: '4', NAME: '审批部门待审核' }, + { ID: '5', NAME: '待验收' }, + { ID: '6', NAME: '验收归档' }, + { ID: '-2', NAME: '作业负责人审核打回' }, + { ID: '-3', NAME: '所在单位审核打回' }, + { ID: '-4', NAME: '消防、安全管理部门审核打回' }, + { ID: '-5', NAME: '审批部门审核打回' }, + { ID: '-6', NAME: '验收打回' } + ], + STATUS: '', + DEPTIDS: '' + } + }, + created() { + this.getList() + }, + methods: { + getRowKey(row) { + return row.CUTROAD_ID + }, + // 搜索 + getQuery() { + this.$refs.multipleTable.clearSelection() + this.getList() + }, + goKeyReset() { + this.KEYWORDS = '' + this.STATUS = '' + this.getQuery() + }, + // 获取列表 + getList() { + this.listLoading = true + requestFN( + '/gfHighWork/list?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page, + { + KEYWORDS: this.KEYWORDS, APPLY_STATUS: this.STATUS, + DEPTIDS: this.DEPTIDS, tm: new Date().getTime(), + CORPINFO_ID: this.$parent.CORPINFO_ID, + ticketType: this.$parent.ticketType + } + ).then((data) => { + this.listLoading = false + this.varList = data.varList + this.total = data.page.totalResult + }).catch((e) => { + this.listLoading = false + }) + }, + goChart(row) { + this.pd = row + this.dialogFormShow = true + }, + getStatus() { + if (this.pd.APPLY_STATUS <= '0') { + return 0 + } + if (this.pd.APPLY_STATUS == '1') { + return 1 + } + if (this.pd.APPLY_STATUS == '2') { + return 2 + } + if (this.pd.APPLY_STATUS == '3') { + return 3 + } + if (this.pd.APPLY_STATUS == '4') { + return 4 + } + if (this.pd.APPLY_STATUS == '5') { + return 5 + } + if (this.pd.APPLY_STATUS == '6') { + return 7 + } + }, + getProcessStatus() { + if (this.pd.APPLY_STATUS < '0') { + return 'error' + } else { + return 'process' + } + }, + getProcessMessage() { + let obj = {} + if (this.pd.APPLY_STATUS >= '0') { + obj = { + title: '', + USER_NAME: this.pd.APPLY_USER_NAME, + OPERATTIME: this.pd.CREATTIME + } + } + if (this.pd.APPLY_STATUS == '-2') { + obj = { + title: '作业负责人审核打回', + USER_NAME: this.pd.CONSTRUCTION_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + if (this.pd.APPLY_STATUS == '-3') { + obj = { + title: '所在单位审核打回', + USER_NAME: this.pd.PRODUCTION_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + if (this.pd.APPLY_STATUS == '-4') { + obj = { + title: '消防、安全管理部门审核打回', + USER_NAME: this.pd.SAFETY_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + if (this.pd.APPLY_STATUS == '-5') { + obj = { + title: '审批部门审核打回', + USER_NAME: this.pd.LEADER_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + if (this.pd.APPLY_STATUS == '-6') { + obj = { + title: '验收打回', + AUSER_NAME: this.pd.ACCEPT_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + return obj + }, + getIsPase(col) { + if (!this.pd[col]) { + return '已跳过' + } + }, + goBack(){ + this.$parent.activeName = 'CorpInfo' + this.$parent.CORPINFO_ID = '' + this.$parent.ticketType = '' + this.$parent.CUTROAD_ID ='' + }, + goDetail(id) { + console.info(id) + this.$parent.activeName = 'Detail' + this.$parent.CUTROAD_ID = id + } + } +} + +</script> diff --git a/src/views/dangerousWork/highwork/index.vue b/src/views/dangerousWork/highwork/index.vue new file mode 100644 index 0000000..304c72e --- /dev/null +++ b/src/views/dangerousWork/highwork/index.vue @@ -0,0 +1,20 @@ +<template> + <div> + <CorpInfo v-show="activeName=='CorpInfo'" ref="list" /> + <hotwork v-if="activeName=='hotwork'"/> + </div> +</template> +<script> + import CorpInfo from './components/corpInfo' + import hotwork from './components/list' +export default { + components: { CorpInfo, hotwork }, + data() { + return { + activeName: 'CorpInfo', + CORPINFO_ID: '', + ticketType: '' + } + } +} +</script> diff --git a/src/views/dangerousWork/hoisting/components/corpInfo.vue b/src/views/dangerousWork/hoisting/components/corpInfo.vue new file mode 100644 index 0000000..d7d1966 --- /dev/null +++ b/src/views/dangerousWork/hoisting/components/corpInfo.vue @@ -0,0 +1,128 @@ +<template> + <div class="app-container"> + <div class="filter-container"> + <div class="filter-group "> + <div class="filter-lable" style="width: 60px"> + 公司名称: + </div> + <div class="filter-width"> + <el-input v-model="KEYWORDS" placeholder="公司名称" class="filter-item" style="width: 150px;"/> + </div> + </div> + <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery"> + 搜索 + </el-button> + <el-button v-waves class="filter-item" type="success" icon="el-icon-refresh" @click="goKeyReset"> + 重置 + </el-button> + </div> + <el-table + v-loading="listLoading" + ref="multipleTable" + :data="varList" + :header-cell-style="{ + 'font-weight': 'bold', + 'color': '#000' + }" + tooltip-effect="dark" + border + fit + highlight-current-row + > + <el-table-column type="index" label="序号" width="50" align="center" /> + <el-table-column prop="CORP_NAME" label="公司名称" /> + <el-table-column prop="checkedCount" label="申请总数" align="center" > + <template slot-scope="{row}"> + <span :style="row.applications_num > 0 ? {color:'#0c60e1',cursor: 'pointer'} : {color: '#606266'}" @click="goList('circuit_list',row.CORPINFO_ID,'1')">{{ row.applications_num }}</span> + </template> + </el-table-column> + <el-table-column prop="checkedItemCount" label="完成数" align="center" > + <template slot-scope="{row}"> + <span :style="row.completions_num > 0 ? {color:'#0c60e1',cursor: 'pointer'} : {color: '#606266'}" @click="goList('circuit_list',row.CORPINFO_ID,'2')">{{ row.completions_num }}</span> + </template> + </el-table-column> + <el-table-column prop="ybCount" label="废除数" align="center" > + <template slot-scope="{row}"> + <span :style="row.abolishments_num > 0 ? {color:'#0c60e1',cursor: 'pointer'} : {color: '#606266'}" @click="goList('circuit_list',row.CORPINFO_ID, '3')">{{ row.abolishments_num }}</span> + </template> + </el-table-column> + <el-table-column prop="zdCount" label="进行数" align="center" > + <template slot-scope="{row}"> + <span :style="row.operations_num > 0 ? {color:'#0c60e1',cursor: 'pointer'} : {color: '#606266'}" @click="goList('circuit_list',row.CORPINFO_ID, '4')">{{ row.operations_num }}</span> + </template> + </el-table-column> + </el-table> + <div class="page-btn-group"> + <div/> + <pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" /> + </div> + </div> +</template> + +<script> +import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包 +import { requestFN } from '@/utils/request' +import waves from '@/directive/waves' // waves directive +import SelectTree from '@/components/SelectTree' +export default { + components: { Pagination, SelectTree }, + directives: { waves }, + data() { + return { + USER_LEVEL: sessionStorage.getItem('user').LEVEL || -1, + config: config, + listLoading: true, + add: false, + del: false, + edit: false, + listQuery: { + page: 1, + limit: 20 + }, + total: 0, + KEYWORDS: '', + varList: [], + pd: [] + } + }, + + async created() { + await this.getList() + }, + methods: { + getQuery() { + this.getList() + }, + goKeyReset() { + this.KEYWORDS = '' + this.getList() + }, + // 点击列表数,跳转详情 + goList(tableName, CORPINFO_ID, ticketType) { + this.$parent.activeName = tableName + this.$parent.CORPINFO_ID = CORPINFO_ID + this.$parent.ticketType = ticketType + this.$parent.CUTROAD_ID ='' + }, + getList() { + return new Promise((resolve) => { + this.listLoading = true + requestFN( + '/gfHoisting/corpCountlist?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page, + { + COPRINF_ID: sessionStorage.getItem('user').CORPINFO_ID || '', + KEYWORDS: this.KEYWORDS + } + ).then((data) => { + this.listLoading = false + this.varList = data.varList + this.total = data.page.totalResult + resolve() + }).catch((e) => { + this.listLoading = false + }) + }) + } + } +} +</script> diff --git a/src/views/dangerousWork/hoisting/components/detail.vue b/src/views/dangerousWork/hoisting/components/detail.vue new file mode 100644 index 0000000..d253af5 --- /dev/null +++ b/src/views/dangerousWork/hoisting/components/detail.vue @@ -0,0 +1,279 @@ +<template> + <div> + <div id="printTest" class="app-container print-work"> + <el-page-header content="审批表详情" class="no-print" @back="goBack"/> + <table class="table-ui"> + <thead> + <tr> + <td colspan="6" style="border: none"> + <div class="level-title mt-20"> + <h1>断路安全作业票</h1> + <div class="level-code" >编号:{{ pd.CHECK_NO }}</div> + </div> + </td> + </tr> + </thead> + <tr> + <td class="bbg">申请单位</td> + <td>{{ pd.APPLY_DEPARTMENT_NAME }}</td> + <td class="bbg">作业单位</td> + <td>{{ pd.CONSTRUCTION_DEPARTMENT_NAME }}</td> + <td class="bbg">作业负责人</td> + <td>{{ pd.CONSTRUCTION_USER_NAME }}</td> + </tr> + <tr> + <td class="bbg">涉及相关单位(部门)</td> + <td colspan="3">{{ pd.OTHER_DEPT }}</td> + <td class="bbg">监护人</td> + <td> + <div v-if="pd.GUARDIAN_USER_SIGNER_PATH" style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.GUARDIAN_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.GUARDIAN_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr> + <td class="bbg">断路原因</td> + <td colspan="5">{{ pd.WORK_REASON }}</td> + </tr> + <tr> + <td class="bbg">关联的其他特殊作业及安全作业票编号</td> + <td colspan="5">{{ pd.SPECIAL_WORK }}</td> + </tr> + <tr> + <td colspan="6"> + <div>断路地段示意图(可另附图)及相关说明:{{ pd.WORK_CONTENT }}</div> + <div style="display: flex;justify-content: space-between;margin-top: 20px;"> + <img v-viewer :src="config.fileUrl + pd.CONTENT_IMG_PATH" alt="" width="100" height="100"> + <div> + 编制人: + <img v-viewer :src="config.fileUrl + pd.APPLY_USER_SIGNER_PATH" alt="" width="100" height="100"> + {{ pd.APPLY_USER_SIGNER_TIME }} + </div> + </div> + </td> + </tr> + <tr> + <td class="bbg">风险辨识结果</td> + <td colspan="5">{{ pd.HAZARD_IDENTIFICATION.split(";_;")[0] }}</td> + </tr> + <tr> + <td class="bbg">作业实施时间</td> + <td colspan="5">{{ pd.WORK_START_DATE }}至{{ pd.WORK_END_DATE }}止</td> + </tr> + <tr> + <td colspan="6"> + <table class="table-ui"> + <tr> + <td>序号</td> + <td>安全措施</td> + <td>是否涉及</td> + <td>确认人</td> + </tr> + <tr v-for="(item,index) in measuresList" :key="index"> + <td>{{ index + 1 }}</td> + <td>{{ item.PROTECTIVE_MEASURES }}</td> + <td> + <span v-if="item.STATUS=='1'"><input type="radio" disabled checked>涉 及</span> + <span v-if="item.STATUS=='-1'"><input type="radio" disabled checked>不涉及</span> + </td> + <td> + {{ item.CONFIRM_NAME }} + </td> + </tr> + <tr v-if="pd.APPLY_USER_MEASURES || pd.CONSTRUCTION_USER_MEASURES || pd.PRODUCTION_USER_MEASURES || pd.SAFETY_USER_MEASURES || pd.LEADER_USER_MEASURES "> + <td>{{ measuresList.length + 1 }}</td> + <td colspan="3"> + <div v-if="pd.APPLY_USER_MEASURES" style="display: flex;justify-content: space-between;"> + <span>其他安全措施:{{ pd.APPLY_USER_MEASURES }}</span> + <span>编制人:{{ pd.APPLY_USER_NAME }}</span> + </div> + <div v-if="pd.CONSTRUCTION_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;"> + <span>其他安全措施:{{ pd.CONSTRUCTION_USER_MEASURES }}</span> + <span>编制人:{{ pd.CONSTRUCTION_USER_NAME }}</span> + </div> + <div v-if="pd.PRODUCTION_USER_ID && pd.PRODUCTION_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;"> + <span>其他安全措施:{{ pd.PRODUCTION_USER_MEASURES }}</span> + <span>编制人:{{ pd.PRODUCTION_USER_NAME }}</span> + </div> + <div v-if="pd.SAFETY_USER_ID && pd.SAFETY_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;"> + <span>其他安全措施:{{ pd.SAFETY_USER_MEASURES }}</span> + <span>编制人:{{ pd.SAFETY_USER_NAME }}</span> + </div> + <div v-if="pd.LEADER_USER_ID && pd.LEADER_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;"> + <span>其他安全措施:{{ pd.LEADER_USER_MEASURES }}</span> + <span>编制人:{{ pd.LEADER_USER_NAME }}</span> + </div> + </td> + </tr> + </table> + </td> + </tr> + <tr> + <td class="bbg">安全交底人</td> + <td colspan="10"> + <div v-if="pd.CONFESS_USER_SIGNER_PATH" style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.CONFESS_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr> + <td class="bbg">接受交底人</td> + <td colspan="10"> + <div v-for="item in imgList" :key="item.ACCEPT_CONFESS_ID" style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + item.ACCEPT_CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ item.ACCEPT_CONFESS_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="pd.CONSTRUCTION_USER_SIGNER_PATH"> + <td colspan="6"> + <div>作业负责人意见:{{ pd.CONSTRUCTION_CONTENT }}</div> + <div style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.CONSTRUCTION_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.CONSTRUCTION_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="pd.PRODUCTION_USER_SIGNER_PATH"> + <td colspan="6"> + <div>所在单位意见:{{ pd.PRODUCTION_CONTENT }}</div> + <div style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.PRODUCTION_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.PRODUCTION_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="pd.SAFETY_USER_SIGNER_PATH"> + <td colspan="6"> + <div>消防、安全管理部门意见:{{ pd.SAFETY_CONTENT }}</div> + <div style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.SAFETY_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.SAFETY_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="pd.LEADER_USER_SIGNER_PATH"> + <td colspan="6"> + <div>审批部门意见:{{ pd.LEADER_CONTENT }}</div> + <div style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.LEADER_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.LEADER_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="imgList1.length>0"> + <td colspan="10"> + <div>完工验收:{{ pd.ACCEPT_CONTENT }}</div> + <div v-for="item in imgList1" :key="item.ACCEPT_CONFESS_ID" style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + item.ACCEPT_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ item.ACCEPT_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + </table> + </div> + <div style="padding-top: 100px"/> + <div class="ui-foot"> + <el-button icon="el-icon-arrow-left" @click="goBack">返 回</el-button> + </div> + </div> +</template> + +<script> +import { requestFN } from '@/utils/request' +import dateformat from '@/utils/dateformat' +export default { + data() { + return { + config: config, + CUTROAD_ID: this.$parent.CUTROAD_ID, // 主键ID + pd: [], // 存放字段参数 + measuresList: [], + otherProtectiveMeasures: [], + imgList: [], + imgList1: [], + hazardIdentification: [] + } + }, + created() { + this.getData() + }, + methods: { + validStr(str) { + if (str != null && str != '' && typeof (str) != 'undefined' && str != 0) { return true } + return false + }, + formatTime(date, column) { + if (date) { + return dateformat(date, 'YYYY年MM月DD日HH时mm分') + } else { + return '' + } + }, + formatDate(date, column) { + if (date) { + return dateformat(date, 'YYYY-MM-DD') + } else { + return '' + } + }, + getRowKey(row) { + return row.CUTROAD_ID + }, + getData() { + this.listLoading = true + requestFN( + '/dangerousWork/gfcutroad/goEdit', + { + CUTROAD_ID: this.CUTROAD_ID + } + ).then((data) => { + this.listLoading = false + this.pd = data.pd // 参数map + this.measuresList = data.measuresList // 参数map + this.imgList = data.imgList + this.pd.APPLY_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[0] + this.pd.CONSTRUCTION_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[1] + this.pd.PRODUCTION_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[2] + this.pd.SAFETY_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[3] + this.pd.LEADER_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[4] + }).catch((e) => { + this.listLoading = false + }) + }, + goBack() { + this.$parent.activeName = 'circuit_list' + this.$parent.CUTROAD_ID = '' + } + + } +} +</script> + +<style lang="sass" scoped> +.print-approval-p10 + padding: 20px 0 + span + vertical-align: middle +.bbg + width: 270px +.print-approval-img + width: 200px + height: 97px + display: inline-block + img + width: 100% + height: 100% +.level-code + margin-left: auto +</style> diff --git a/src/views/dangerousWork/hoisting/components/list.vue b/src/views/dangerousWork/hoisting/components/list.vue new file mode 100644 index 0000000..6241d41 --- /dev/null +++ b/src/views/dangerousWork/hoisting/components/list.vue @@ -0,0 +1,359 @@ +<template> + <div class="app-container"> + <el-form label-width="50px"> + <el-row> + <el-col :span="4"> + <el-form-item label="编号"> + <el-input v-model="KEYWORDS" placeholder="请输入编号"/> + </el-form-item> + </el-col> + <el-col :span="4"> + <el-form-item label="状态"> + <el-select v-model="STATUS" clearable placeholder="请选择" style="width: 100%;"> + <el-option v-for="item in statusList" :key="item.ID" :label="item.NAME" :value="item.ID" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="4"> + <el-form-item label-width="10px"> + <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery"> + 搜索 + </el-button> + <el-button v-waves icon="el-icon-refresh" type="success" @click="goKeyReset"> + 重置 + </el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + <el-table v-loading="listLoading" ref="multipleTable" :data="varList" :row-key="getRowKey" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row> + <el-table-column :reserve-selection="true" type="selection" width="57" align="center" /> + <el-table-column type="index" label="序号" width="50" align="center" /> + <el-table-column prop="CHECK_NO" label="编号" show-overflow-tooltip /> + <el-table-column prop="APPLY_USER_NAME" label="填写人" /> + <el-table-column prop="CONSTRUCTION_USER_NAME" label="作业负责人" show-overflow-tooltip /> + <el-table-column prop="PRODUCTION_USER_NAME" label="所在单位负责人" show-overflow-tooltip > + <template slot-scope="{row}"> + {{ row.PRODUCTION_USER_NAME || ' 已跳过' }} + </template> + </el-table-column> + <el-table-column prop="SAFETY_DEPARTMENT_NAME" label="消防、安全管理部门负责人" show-overflow-tooltip width="200"> + <template slot-scope="{row}"> + {{ row.SAFETY_DEPARTMENT_NAME || ' 已跳过' }} + </template> + </el-table-column> + <el-table-column prop="LEADER_USER_NAME" label="审批部门负责人" show-overflow-tooltip > + <template slot-scope="{row}"> + {{ row.LEADER_USER_NAME || ' 已跳过' }} + </template> + </el-table-column> + <el-table-column prop="ACCEPT_USER_NAME" label="验收部门负责人" show-overflow-tooltip /> + <el-table-column prop="STATUS" label="审核状态"> + <template slot-scope="{row}"> + <span v-if="row.APPLY_STATUS==0">断路安全作业待提交</span> + <span v-else-if="row.APPLY_STATUS==1">作业负责人待审核</span> + <span v-else-if="row.APPLY_STATUS==2">所在单位待审核</span> + <span v-else-if="row.APPLY_STATUS==3">消防、安全管理部门待审核</span> + <span v-else-if="row.APPLY_STATUS==4">审批部门待审核</span> + <span v-else-if="row.APPLY_STATUS==5">待验收</span> + <span v-else-if="row.APPLY_STATUS==6">验收归档</span> + <span v-else-if="row.APPLY_STATUS==-2">作业负责人审核打回</span> + <span v-else-if="row.APPLY_STATUS==-3">所在单位审核打回</span> + <span v-else-if="row.APPLY_STATUS==-4">消防、安全管理部门审核打回</span> + <span v-else-if="row.APPLY_STATUS==-5">审批部门审核打回</span> + <span v-else-if="row.APPLY_STATUS==-6">验收打回</span> + </template> + </el-table-column> + <el-table-column label="操作" align="center" width="230"> + <template slot-scope="{row}"> + <el-button type="primary" icon="el-icon-plus" @click="goChart(row)">流程图</el-button> + <el-button type="primary" icon="el-icon-document" size="mini" @click="goDetail(row.CUTROAD_ID)">审批表详情</el-button> + </template> + </el-table-column> + </el-table> + <div class="page-btn-group"> + <div> + </div> + <pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" /> + </div> + <el-dialog :visible.sync="dialogFormShow " :title="dialogType==='add'?'查看流程图':'新增'" width="1400px"> + <el-steps :active="getStatus()" :process-status="getProcessStatus()" finish-status="success" align-center> + <el-step title="断路安全作业提交"> + <template slot="description"> + <div>{{ getProcessMessage().title }}</div> + <div>{{ getProcessMessage().USER_NAME }}</div> + <div>{{ getProcessMessage().OPERATTIME }}</div> + </template> + </el-step> + <el-step title="作业负责人意见"> + <template slot="description"> + <div>{{ pd.CONSTRUCTION_USER_NAME }}</div> + <div>{{ pd.CONSTRUCTION_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="所在单位意见"> + <template slot="description"> + <div v-if="getIsPase('PRODUCTION_USER_NAME')">{{ '已跳过' }}</div> + <div v-else>{{ pd.PRODUCTION_USER_NAME }}</div> + <div>{{ pd.PRODUCTION_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="消防、安全管理部门意见" > + <template slot="description"> + <div v-if="getIsPase('SAFETY_DEPARTMENT_NAME')">{{ '已跳过' }}</div> + <div v-else>{{ pd.SAFETY_USER_NAME }}</div> + <div>{{ pd.SAFETY_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="审批部门意见" > + <template slot="description"> + <div v-if="getIsPase('LEADER_USER_NAME')">{{ '已跳过' }}</div> + <div v-else>{{ pd.LEADER_USER_NAME }}</div> + <div>{{ pd.LEADER_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="完成验收" description=""> + <template slot="description"> + <div>{{ pd.ACCEPT_USER_NAME }}</div> + <div>{{ pd.ACCEPT_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="验收归档" description=""> + <template slot="description"> + <div>{{ pd.ACCEPT_USER_NAME }}</div> + <div>{{ pd.ACCEPT_USER_SIGNER_TIME }}</div> + </template> + </el-step> + </el-steps> + <div style="margin: 60px 60px 0 60px;display: flex;justify-content: space-between"> + <div v-if="pd.GUARDIAN_USER_SIGNER_TIME"> + <div style="color: #13ce66"> + 监护人:{{ pd.GUARDIAN_USER_NAME }}已签字 + </div> + </div> + <div v-if="!pd.GUARDIAN_USER_SIGNER_TIME"> + <div style="color: red"> + 监护人:{{ pd.GUARDIAN_USER_NAME }}未签字 + </div> + </div> + <div v-if="pd.CONFESS_USER_SIGNER_TIME"> + <div style="color: #13ce66"> + 安全交底人:{{ pd.CONFESS_USER_NAME }}已签字 + </div> + </div> + <div v-if="!pd.CONFESS_USER_SIGNER_TIME"> + <div style="color: red"> + 安全交底人:{{ pd.CONFESS_USER_NAME }}未签字 + </div> + </div> + <div v-if="pd.ACCEPT_CONFESS_USER_SIGNER_TIME"> + <div style="color: #13ce66"> + 接受交底人:{{ pd.ACCEPT_CONFESS_USER_NAME }}已签字 + </div> + </div> + <div v-if="!pd.ACCEPT_CONFESS_USER_SIGNER_TIME"> + <div style="color: red"> + 接受交底人:{{ pd.ACCEPT_CONFESS_USER_NAME }}未签字 + </div> + </div> + </div> + <div slot="footer" class="dialog-footer"> + <!-- <el-button @click="dialogFormShow = false">取 消</el-button>--> + <el-button type="primary" @click="dialogFormShow = false">确 定</el-button> + </div> + </el-dialog> + <div style="height: 60px;"></div> + <div class="ui-foot"> + <el-button type="primary" @click="goBack">返 回</el-button> + </div> + </div> +</template> +<script> +import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包 +import { requestFN } from '@/utils/request' +import waves from '@/directive/waves' // waves directive +export default { + components: { Pagination }, + directives: { waves }, + data() { + return { + listLoading: true, + add: false, + del: false, + edit: false, + listQuery: { + page: 1, + limit: 20 + }, + total: 0, + KEYWORDS: '', + varList: [], + pd: [], + + multipleSelectionAll: [], // 所有选中的数据包含跨页数据 + multipleSelection: [], // 当前页选中的数据 + dialogFormShow: false, + dialogFormEdit: false, + dialogType: 'add', + replyVarList: [], // REPLY + replyListQuery: { + page: 1, + limit: 20 + }, + replyTotal: 0, + dialogFormHuifuShow: false, + statusList: [ + { ID: '', NAME: '请选择' }, + { ID: '0', NAME: '断路安全作业待提交' }, + { ID: '1', NAME: '作业负责人待审核' }, + { ID: '2', NAME: '所在单位待审核' }, + { ID: '3', NAME: '消防、安全管理部门待审核' }, + { ID: '4', NAME: '审批部门待审核' }, + { ID: '5', NAME: '待验收' }, + { ID: '6', NAME: '验收归档' }, + { ID: '-2', NAME: '作业负责人审核打回' }, + { ID: '-3', NAME: '所在单位审核打回' }, + { ID: '-4', NAME: '消防、安全管理部门审核打回' }, + { ID: '-5', NAME: '审批部门审核打回' }, + { ID: '-6', NAME: '验收打回' } + ], + STATUS: '', + DEPTIDS: '' + } + }, + created() { + this.getList() + }, + methods: { + getRowKey(row) { + return row.CUTROAD_ID + }, + // 搜索 + getQuery() { + this.$refs.multipleTable.clearSelection() + this.getList() + }, + goKeyReset() { + this.KEYWORDS = '' + this.STATUS = '' + this.getQuery() + }, + // 获取列表 + getList() { + this.listLoading = true + requestFN( + '/dangerousWork/gfcutroad/list?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page, + { + KEYWORDS: this.KEYWORDS, APPLY_STATUS: this.STATUS, + DEPTIDS: this.DEPTIDS, tm: new Date().getTime(), + CORPINFO_ID: this.$parent.CORPINFO_ID, + ticketType: this.$parent.ticketType + } + ).then((data) => { + this.listLoading = false + this.varList = data.varList + this.total = data.page.totalResult + }).catch((e) => { + this.listLoading = false + }) + }, + goChart(row) { + this.pd = row + this.dialogFormShow = true + }, + getStatus() { + if (this.pd.APPLY_STATUS <= '0') { + return 0 + } + if (this.pd.APPLY_STATUS == '1') { + return 1 + } + if (this.pd.APPLY_STATUS == '2') { + return 2 + } + if (this.pd.APPLY_STATUS == '3') { + return 3 + } + if (this.pd.APPLY_STATUS == '4') { + return 4 + } + if (this.pd.APPLY_STATUS == '5') { + return 5 + } + if (this.pd.APPLY_STATUS == '6') { + return 7 + } + }, + getProcessStatus() { + if (this.pd.APPLY_STATUS < '0') { + return 'error' + } else { + return 'process' + } + }, + getProcessMessage() { + let obj = {} + if (this.pd.APPLY_STATUS >= '0') { + obj = { + title: '', + USER_NAME: this.pd.APPLY_USER_NAME, + OPERATTIME: this.pd.CREATTIME + } + } + if (this.pd.APPLY_STATUS == '-2') { + obj = { + title: '作业负责人审核打回', + USER_NAME: this.pd.CONSTRUCTION_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + if (this.pd.APPLY_STATUS == '-3') { + obj = { + title: '所在单位审核打回', + USER_NAME: this.pd.PRODUCTION_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + if (this.pd.APPLY_STATUS == '-4') { + obj = { + title: '消防、安全管理部门审核打回', + USER_NAME: this.pd.SAFETY_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + if (this.pd.APPLY_STATUS == '-5') { + obj = { + title: '审批部门审核打回', + USER_NAME: this.pd.LEADER_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + if (this.pd.APPLY_STATUS == '-6') { + obj = { + title: '验收打回', + AUSER_NAME: this.pd.ACCEPT_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + return obj + }, + getIsPase(col) { + if (!this.pd[col]) { + return '已跳过' + } + }, + goBack(){ + this.$parent.activeName = 'CorpInfo' + this.$parent.CORPINFO_ID = '' + this.$parent.ticketType = '' + this.$parent.CUTROAD_ID ='' + }, + goDetail(id) { + console.info(id) + this.$parent.activeName = 'Detail' + this.$parent.CUTROAD_ID = id + } + } +} + +</script> diff --git a/src/views/dangerousWork/hoisting/index.vue b/src/views/dangerousWork/hoisting/index.vue new file mode 100644 index 0000000..0795164 --- /dev/null +++ b/src/views/dangerousWork/hoisting/index.vue @@ -0,0 +1,20 @@ +<template> + <div> + <CorpInfo v-show="activeName=='CorpInfo'" ref="list" /> + <Hoisting v-if="activeName=='Hoisting'"/> + </div> +</template> +<script> + import CorpInfo from './components/corpInfo' + import Hoisting from './components/list' +export default { + components: { CorpInfo, Hoisting }, + data() { + return { + activeName: 'CorpInfo', + CORPINFO_ID: '', + ticketType: '' + } + } +} +</script> diff --git a/src/views/dangerousWork/lectricity/components/corpInfo.vue b/src/views/dangerousWork/lectricity/components/corpInfo.vue new file mode 100644 index 0000000..eefa197 --- /dev/null +++ b/src/views/dangerousWork/lectricity/components/corpInfo.vue @@ -0,0 +1,128 @@ +<template> + <div class="app-container"> + <div class="filter-container"> + <div class="filter-group "> + <div class="filter-lable" style="width: 60px"> + 公司名称: + </div> + <div class="filter-width"> + <el-input v-model="KEYWORDS" placeholder="公司名称" class="filter-item" style="width: 150px;"/> + </div> + </div> + <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery"> + 搜索 + </el-button> + <el-button v-waves class="filter-item" type="success" icon="el-icon-refresh" @click="goKeyReset"> + 重置 + </el-button> + </div> + <el-table + v-loading="listLoading" + ref="multipleTable" + :data="varList" + :header-cell-style="{ + 'font-weight': 'bold', + 'color': '#000' + }" + tooltip-effect="dark" + border + fit + highlight-current-row + > + <el-table-column type="index" label="序号" width="50" align="center" /> + <el-table-column prop="CORP_NAME" label="公司名称" /> + <el-table-column prop="checkedCount" label="申请总数" align="center" > + <template slot-scope="{row}"> + <span :style="row.applications_num > 0 ? {color:'#0c60e1',cursor: 'pointer'} : {color: '#606266'}" @click="goList('circuit_list',row.CORPINFO_ID,'1')">{{ row.applications_num }}</span> + </template> + </el-table-column> + <el-table-column prop="checkedItemCount" label="完成数" align="center" > + <template slot-scope="{row}"> + <span :style="row.completions_num > 0 ? {color:'#0c60e1',cursor: 'pointer'} : {color: '#606266'}" @click="goList('circuit_list',row.CORPINFO_ID,'2')">{{ row.completions_num }}</span> + </template> + </el-table-column> + <el-table-column prop="ybCount" label="废除数" align="center" > + <template slot-scope="{row}"> + <span :style="row.abolishments_num > 0 ? {color:'#0c60e1',cursor: 'pointer'} : {color: '#606266'}" @click="goList('circuit_list',row.CORPINFO_ID, '3')">{{ row.abolishments_num }}</span> + </template> + </el-table-column> + <el-table-column prop="zdCount" label="进行数" align="center" > + <template slot-scope="{row}"> + <span :style="row.operations_num > 0 ? {color:'#0c60e1',cursor: 'pointer'} : {color: '#606266'}" @click="goList('circuit_list',row.CORPINFO_ID, '4')">{{ row.operations_num }}</span> + </template> + </el-table-column> + </el-table> + <div class="page-btn-group"> + <div/> + <pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" /> + </div> + </div> +</template> + +<script> +import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包 +import { requestFN } from '@/utils/request' +import waves from '@/directive/waves' // waves directive +import SelectTree from '@/components/SelectTree' +export default { + components: { Pagination, SelectTree }, + directives: { waves }, + data() { + return { + USER_LEVEL: sessionStorage.getItem('user').LEVEL || -1, + config: config, + listLoading: true, + add: false, + del: false, + edit: false, + listQuery: { + page: 1, + limit: 20 + }, + total: 0, + KEYWORDS: '', + varList: [], + pd: [] + } + }, + + async created() { + await this.getList() + }, + methods: { + getQuery() { + this.getList() + }, + goKeyReset() { + this.KEYWORDS = '' + this.getList() + }, + // 点击列表数,跳转详情 + goList(tableName, CORPINFO_ID, ticketType) { + this.$parent.activeName = tableName + this.$parent.CORPINFO_ID = CORPINFO_ID + this.$parent.ticketType = ticketType + this.$parent.CUTROAD_ID ='' + }, + getList() { + return new Promise((resolve) => { + this.listLoading = true + requestFN( + '/dangerousWork/gfcutroad/corpCountlist?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page, + { + COPRINF_ID: sessionStorage.getItem('user').CORPINFO_ID || '', + KEYWORDS: this.KEYWORDS + } + ).then((data) => { + this.listLoading = false + this.varList = data.varList + this.total = data.page.totalResult + resolve() + }).catch((e) => { + this.listLoading = false + }) + }) + } + } +} +</script> diff --git a/src/views/dangerousWork/lectricity/components/detail.vue b/src/views/dangerousWork/lectricity/components/detail.vue new file mode 100644 index 0000000..d253af5 --- /dev/null +++ b/src/views/dangerousWork/lectricity/components/detail.vue @@ -0,0 +1,279 @@ +<template> + <div> + <div id="printTest" class="app-container print-work"> + <el-page-header content="审批表详情" class="no-print" @back="goBack"/> + <table class="table-ui"> + <thead> + <tr> + <td colspan="6" style="border: none"> + <div class="level-title mt-20"> + <h1>断路安全作业票</h1> + <div class="level-code" >编号:{{ pd.CHECK_NO }}</div> + </div> + </td> + </tr> + </thead> + <tr> + <td class="bbg">申请单位</td> + <td>{{ pd.APPLY_DEPARTMENT_NAME }}</td> + <td class="bbg">作业单位</td> + <td>{{ pd.CONSTRUCTION_DEPARTMENT_NAME }}</td> + <td class="bbg">作业负责人</td> + <td>{{ pd.CONSTRUCTION_USER_NAME }}</td> + </tr> + <tr> + <td class="bbg">涉及相关单位(部门)</td> + <td colspan="3">{{ pd.OTHER_DEPT }}</td> + <td class="bbg">监护人</td> + <td> + <div v-if="pd.GUARDIAN_USER_SIGNER_PATH" style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.GUARDIAN_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.GUARDIAN_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr> + <td class="bbg">断路原因</td> + <td colspan="5">{{ pd.WORK_REASON }}</td> + </tr> + <tr> + <td class="bbg">关联的其他特殊作业及安全作业票编号</td> + <td colspan="5">{{ pd.SPECIAL_WORK }}</td> + </tr> + <tr> + <td colspan="6"> + <div>断路地段示意图(可另附图)及相关说明:{{ pd.WORK_CONTENT }}</div> + <div style="display: flex;justify-content: space-between;margin-top: 20px;"> + <img v-viewer :src="config.fileUrl + pd.CONTENT_IMG_PATH" alt="" width="100" height="100"> + <div> + 编制人: + <img v-viewer :src="config.fileUrl + pd.APPLY_USER_SIGNER_PATH" alt="" width="100" height="100"> + {{ pd.APPLY_USER_SIGNER_TIME }} + </div> + </div> + </td> + </tr> + <tr> + <td class="bbg">风险辨识结果</td> + <td colspan="5">{{ pd.HAZARD_IDENTIFICATION.split(";_;")[0] }}</td> + </tr> + <tr> + <td class="bbg">作业实施时间</td> + <td colspan="5">{{ pd.WORK_START_DATE }}至{{ pd.WORK_END_DATE }}止</td> + </tr> + <tr> + <td colspan="6"> + <table class="table-ui"> + <tr> + <td>序号</td> + <td>安全措施</td> + <td>是否涉及</td> + <td>确认人</td> + </tr> + <tr v-for="(item,index) in measuresList" :key="index"> + <td>{{ index + 1 }}</td> + <td>{{ item.PROTECTIVE_MEASURES }}</td> + <td> + <span v-if="item.STATUS=='1'"><input type="radio" disabled checked>涉 及</span> + <span v-if="item.STATUS=='-1'"><input type="radio" disabled checked>不涉及</span> + </td> + <td> + {{ item.CONFIRM_NAME }} + </td> + </tr> + <tr v-if="pd.APPLY_USER_MEASURES || pd.CONSTRUCTION_USER_MEASURES || pd.PRODUCTION_USER_MEASURES || pd.SAFETY_USER_MEASURES || pd.LEADER_USER_MEASURES "> + <td>{{ measuresList.length + 1 }}</td> + <td colspan="3"> + <div v-if="pd.APPLY_USER_MEASURES" style="display: flex;justify-content: space-between;"> + <span>其他安全措施:{{ pd.APPLY_USER_MEASURES }}</span> + <span>编制人:{{ pd.APPLY_USER_NAME }}</span> + </div> + <div v-if="pd.CONSTRUCTION_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;"> + <span>其他安全措施:{{ pd.CONSTRUCTION_USER_MEASURES }}</span> + <span>编制人:{{ pd.CONSTRUCTION_USER_NAME }}</span> + </div> + <div v-if="pd.PRODUCTION_USER_ID && pd.PRODUCTION_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;"> + <span>其他安全措施:{{ pd.PRODUCTION_USER_MEASURES }}</span> + <span>编制人:{{ pd.PRODUCTION_USER_NAME }}</span> + </div> + <div v-if="pd.SAFETY_USER_ID && pd.SAFETY_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;"> + <span>其他安全措施:{{ pd.SAFETY_USER_MEASURES }}</span> + <span>编制人:{{ pd.SAFETY_USER_NAME }}</span> + </div> + <div v-if="pd.LEADER_USER_ID && pd.LEADER_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;"> + <span>其他安全措施:{{ pd.LEADER_USER_MEASURES }}</span> + <span>编制人:{{ pd.LEADER_USER_NAME }}</span> + </div> + </td> + </tr> + </table> + </td> + </tr> + <tr> + <td class="bbg">安全交底人</td> + <td colspan="10"> + <div v-if="pd.CONFESS_USER_SIGNER_PATH" style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.CONFESS_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr> + <td class="bbg">接受交底人</td> + <td colspan="10"> + <div v-for="item in imgList" :key="item.ACCEPT_CONFESS_ID" style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + item.ACCEPT_CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ item.ACCEPT_CONFESS_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="pd.CONSTRUCTION_USER_SIGNER_PATH"> + <td colspan="6"> + <div>作业负责人意见:{{ pd.CONSTRUCTION_CONTENT }}</div> + <div style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.CONSTRUCTION_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.CONSTRUCTION_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="pd.PRODUCTION_USER_SIGNER_PATH"> + <td colspan="6"> + <div>所在单位意见:{{ pd.PRODUCTION_CONTENT }}</div> + <div style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.PRODUCTION_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.PRODUCTION_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="pd.SAFETY_USER_SIGNER_PATH"> + <td colspan="6"> + <div>消防、安全管理部门意见:{{ pd.SAFETY_CONTENT }}</div> + <div style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.SAFETY_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.SAFETY_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="pd.LEADER_USER_SIGNER_PATH"> + <td colspan="6"> + <div>审批部门意见:{{ pd.LEADER_CONTENT }}</div> + <div style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.LEADER_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.LEADER_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="imgList1.length>0"> + <td colspan="10"> + <div>完工验收:{{ pd.ACCEPT_CONTENT }}</div> + <div v-for="item in imgList1" :key="item.ACCEPT_CONFESS_ID" style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + item.ACCEPT_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ item.ACCEPT_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + </table> + </div> + <div style="padding-top: 100px"/> + <div class="ui-foot"> + <el-button icon="el-icon-arrow-left" @click="goBack">返 回</el-button> + </div> + </div> +</template> + +<script> +import { requestFN } from '@/utils/request' +import dateformat from '@/utils/dateformat' +export default { + data() { + return { + config: config, + CUTROAD_ID: this.$parent.CUTROAD_ID, // 主键ID + pd: [], // 存放字段参数 + measuresList: [], + otherProtectiveMeasures: [], + imgList: [], + imgList1: [], + hazardIdentification: [] + } + }, + created() { + this.getData() + }, + methods: { + validStr(str) { + if (str != null && str != '' && typeof (str) != 'undefined' && str != 0) { return true } + return false + }, + formatTime(date, column) { + if (date) { + return dateformat(date, 'YYYY年MM月DD日HH时mm分') + } else { + return '' + } + }, + formatDate(date, column) { + if (date) { + return dateformat(date, 'YYYY-MM-DD') + } else { + return '' + } + }, + getRowKey(row) { + return row.CUTROAD_ID + }, + getData() { + this.listLoading = true + requestFN( + '/dangerousWork/gfcutroad/goEdit', + { + CUTROAD_ID: this.CUTROAD_ID + } + ).then((data) => { + this.listLoading = false + this.pd = data.pd // 参数map + this.measuresList = data.measuresList // 参数map + this.imgList = data.imgList + this.pd.APPLY_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[0] + this.pd.CONSTRUCTION_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[1] + this.pd.PRODUCTION_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[2] + this.pd.SAFETY_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[3] + this.pd.LEADER_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[4] + }).catch((e) => { + this.listLoading = false + }) + }, + goBack() { + this.$parent.activeName = 'circuit_list' + this.$parent.CUTROAD_ID = '' + } + + } +} +</script> + +<style lang="sass" scoped> +.print-approval-p10 + padding: 20px 0 + span + vertical-align: middle +.bbg + width: 270px +.print-approval-img + width: 200px + height: 97px + display: inline-block + img + width: 100% + height: 100% +.level-code + margin-left: auto +</style> diff --git a/src/views/dangerousWork/lectricity/components/list.vue b/src/views/dangerousWork/lectricity/components/list.vue new file mode 100644 index 0000000..6241d41 --- /dev/null +++ b/src/views/dangerousWork/lectricity/components/list.vue @@ -0,0 +1,359 @@ +<template> + <div class="app-container"> + <el-form label-width="50px"> + <el-row> + <el-col :span="4"> + <el-form-item label="编号"> + <el-input v-model="KEYWORDS" placeholder="请输入编号"/> + </el-form-item> + </el-col> + <el-col :span="4"> + <el-form-item label="状态"> + <el-select v-model="STATUS" clearable placeholder="请选择" style="width: 100%;"> + <el-option v-for="item in statusList" :key="item.ID" :label="item.NAME" :value="item.ID" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="4"> + <el-form-item label-width="10px"> + <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery"> + 搜索 + </el-button> + <el-button v-waves icon="el-icon-refresh" type="success" @click="goKeyReset"> + 重置 + </el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + <el-table v-loading="listLoading" ref="multipleTable" :data="varList" :row-key="getRowKey" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row> + <el-table-column :reserve-selection="true" type="selection" width="57" align="center" /> + <el-table-column type="index" label="序号" width="50" align="center" /> + <el-table-column prop="CHECK_NO" label="编号" show-overflow-tooltip /> + <el-table-column prop="APPLY_USER_NAME" label="填写人" /> + <el-table-column prop="CONSTRUCTION_USER_NAME" label="作业负责人" show-overflow-tooltip /> + <el-table-column prop="PRODUCTION_USER_NAME" label="所在单位负责人" show-overflow-tooltip > + <template slot-scope="{row}"> + {{ row.PRODUCTION_USER_NAME || ' 已跳过' }} + </template> + </el-table-column> + <el-table-column prop="SAFETY_DEPARTMENT_NAME" label="消防、安全管理部门负责人" show-overflow-tooltip width="200"> + <template slot-scope="{row}"> + {{ row.SAFETY_DEPARTMENT_NAME || ' 已跳过' }} + </template> + </el-table-column> + <el-table-column prop="LEADER_USER_NAME" label="审批部门负责人" show-overflow-tooltip > + <template slot-scope="{row}"> + {{ row.LEADER_USER_NAME || ' 已跳过' }} + </template> + </el-table-column> + <el-table-column prop="ACCEPT_USER_NAME" label="验收部门负责人" show-overflow-tooltip /> + <el-table-column prop="STATUS" label="审核状态"> + <template slot-scope="{row}"> + <span v-if="row.APPLY_STATUS==0">断路安全作业待提交</span> + <span v-else-if="row.APPLY_STATUS==1">作业负责人待审核</span> + <span v-else-if="row.APPLY_STATUS==2">所在单位待审核</span> + <span v-else-if="row.APPLY_STATUS==3">消防、安全管理部门待审核</span> + <span v-else-if="row.APPLY_STATUS==4">审批部门待审核</span> + <span v-else-if="row.APPLY_STATUS==5">待验收</span> + <span v-else-if="row.APPLY_STATUS==6">验收归档</span> + <span v-else-if="row.APPLY_STATUS==-2">作业负责人审核打回</span> + <span v-else-if="row.APPLY_STATUS==-3">所在单位审核打回</span> + <span v-else-if="row.APPLY_STATUS==-4">消防、安全管理部门审核打回</span> + <span v-else-if="row.APPLY_STATUS==-5">审批部门审核打回</span> + <span v-else-if="row.APPLY_STATUS==-6">验收打回</span> + </template> + </el-table-column> + <el-table-column label="操作" align="center" width="230"> + <template slot-scope="{row}"> + <el-button type="primary" icon="el-icon-plus" @click="goChart(row)">流程图</el-button> + <el-button type="primary" icon="el-icon-document" size="mini" @click="goDetail(row.CUTROAD_ID)">审批表详情</el-button> + </template> + </el-table-column> + </el-table> + <div class="page-btn-group"> + <div> + </div> + <pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" /> + </div> + <el-dialog :visible.sync="dialogFormShow " :title="dialogType==='add'?'查看流程图':'新增'" width="1400px"> + <el-steps :active="getStatus()" :process-status="getProcessStatus()" finish-status="success" align-center> + <el-step title="断路安全作业提交"> + <template slot="description"> + <div>{{ getProcessMessage().title }}</div> + <div>{{ getProcessMessage().USER_NAME }}</div> + <div>{{ getProcessMessage().OPERATTIME }}</div> + </template> + </el-step> + <el-step title="作业负责人意见"> + <template slot="description"> + <div>{{ pd.CONSTRUCTION_USER_NAME }}</div> + <div>{{ pd.CONSTRUCTION_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="所在单位意见"> + <template slot="description"> + <div v-if="getIsPase('PRODUCTION_USER_NAME')">{{ '已跳过' }}</div> + <div v-else>{{ pd.PRODUCTION_USER_NAME }}</div> + <div>{{ pd.PRODUCTION_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="消防、安全管理部门意见" > + <template slot="description"> + <div v-if="getIsPase('SAFETY_DEPARTMENT_NAME')">{{ '已跳过' }}</div> + <div v-else>{{ pd.SAFETY_USER_NAME }}</div> + <div>{{ pd.SAFETY_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="审批部门意见" > + <template slot="description"> + <div v-if="getIsPase('LEADER_USER_NAME')">{{ '已跳过' }}</div> + <div v-else>{{ pd.LEADER_USER_NAME }}</div> + <div>{{ pd.LEADER_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="完成验收" description=""> + <template slot="description"> + <div>{{ pd.ACCEPT_USER_NAME }}</div> + <div>{{ pd.ACCEPT_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="验收归档" description=""> + <template slot="description"> + <div>{{ pd.ACCEPT_USER_NAME }}</div> + <div>{{ pd.ACCEPT_USER_SIGNER_TIME }}</div> + </template> + </el-step> + </el-steps> + <div style="margin: 60px 60px 0 60px;display: flex;justify-content: space-between"> + <div v-if="pd.GUARDIAN_USER_SIGNER_TIME"> + <div style="color: #13ce66"> + 监护人:{{ pd.GUARDIAN_USER_NAME }}已签字 + </div> + </div> + <div v-if="!pd.GUARDIAN_USER_SIGNER_TIME"> + <div style="color: red"> + 监护人:{{ pd.GUARDIAN_USER_NAME }}未签字 + </div> + </div> + <div v-if="pd.CONFESS_USER_SIGNER_TIME"> + <div style="color: #13ce66"> + 安全交底人:{{ pd.CONFESS_USER_NAME }}已签字 + </div> + </div> + <div v-if="!pd.CONFESS_USER_SIGNER_TIME"> + <div style="color: red"> + 安全交底人:{{ pd.CONFESS_USER_NAME }}未签字 + </div> + </div> + <div v-if="pd.ACCEPT_CONFESS_USER_SIGNER_TIME"> + <div style="color: #13ce66"> + 接受交底人:{{ pd.ACCEPT_CONFESS_USER_NAME }}已签字 + </div> + </div> + <div v-if="!pd.ACCEPT_CONFESS_USER_SIGNER_TIME"> + <div style="color: red"> + 接受交底人:{{ pd.ACCEPT_CONFESS_USER_NAME }}未签字 + </div> + </div> + </div> + <div slot="footer" class="dialog-footer"> + <!-- <el-button @click="dialogFormShow = false">取 消</el-button>--> + <el-button type="primary" @click="dialogFormShow = false">确 定</el-button> + </div> + </el-dialog> + <div style="height: 60px;"></div> + <div class="ui-foot"> + <el-button type="primary" @click="goBack">返 回</el-button> + </div> + </div> +</template> +<script> +import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包 +import { requestFN } from '@/utils/request' +import waves from '@/directive/waves' // waves directive +export default { + components: { Pagination }, + directives: { waves }, + data() { + return { + listLoading: true, + add: false, + del: false, + edit: false, + listQuery: { + page: 1, + limit: 20 + }, + total: 0, + KEYWORDS: '', + varList: [], + pd: [], + + multipleSelectionAll: [], // 所有选中的数据包含跨页数据 + multipleSelection: [], // 当前页选中的数据 + dialogFormShow: false, + dialogFormEdit: false, + dialogType: 'add', + replyVarList: [], // REPLY + replyListQuery: { + page: 1, + limit: 20 + }, + replyTotal: 0, + dialogFormHuifuShow: false, + statusList: [ + { ID: '', NAME: '请选择' }, + { ID: '0', NAME: '断路安全作业待提交' }, + { ID: '1', NAME: '作业负责人待审核' }, + { ID: '2', NAME: '所在单位待审核' }, + { ID: '3', NAME: '消防、安全管理部门待审核' }, + { ID: '4', NAME: '审批部门待审核' }, + { ID: '5', NAME: '待验收' }, + { ID: '6', NAME: '验收归档' }, + { ID: '-2', NAME: '作业负责人审核打回' }, + { ID: '-3', NAME: '所在单位审核打回' }, + { ID: '-4', NAME: '消防、安全管理部门审核打回' }, + { ID: '-5', NAME: '审批部门审核打回' }, + { ID: '-6', NAME: '验收打回' } + ], + STATUS: '', + DEPTIDS: '' + } + }, + created() { + this.getList() + }, + methods: { + getRowKey(row) { + return row.CUTROAD_ID + }, + // 搜索 + getQuery() { + this.$refs.multipleTable.clearSelection() + this.getList() + }, + goKeyReset() { + this.KEYWORDS = '' + this.STATUS = '' + this.getQuery() + }, + // 获取列表 + getList() { + this.listLoading = true + requestFN( + '/dangerousWork/gfcutroad/list?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page, + { + KEYWORDS: this.KEYWORDS, APPLY_STATUS: this.STATUS, + DEPTIDS: this.DEPTIDS, tm: new Date().getTime(), + CORPINFO_ID: this.$parent.CORPINFO_ID, + ticketType: this.$parent.ticketType + } + ).then((data) => { + this.listLoading = false + this.varList = data.varList + this.total = data.page.totalResult + }).catch((e) => { + this.listLoading = false + }) + }, + goChart(row) { + this.pd = row + this.dialogFormShow = true + }, + getStatus() { + if (this.pd.APPLY_STATUS <= '0') { + return 0 + } + if (this.pd.APPLY_STATUS == '1') { + return 1 + } + if (this.pd.APPLY_STATUS == '2') { + return 2 + } + if (this.pd.APPLY_STATUS == '3') { + return 3 + } + if (this.pd.APPLY_STATUS == '4') { + return 4 + } + if (this.pd.APPLY_STATUS == '5') { + return 5 + } + if (this.pd.APPLY_STATUS == '6') { + return 7 + } + }, + getProcessStatus() { + if (this.pd.APPLY_STATUS < '0') { + return 'error' + } else { + return 'process' + } + }, + getProcessMessage() { + let obj = {} + if (this.pd.APPLY_STATUS >= '0') { + obj = { + title: '', + USER_NAME: this.pd.APPLY_USER_NAME, + OPERATTIME: this.pd.CREATTIME + } + } + if (this.pd.APPLY_STATUS == '-2') { + obj = { + title: '作业负责人审核打回', + USER_NAME: this.pd.CONSTRUCTION_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + if (this.pd.APPLY_STATUS == '-3') { + obj = { + title: '所在单位审核打回', + USER_NAME: this.pd.PRODUCTION_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + if (this.pd.APPLY_STATUS == '-4') { + obj = { + title: '消防、安全管理部门审核打回', + USER_NAME: this.pd.SAFETY_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + if (this.pd.APPLY_STATUS == '-5') { + obj = { + title: '审批部门审核打回', + USER_NAME: this.pd.LEADER_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + if (this.pd.APPLY_STATUS == '-6') { + obj = { + title: '验收打回', + AUSER_NAME: this.pd.ACCEPT_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + return obj + }, + getIsPase(col) { + if (!this.pd[col]) { + return '已跳过' + } + }, + goBack(){ + this.$parent.activeName = 'CorpInfo' + this.$parent.CORPINFO_ID = '' + this.$parent.ticketType = '' + this.$parent.CUTROAD_ID ='' + }, + goDetail(id) { + console.info(id) + this.$parent.activeName = 'Detail' + this.$parent.CUTROAD_ID = id + } + } +} + +</script> diff --git a/src/views/dangerousWork/lectricity/index.vue b/src/views/dangerousWork/lectricity/index.vue new file mode 100644 index 0000000..0c0ba5e --- /dev/null +++ b/src/views/dangerousWork/lectricity/index.vue @@ -0,0 +1,23 @@ +<template> + <div> + <CorpInfo v-show="activeName=='CorpInfo'" ref="list" /> + <circuitList v-if="activeName=='circuit_list'"/> + <Detail v-if="activeName=='Detail'"/> + </div> +</template> +<script> +import CorpInfo from './components/corpInfo' +import circuitList from './components/list' +import Detail from './components/detail' +export default { + components: { CorpInfo, circuitList,Detail }, + data() { + return { + activeName: 'CorpInfo', + CORPINFO_ID: '', + ticketType: '', + CUTROAD_ID: '' + } + } +} +</script> diff --git a/src/views/dangerousWork/limitspace/components/corpInfo.vue b/src/views/dangerousWork/limitspace/components/corpInfo.vue new file mode 100644 index 0000000..66c7651 --- /dev/null +++ b/src/views/dangerousWork/limitspace/components/corpInfo.vue @@ -0,0 +1,128 @@ +<template> + <div class="app-container"> + <div class="filter-container"> + <div class="filter-group "> + <div class="filter-lable" style="width: 60px"> + 公司名称: + </div> + <div class="filter-width"> + <el-input v-model="KEYWORDS" placeholder="公司名称" class="filter-item" style="width: 150px;"/> + </div> + </div> + <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery"> + 搜索 + </el-button> + <el-button v-waves class="filter-item" type="success" icon="el-icon-refresh" @click="goKeyReset"> + 重置 + </el-button> + </div> + <el-table + v-loading="listLoading" + ref="multipleTable" + :data="varList" + :header-cell-style="{ + 'font-weight': 'bold', + 'color': '#000' + }" + tooltip-effect="dark" + border + fit + highlight-current-row + > + <el-table-column type="index" label="序号" width="50" align="center" /> + <el-table-column prop="CORP_NAME" label="公司名称" /> + <el-table-column prop="checkedCount" label="申请总数" align="center" > + <template slot-scope="{row}"> + <span :style="row.applications_num > 0 ? {color:'#0c60e1',cursor: 'pointer'} : {color: '#606266'}" @click="goList('LimitSpace',row.CORPINFO_ID,'1')">{{ row.applications_num }}</span> + </template> + </el-table-column> + <el-table-column prop="checkedItemCount" label="完成数" align="center" > + <template slot-scope="{row}"> + <span :style="row.completions_num > 0 ? {color:'#0c60e1',cursor: 'pointer'} : {color: '#606266'}" @click="goList('LimitSpace',row.CORPINFO_ID,'2')">{{ row.completions_num }}</span> + </template> + </el-table-column> + <el-table-column prop="ybCount" label="废除数" align="center" > + <template slot-scope="{row}"> + <span :style="row.abolishments_num > 0 ? {color:'#0c60e1',cursor: 'pointer'} : {color: '#606266'}" @click="goList('LimitSpace',row.CORPINFO_ID, '3')">{{ row.abolishments_num }}</span> + </template> + </el-table-column> + <el-table-column prop="zdCount" label="进行数" align="center" > + <template slot-scope="{row}"> + <span :style="row.operations_num > 0 ? {color:'#0c60e1',cursor: 'pointer'} : {color: '#606266'}" @click="goList('LimitSpace',row.CORPINFO_ID, '4')">{{ row.operations_num }}</span> + </template> + </el-table-column> + </el-table> + <div class="page-btn-group"> + <div/> + <pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" /> + </div> + </div> +</template> + +<script> +import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包 +import { requestFN } from '@/utils/request' +import waves from '@/directive/waves' // waves directive +import SelectTree from '@/components/SelectTree' +export default { + components: { Pagination, SelectTree }, + directives: { waves }, + data() { + return { + USER_LEVEL: sessionStorage.getItem('user').LEVEL || -1, + config: config, + listLoading: true, + add: false, + del: false, + edit: false, + listQuery: { + page: 1, + limit: 20 + }, + total: 0, + KEYWORDS: '', + varList: [], + pd: [] + } + }, + + async created() { + await this.getList() + }, + methods: { + getQuery() { + this.getList() + }, + goKeyReset() { + this.KEYWORDS = '' + this.getList() + }, + // 点击列表数,跳转详情 + goList(tableName, CORPINFO_ID, ticketType) { + this.$parent.activeName = tableName + this.$parent.CORPINFO_ID = CORPINFO_ID + this.$parent.ticketType = ticketType + this.$parent.CUTROAD_ID ='' + }, + getList() { + return new Promise((resolve) => { + this.listLoading = true + requestFN( + '/gfLimitSpace/corpCountlist?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page, + { + COPRINF_ID: sessionStorage.getItem('user').CORPINFO_ID || '', + KEYWORDS: this.KEYWORDS + } + ).then((data) => { + this.listLoading = false + this.varList = data.varList + this.total = data.page.totalResult + resolve() + }).catch((e) => { + this.listLoading = false + }) + }) + } + } +} +</script> diff --git a/src/views/dangerousWork/limitspace/components/detail.vue b/src/views/dangerousWork/limitspace/components/detail.vue new file mode 100644 index 0000000..d253af5 --- /dev/null +++ b/src/views/dangerousWork/limitspace/components/detail.vue @@ -0,0 +1,279 @@ +<template> + <div> + <div id="printTest" class="app-container print-work"> + <el-page-header content="审批表详情" class="no-print" @back="goBack"/> + <table class="table-ui"> + <thead> + <tr> + <td colspan="6" style="border: none"> + <div class="level-title mt-20"> + <h1>断路安全作业票</h1> + <div class="level-code" >编号:{{ pd.CHECK_NO }}</div> + </div> + </td> + </tr> + </thead> + <tr> + <td class="bbg">申请单位</td> + <td>{{ pd.APPLY_DEPARTMENT_NAME }}</td> + <td class="bbg">作业单位</td> + <td>{{ pd.CONSTRUCTION_DEPARTMENT_NAME }}</td> + <td class="bbg">作业负责人</td> + <td>{{ pd.CONSTRUCTION_USER_NAME }}</td> + </tr> + <tr> + <td class="bbg">涉及相关单位(部门)</td> + <td colspan="3">{{ pd.OTHER_DEPT }}</td> + <td class="bbg">监护人</td> + <td> + <div v-if="pd.GUARDIAN_USER_SIGNER_PATH" style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.GUARDIAN_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.GUARDIAN_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr> + <td class="bbg">断路原因</td> + <td colspan="5">{{ pd.WORK_REASON }}</td> + </tr> + <tr> + <td class="bbg">关联的其他特殊作业及安全作业票编号</td> + <td colspan="5">{{ pd.SPECIAL_WORK }}</td> + </tr> + <tr> + <td colspan="6"> + <div>断路地段示意图(可另附图)及相关说明:{{ pd.WORK_CONTENT }}</div> + <div style="display: flex;justify-content: space-between;margin-top: 20px;"> + <img v-viewer :src="config.fileUrl + pd.CONTENT_IMG_PATH" alt="" width="100" height="100"> + <div> + 编制人: + <img v-viewer :src="config.fileUrl + pd.APPLY_USER_SIGNER_PATH" alt="" width="100" height="100"> + {{ pd.APPLY_USER_SIGNER_TIME }} + </div> + </div> + </td> + </tr> + <tr> + <td class="bbg">风险辨识结果</td> + <td colspan="5">{{ pd.HAZARD_IDENTIFICATION.split(";_;")[0] }}</td> + </tr> + <tr> + <td class="bbg">作业实施时间</td> + <td colspan="5">{{ pd.WORK_START_DATE }}至{{ pd.WORK_END_DATE }}止</td> + </tr> + <tr> + <td colspan="6"> + <table class="table-ui"> + <tr> + <td>序号</td> + <td>安全措施</td> + <td>是否涉及</td> + <td>确认人</td> + </tr> + <tr v-for="(item,index) in measuresList" :key="index"> + <td>{{ index + 1 }}</td> + <td>{{ item.PROTECTIVE_MEASURES }}</td> + <td> + <span v-if="item.STATUS=='1'"><input type="radio" disabled checked>涉 及</span> + <span v-if="item.STATUS=='-1'"><input type="radio" disabled checked>不涉及</span> + </td> + <td> + {{ item.CONFIRM_NAME }} + </td> + </tr> + <tr v-if="pd.APPLY_USER_MEASURES || pd.CONSTRUCTION_USER_MEASURES || pd.PRODUCTION_USER_MEASURES || pd.SAFETY_USER_MEASURES || pd.LEADER_USER_MEASURES "> + <td>{{ measuresList.length + 1 }}</td> + <td colspan="3"> + <div v-if="pd.APPLY_USER_MEASURES" style="display: flex;justify-content: space-between;"> + <span>其他安全措施:{{ pd.APPLY_USER_MEASURES }}</span> + <span>编制人:{{ pd.APPLY_USER_NAME }}</span> + </div> + <div v-if="pd.CONSTRUCTION_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;"> + <span>其他安全措施:{{ pd.CONSTRUCTION_USER_MEASURES }}</span> + <span>编制人:{{ pd.CONSTRUCTION_USER_NAME }}</span> + </div> + <div v-if="pd.PRODUCTION_USER_ID && pd.PRODUCTION_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;"> + <span>其他安全措施:{{ pd.PRODUCTION_USER_MEASURES }}</span> + <span>编制人:{{ pd.PRODUCTION_USER_NAME }}</span> + </div> + <div v-if="pd.SAFETY_USER_ID && pd.SAFETY_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;"> + <span>其他安全措施:{{ pd.SAFETY_USER_MEASURES }}</span> + <span>编制人:{{ pd.SAFETY_USER_NAME }}</span> + </div> + <div v-if="pd.LEADER_USER_ID && pd.LEADER_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;"> + <span>其他安全措施:{{ pd.LEADER_USER_MEASURES }}</span> + <span>编制人:{{ pd.LEADER_USER_NAME }}</span> + </div> + </td> + </tr> + </table> + </td> + </tr> + <tr> + <td class="bbg">安全交底人</td> + <td colspan="10"> + <div v-if="pd.CONFESS_USER_SIGNER_PATH" style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.CONFESS_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr> + <td class="bbg">接受交底人</td> + <td colspan="10"> + <div v-for="item in imgList" :key="item.ACCEPT_CONFESS_ID" style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + item.ACCEPT_CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ item.ACCEPT_CONFESS_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="pd.CONSTRUCTION_USER_SIGNER_PATH"> + <td colspan="6"> + <div>作业负责人意见:{{ pd.CONSTRUCTION_CONTENT }}</div> + <div style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.CONSTRUCTION_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.CONSTRUCTION_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="pd.PRODUCTION_USER_SIGNER_PATH"> + <td colspan="6"> + <div>所在单位意见:{{ pd.PRODUCTION_CONTENT }}</div> + <div style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.PRODUCTION_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.PRODUCTION_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="pd.SAFETY_USER_SIGNER_PATH"> + <td colspan="6"> + <div>消防、安全管理部门意见:{{ pd.SAFETY_CONTENT }}</div> + <div style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.SAFETY_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.SAFETY_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="pd.LEADER_USER_SIGNER_PATH"> + <td colspan="6"> + <div>审批部门意见:{{ pd.LEADER_CONTENT }}</div> + <div style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + pd.LEADER_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ pd.LEADER_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + <tr v-if="imgList1.length>0"> + <td colspan="10"> + <div>完工验收:{{ pd.ACCEPT_CONTENT }}</div> + <div v-for="item in imgList1" :key="item.ACCEPT_CONFESS_ID" style="text-align: right"> + <span>签字:</span> + <img v-viewer :src="config.fileUrl + item.ACCEPT_USER_SIGNER_PATH" alt="" width="100" height="100"> + <span>{{ item.ACCEPT_USER_SIGNER_TIME }}</span> + </div> + </td> + </tr> + </table> + </div> + <div style="padding-top: 100px"/> + <div class="ui-foot"> + <el-button icon="el-icon-arrow-left" @click="goBack">返 回</el-button> + </div> + </div> +</template> + +<script> +import { requestFN } from '@/utils/request' +import dateformat from '@/utils/dateformat' +export default { + data() { + return { + config: config, + CUTROAD_ID: this.$parent.CUTROAD_ID, // 主键ID + pd: [], // 存放字段参数 + measuresList: [], + otherProtectiveMeasures: [], + imgList: [], + imgList1: [], + hazardIdentification: [] + } + }, + created() { + this.getData() + }, + methods: { + validStr(str) { + if (str != null && str != '' && typeof (str) != 'undefined' && str != 0) { return true } + return false + }, + formatTime(date, column) { + if (date) { + return dateformat(date, 'YYYY年MM月DD日HH时mm分') + } else { + return '' + } + }, + formatDate(date, column) { + if (date) { + return dateformat(date, 'YYYY-MM-DD') + } else { + return '' + } + }, + getRowKey(row) { + return row.CUTROAD_ID + }, + getData() { + this.listLoading = true + requestFN( + '/dangerousWork/gfcutroad/goEdit', + { + CUTROAD_ID: this.CUTROAD_ID + } + ).then((data) => { + this.listLoading = false + this.pd = data.pd // 参数map + this.measuresList = data.measuresList // 参数map + this.imgList = data.imgList + this.pd.APPLY_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[0] + this.pd.CONSTRUCTION_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[1] + this.pd.PRODUCTION_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[2] + this.pd.SAFETY_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[3] + this.pd.LEADER_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[4] + }).catch((e) => { + this.listLoading = false + }) + }, + goBack() { + this.$parent.activeName = 'circuit_list' + this.$parent.CUTROAD_ID = '' + } + + } +} +</script> + +<style lang="sass" scoped> +.print-approval-p10 + padding: 20px 0 + span + vertical-align: middle +.bbg + width: 270px +.print-approval-img + width: 200px + height: 97px + display: inline-block + img + width: 100% + height: 100% +.level-code + margin-left: auto +</style> diff --git a/src/views/dangerousWork/limitspace/components/list.vue b/src/views/dangerousWork/limitspace/components/list.vue new file mode 100644 index 0000000..6241d41 --- /dev/null +++ b/src/views/dangerousWork/limitspace/components/list.vue @@ -0,0 +1,359 @@ +<template> + <div class="app-container"> + <el-form label-width="50px"> + <el-row> + <el-col :span="4"> + <el-form-item label="编号"> + <el-input v-model="KEYWORDS" placeholder="请输入编号"/> + </el-form-item> + </el-col> + <el-col :span="4"> + <el-form-item label="状态"> + <el-select v-model="STATUS" clearable placeholder="请选择" style="width: 100%;"> + <el-option v-for="item in statusList" :key="item.ID" :label="item.NAME" :value="item.ID" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="4"> + <el-form-item label-width="10px"> + <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery"> + 搜索 + </el-button> + <el-button v-waves icon="el-icon-refresh" type="success" @click="goKeyReset"> + 重置 + </el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + <el-table v-loading="listLoading" ref="multipleTable" :data="varList" :row-key="getRowKey" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row> + <el-table-column :reserve-selection="true" type="selection" width="57" align="center" /> + <el-table-column type="index" label="序号" width="50" align="center" /> + <el-table-column prop="CHECK_NO" label="编号" show-overflow-tooltip /> + <el-table-column prop="APPLY_USER_NAME" label="填写人" /> + <el-table-column prop="CONSTRUCTION_USER_NAME" label="作业负责人" show-overflow-tooltip /> + <el-table-column prop="PRODUCTION_USER_NAME" label="所在单位负责人" show-overflow-tooltip > + <template slot-scope="{row}"> + {{ row.PRODUCTION_USER_NAME || ' 已跳过' }} + </template> + </el-table-column> + <el-table-column prop="SAFETY_DEPARTMENT_NAME" label="消防、安全管理部门负责人" show-overflow-tooltip width="200"> + <template slot-scope="{row}"> + {{ row.SAFETY_DEPARTMENT_NAME || ' 已跳过' }} + </template> + </el-table-column> + <el-table-column prop="LEADER_USER_NAME" label="审批部门负责人" show-overflow-tooltip > + <template slot-scope="{row}"> + {{ row.LEADER_USER_NAME || ' 已跳过' }} + </template> + </el-table-column> + <el-table-column prop="ACCEPT_USER_NAME" label="验收部门负责人" show-overflow-tooltip /> + <el-table-column prop="STATUS" label="审核状态"> + <template slot-scope="{row}"> + <span v-if="row.APPLY_STATUS==0">断路安全作业待提交</span> + <span v-else-if="row.APPLY_STATUS==1">作业负责人待审核</span> + <span v-else-if="row.APPLY_STATUS==2">所在单位待审核</span> + <span v-else-if="row.APPLY_STATUS==3">消防、安全管理部门待审核</span> + <span v-else-if="row.APPLY_STATUS==4">审批部门待审核</span> + <span v-else-if="row.APPLY_STATUS==5">待验收</span> + <span v-else-if="row.APPLY_STATUS==6">验收归档</span> + <span v-else-if="row.APPLY_STATUS==-2">作业负责人审核打回</span> + <span v-else-if="row.APPLY_STATUS==-3">所在单位审核打回</span> + <span v-else-if="row.APPLY_STATUS==-4">消防、安全管理部门审核打回</span> + <span v-else-if="row.APPLY_STATUS==-5">审批部门审核打回</span> + <span v-else-if="row.APPLY_STATUS==-6">验收打回</span> + </template> + </el-table-column> + <el-table-column label="操作" align="center" width="230"> + <template slot-scope="{row}"> + <el-button type="primary" icon="el-icon-plus" @click="goChart(row)">流程图</el-button> + <el-button type="primary" icon="el-icon-document" size="mini" @click="goDetail(row.CUTROAD_ID)">审批表详情</el-button> + </template> + </el-table-column> + </el-table> + <div class="page-btn-group"> + <div> + </div> + <pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" /> + </div> + <el-dialog :visible.sync="dialogFormShow " :title="dialogType==='add'?'查看流程图':'新增'" width="1400px"> + <el-steps :active="getStatus()" :process-status="getProcessStatus()" finish-status="success" align-center> + <el-step title="断路安全作业提交"> + <template slot="description"> + <div>{{ getProcessMessage().title }}</div> + <div>{{ getProcessMessage().USER_NAME }}</div> + <div>{{ getProcessMessage().OPERATTIME }}</div> + </template> + </el-step> + <el-step title="作业负责人意见"> + <template slot="description"> + <div>{{ pd.CONSTRUCTION_USER_NAME }}</div> + <div>{{ pd.CONSTRUCTION_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="所在单位意见"> + <template slot="description"> + <div v-if="getIsPase('PRODUCTION_USER_NAME')">{{ '已跳过' }}</div> + <div v-else>{{ pd.PRODUCTION_USER_NAME }}</div> + <div>{{ pd.PRODUCTION_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="消防、安全管理部门意见" > + <template slot="description"> + <div v-if="getIsPase('SAFETY_DEPARTMENT_NAME')">{{ '已跳过' }}</div> + <div v-else>{{ pd.SAFETY_USER_NAME }}</div> + <div>{{ pd.SAFETY_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="审批部门意见" > + <template slot="description"> + <div v-if="getIsPase('LEADER_USER_NAME')">{{ '已跳过' }}</div> + <div v-else>{{ pd.LEADER_USER_NAME }}</div> + <div>{{ pd.LEADER_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="完成验收" description=""> + <template slot="description"> + <div>{{ pd.ACCEPT_USER_NAME }}</div> + <div>{{ pd.ACCEPT_USER_SIGNER_TIME }}</div> + </template> + </el-step> + <el-step title="验收归档" description=""> + <template slot="description"> + <div>{{ pd.ACCEPT_USER_NAME }}</div> + <div>{{ pd.ACCEPT_USER_SIGNER_TIME }}</div> + </template> + </el-step> + </el-steps> + <div style="margin: 60px 60px 0 60px;display: flex;justify-content: space-between"> + <div v-if="pd.GUARDIAN_USER_SIGNER_TIME"> + <div style="color: #13ce66"> + 监护人:{{ pd.GUARDIAN_USER_NAME }}已签字 + </div> + </div> + <div v-if="!pd.GUARDIAN_USER_SIGNER_TIME"> + <div style="color: red"> + 监护人:{{ pd.GUARDIAN_USER_NAME }}未签字 + </div> + </div> + <div v-if="pd.CONFESS_USER_SIGNER_TIME"> + <div style="color: #13ce66"> + 安全交底人:{{ pd.CONFESS_USER_NAME }}已签字 + </div> + </div> + <div v-if="!pd.CONFESS_USER_SIGNER_TIME"> + <div style="color: red"> + 安全交底人:{{ pd.CONFESS_USER_NAME }}未签字 + </div> + </div> + <div v-if="pd.ACCEPT_CONFESS_USER_SIGNER_TIME"> + <div style="color: #13ce66"> + 接受交底人:{{ pd.ACCEPT_CONFESS_USER_NAME }}已签字 + </div> + </div> + <div v-if="!pd.ACCEPT_CONFESS_USER_SIGNER_TIME"> + <div style="color: red"> + 接受交底人:{{ pd.ACCEPT_CONFESS_USER_NAME }}未签字 + </div> + </div> + </div> + <div slot="footer" class="dialog-footer"> + <!-- <el-button @click="dialogFormShow = false">取 消</el-button>--> + <el-button type="primary" @click="dialogFormShow = false">确 定</el-button> + </div> + </el-dialog> + <div style="height: 60px;"></div> + <div class="ui-foot"> + <el-button type="primary" @click="goBack">返 回</el-button> + </div> + </div> +</template> +<script> +import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包 +import { requestFN } from '@/utils/request' +import waves from '@/directive/waves' // waves directive +export default { + components: { Pagination }, + directives: { waves }, + data() { + return { + listLoading: true, + add: false, + del: false, + edit: false, + listQuery: { + page: 1, + limit: 20 + }, + total: 0, + KEYWORDS: '', + varList: [], + pd: [], + + multipleSelectionAll: [], // 所有选中的数据包含跨页数据 + multipleSelection: [], // 当前页选中的数据 + dialogFormShow: false, + dialogFormEdit: false, + dialogType: 'add', + replyVarList: [], // REPLY + replyListQuery: { + page: 1, + limit: 20 + }, + replyTotal: 0, + dialogFormHuifuShow: false, + statusList: [ + { ID: '', NAME: '请选择' }, + { ID: '0', NAME: '断路安全作业待提交' }, + { ID: '1', NAME: '作业负责人待审核' }, + { ID: '2', NAME: '所在单位待审核' }, + { ID: '3', NAME: '消防、安全管理部门待审核' }, + { ID: '4', NAME: '审批部门待审核' }, + { ID: '5', NAME: '待验收' }, + { ID: '6', NAME: '验收归档' }, + { ID: '-2', NAME: '作业负责人审核打回' }, + { ID: '-3', NAME: '所在单位审核打回' }, + { ID: '-4', NAME: '消防、安全管理部门审核打回' }, + { ID: '-5', NAME: '审批部门审核打回' }, + { ID: '-6', NAME: '验收打回' } + ], + STATUS: '', + DEPTIDS: '' + } + }, + created() { + this.getList() + }, + methods: { + getRowKey(row) { + return row.CUTROAD_ID + }, + // 搜索 + getQuery() { + this.$refs.multipleTable.clearSelection() + this.getList() + }, + goKeyReset() { + this.KEYWORDS = '' + this.STATUS = '' + this.getQuery() + }, + // 获取列表 + getList() { + this.listLoading = true + requestFN( + '/dangerousWork/gfcutroad/list?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page, + { + KEYWORDS: this.KEYWORDS, APPLY_STATUS: this.STATUS, + DEPTIDS: this.DEPTIDS, tm: new Date().getTime(), + CORPINFO_ID: this.$parent.CORPINFO_ID, + ticketType: this.$parent.ticketType + } + ).then((data) => { + this.listLoading = false + this.varList = data.varList + this.total = data.page.totalResult + }).catch((e) => { + this.listLoading = false + }) + }, + goChart(row) { + this.pd = row + this.dialogFormShow = true + }, + getStatus() { + if (this.pd.APPLY_STATUS <= '0') { + return 0 + } + if (this.pd.APPLY_STATUS == '1') { + return 1 + } + if (this.pd.APPLY_STATUS == '2') { + return 2 + } + if (this.pd.APPLY_STATUS == '3') { + return 3 + } + if (this.pd.APPLY_STATUS == '4') { + return 4 + } + if (this.pd.APPLY_STATUS == '5') { + return 5 + } + if (this.pd.APPLY_STATUS == '6') { + return 7 + } + }, + getProcessStatus() { + if (this.pd.APPLY_STATUS < '0') { + return 'error' + } else { + return 'process' + } + }, + getProcessMessage() { + let obj = {} + if (this.pd.APPLY_STATUS >= '0') { + obj = { + title: '', + USER_NAME: this.pd.APPLY_USER_NAME, + OPERATTIME: this.pd.CREATTIME + } + } + if (this.pd.APPLY_STATUS == '-2') { + obj = { + title: '作业负责人审核打回', + USER_NAME: this.pd.CONSTRUCTION_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + if (this.pd.APPLY_STATUS == '-3') { + obj = { + title: '所在单位审核打回', + USER_NAME: this.pd.PRODUCTION_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + if (this.pd.APPLY_STATUS == '-4') { + obj = { + title: '消防、安全管理部门审核打回', + USER_NAME: this.pd.SAFETY_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + if (this.pd.APPLY_STATUS == '-5') { + obj = { + title: '审批部门审核打回', + USER_NAME: this.pd.LEADER_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + if (this.pd.APPLY_STATUS == '-6') { + obj = { + title: '验收打回', + AUSER_NAME: this.pd.ACCEPT_USER_NAME, + OPERATTIME: this.pd.OPERATTIME + } + } + return obj + }, + getIsPase(col) { + if (!this.pd[col]) { + return '已跳过' + } + }, + goBack(){ + this.$parent.activeName = 'CorpInfo' + this.$parent.CORPINFO_ID = '' + this.$parent.ticketType = '' + this.$parent.CUTROAD_ID ='' + }, + goDetail(id) { + console.info(id) + this.$parent.activeName = 'Detail' + this.$parent.CUTROAD_ID = id + } + } +} + +</script> diff --git a/src/views/dangerousWork/limitspace/index.vue b/src/views/dangerousWork/limitspace/index.vue new file mode 100644 index 0000000..d450b83 --- /dev/null +++ b/src/views/dangerousWork/limitspace/index.vue @@ -0,0 +1,23 @@ +<template> + <div> + <CorpInfo v-show="activeName=='CorpInfo'" ref="list" /> + <circuitList v-show="activeName=='LimitSpace'"/> + <Detail v-if="activeName=='Detail'"/> + </div> +</template> +<script> +import CorpInfo from './components/corpInfo' +import circuitList from './components/list' +import Detail from './components/detail' +export default { + components: { CorpInfo, circuitList,Detail }, + data() { + return { + activeName: 'CorpInfo', + CORPINFO_ID: '', + ticketType: '', + CUTROAD_ID: '' + } + } +} +</script>