From 44d7a737dc0d63ad1dd7c52d45fc2233d1950173 Mon Sep 17 00:00:00 2001 From: lyfO_o <764716047@qq.com> Date: 星期四, 09 六月 2022 09:56:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'remotes/origin/shf' into master --- src/views/hiddenDangerTroubleshootingList/index.vue | 143 src/api/sgyhpczl/oneFromanother.js | 104 src/views/Issuedbysuperiors/superiorsSend.vue | 565 ++ src/views/hiddenDangerManagement/fillRectificationAdd.vue | 1 src/views/safetyHazardAccount/accountSend.vue | 382 + src/views/troubleshooting/index.vue | 655 ++ src/api/sgyhpczl/careabout.js | 119 src/api/sgyhpczl/fileUtils.js | 17 src/views/safetyHazardAccount/Dualbase.vue | 760 +++ src/api/sgyhpczl/delayHiddenDangerRectification.js | 2 src/views/safetyHazardAccount/supervision.vue | 108 src/views/hiddenDangerRectification/sendHiddenDangerList.vue | 45 src/views/safetyHazardAccount/safetyedit.vue | 653 ++ src/permission.js | 2 src/views/hiddenDangerReview/recheckCancellationNumber.vue | 17 src/views/safetyHazardAccount/DualbaseLost.vue | 554 ++ src/router/index.js | 542 + src/api/sgyhpczl/chartAnalysis.js | 31 src/views/Issuedbysuperiors/index.vue | 476 + src/views/chartAnalysis/index.vue | 916 ++++ src/views/safetyHazardAccount/hazardSource.vue | 276 + src/views/careabout/index.vue | 577 ++ src/api/sgyhpczl/hiddenDangerRegistration.js | 6 src/views/delayHiddenDangerRectification/rectificationDelayHiddenDanger.vue | 60 src/main.js | 9 src/views/hiddenDangerManagement/index.vue | 14 src/api/sgyhpczl/majorHidden.js | 2 src/views/hiddenDangerReview/recheckHiddenDangerList.vue | 52 src/api/sgyhpczl/hiddenDangerManagement.js | 16 src/views/hiddenDangerRegistration/hiddenDangerAdd.vue | 25 src/views/oneFromanother/exist.vue | 270 src/views/summaryPotentialSafetyHzards/index.vue | 487 ++ src/views/safetyHazardAccount/index.vue | 766 +++ src/views/oneFromanother/index.vue | 350 + src/views/dangerDetails/dnagerDetails.vue | 142 src/api/sgyhpczl/hiddenDangerTroubleshootingList.js | 37 src/api/sgyhpczl/safetyHazardAccount.js | 123 src/views/hiddenDangerTroubleshootingList/preview.vue | 178 src/views/oneFromanotherN/existN.vue | 1181 +++-- src/views/common/jdSelect.vue | 394 + src/views/summaryPotentialSafetyHzards/summaryList.vue | 377 + src/views/careabout/managementConcerns.vue | 240 + src/api/sgyhpczl/Issuedbysuperiors.js | 103 src/api/sgyhpczl/oneFromanotherN.js | 119 src/views/oneFromanotherN/addDanger.vue | 359 + src/views/safetyHazardAccount/inferOtherThings.vue | 108 src/views/summaryPotentialSafetyHzards/summaryForm.vue | 386 + src/views/oneFromanotherN/index.vue | 721 ++ src/api/sgyhpczl/troubleshooting.js | 85 src/api/sgyhpczl/initSelect.js | 16 src/api/sgyhpczl/recheckCancellationNumber.js | 2 /dev/null | 13 package.json | 2 src/api/sgyhpczl/summaryPotentialSafetyHzards.js | 34 src/views/delayHiddenDangerRectification/index.vue | 13 src/views/hiddenDangerRectification/index.vue | 91 56 files changed, 12,478 insertions(+), 1,248 deletions(-) diff --git a/package.json b/package.json index 5c48644..ae95ef4 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,8 @@ "ezuikit-js": "^0.2.3", "file-saver": "^1.3.8", "fuse.js": "3.4.2", + "highcharts": "^10.1.0", + "highcharts-vue": "^1.4.0", "jquery": "^3.6.0", "js-cookie": "2.2.0", "jsbarcode": "^3.11.4", diff --git a/src/api/sgyhpczl/Issuedbysuperiors.js b/src/api/sgyhpczl/Issuedbysuperiors.js new file mode 100644 index 0000000..d4636b5 --- /dev/null +++ b/src/api/sgyhpczl/Issuedbysuperiors.js @@ -0,0 +1,103 @@ +import request from '@/utils/request'; +import {getTokenAndVerify} from "@/api/sgyhpczl/auth"; + +export function getPageList(data) { + var arr=[] + /*编号*/ + if(data.form.number!=null && data.form.number!=''){ + arr.push({field:"number",value:data.form.number,type:'TXT'}) + } + /*编号*/ + if(data.form.step!=null && data.form.step!=''){ + arr.push({field:"step",value:data.form.step,type:'TXT'}) + } + /*检查单位*/ + if(data.form.check_main_branch!=null && data.form.check_main_branch!=''){ + arr.push({field:"check_main_branch",value:data.form.check_main_branch,type:'OPT'}) + } + /*检查部门*/ + if(data.form.check_branch!=null && data.form.check_branch!=''){ + arr.push({field:"check_branch",value:data.form.check_branch,type:'OPT'}) + } + /*检查人*/ + if(data.form.check_man!=null && data.form.check_man!=''){ + arr.push({field:"check_man",value:data.form.check_man,type:'TXT'}) + } + /*隐患单位*/ + if(data.form.ht_community!=null && data.form.ht_community!=''){ + arr.push({field:"ht_community",value:data.form.ht_community,type:'TXT'}) + } + /*隐患部门*/ + if(data.form.ht_branch!=null && data.form.ht_branch!=''){ + arr.push({field:"ht_branch",value:data.form.ht_branch,type:'OPT'}) + } + /*隐患类别*/ + if(data.form.ht_typesub!=null && data.form.ht_typesub!=''){ + arr.push({field:"ht_typesub",value:data.form.ht_typesub,type:'OPT'}) + } + /*隐患级别*/ + if(data.form.ht_level!=null && data.form.ht_level!=''){ + arr.push({field:"ht_level",value:data.form.ht_level,type:'OPT'}) + } + /*检查类型*/ + if(data.form.checktype!=null && data.form.checktype!=''){ + arr.push({field:"checktype",value:data.form.checktype,type:'OPT'}) + } + /*隐患地点*/ + if(data.form.address!=null && data.form.address!=''){ + arr.push({field:"address",value:data.form.address,type:'TXT'}) + } + /*隐患内容*/ + if(data.form.ht_content!=null && data.form.ht_content!=''){ + arr.push({field:"ht_content",value:data.form.ht_content,type:'TXT'}) + } + /*班次*/ + if(data.form.check_class!=null && data.form.check_class!=''){ + arr.push({field:"check_class",value:data.form.check_class,type:'OPT'}) + } + /*是否关联*/ + if(data.form.DTRisk_bankId!=null){ + arr.push({field:"DTRisk_bankId",value:data.form.DTRisk_bankId,type:'OPT'}) + } + /*录入人*/ + if(data.form.createBy!=null && data.form.createBy!=''){ + arr.push({field:"Created_by",value:data.form.createBy,type:'OPT'}) + } + /*检查时间*/ + if(data.form.check_dateStart!=null && data.form.check_dateStart!='' && data.form.check_dateEnd!=null && data.form.check_dateEnd!=''){ + arr.push({field:"check_date",value:data.form.check_dateStart+"至"+data.form.check_dateEnd,type:'DAT'}) + + } + /*限改时间*/ + if(data.form.alter_timeStart!=null && data.form.alter_timeStart!='' && data.form.alter_timeEnd!=null && data.form.alter_timeEnd!=''){ + arr.push({field:"alter_time",value:data.form.alter_timeStart+"至"+data.form.alter_timeEnd,type:'DAT'}) + + } + data.query_condition=arr + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/danger/company_list", + contentType: "application/json", + method: 'POST', + data + }); +} + + +//保存延期申请 +export function company_next_step_do(data) { + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/danger/company_next_step_do", + contentType: "application/json", + method: 'POST', + data, + }); +} + diff --git a/src/api/sgyhpczl/careabout.js b/src/api/sgyhpczl/careabout.js new file mode 100644 index 0000000..387d4aa --- /dev/null +++ b/src/api/sgyhpczl/careabout.js @@ -0,0 +1,119 @@ +import request from '@/utils/request'; +import {getTokenAndVerify} from "@/api/sgyhpczl/auth"; + + +export function getPageList(data) { + var arr=[] + /*编号*/ + if(data.form.number!=null && data.form.number!=''){ + arr.push({field:"number",value:data.form.number,type:'TXT'}) + } + /*检查单位*/ + if(data.form.check_main_branch!=null && data.form.check_main_branch!=''){ + arr.push({field:"check_main_branch",value:data.form.check_main_branch,type:'OPT'}) + } + /*检查部门*/ + if(data.form.check_branch!=null && data.form.check_branch!=''){ + arr.push({field:"check_branch",value:data.form.check_branch,type:'OPT'}) + } + /*检查人*/ + if(data.form.check_man!=null && data.form.check_man!=''){ + arr.push({field:"check_man",value:data.form.check_man,type:'TXT'}) + } + /*隐患单位*/ + if(data.form.ht_community!=null && data.form.ht_community!=''){ + arr.push({field:"ht_community",value:data.form.ht_community,type:'OPT'}) + } + /*隐患部门*/ + if(data.form.ht_branch!=null && data.form.ht_branch!=''){ + arr.push({field:"ht_branch",value:data.form.ht_branch,type:'OPT'}) + } + /*隐患类别*/ + if(data.form.ht_typesub!=null && data.form.ht_typesub!=''){ + arr.push({field:"ht_typesub",value:data.form.ht_typesub,type:'OPT'}) + } + /*隐患级别*/ + if(data.form.ht_level!=null && data.form.ht_level!=''){ + arr.push({field:"ht_level",value:data.form.ht_level,type:'OPT'}) + } + /*检查类别*/ + if(data.form.checktype!=null && data.form.checktype!=''){ + arr.push({field:"checktype",value:data.form.checktype,type:'OPT'}) + } + /*隐患地点*/ + if(data.form.address!=null && data.form.address!=''){ + arr.push({field:"address",value:data.form.address,type:'TXT'}) + } + /*隐患内容*/ + if(data.form.ht_content!=null && data.form.ht_content!=''){ + arr.push({field:"ht_content",value:data.form.ht_content,type:'TXT'}) + } + /*班次*/ + if(data.form.check_class!=null && data.form.check_class!=''){ + arr.push({field:"check_class",value:data.form.check_class,type:'OPT'}) + } + /*深入现场情况*/ + if(data.form.class_situation!=null && data.form.class_situation!=''){ + arr.push({field:"class_situation",value:data.form.class_situation,type:'OPT'}) + } + /*检查时间*/ + if(data.form.check_dateStart!=null && data.form.check_dateStart!='' && data.form.check_dateEnd!=null && data.form.check_dateEnd!=''){ + arr.push({field:"check_date",value:data.form.check_dateStart+"至"+data.form.check_dateEnd,type:'DAT'}) + } + /*限改时间*/ + if(data.form.alter_timeStart!=null && data.form.alter_timeStart!='' && data.form.alter_timeEnd!=null && data.form.alter_timeEnd!=''){ + arr.push({field:"alter_time",value:data.form.alter_timeStart+"至"+data.form.alter_timeEnd,type:'DAT'}) + } + data.query_condition=arr + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/danger/focus_list", + contentType: "application/json", + method: 'POST', + data + }); +} +//标签 +export function danger_focus_tag() { + return request({ + headers: { + 'token': getTokenAndVerify().token, + 'verify': getTokenAndVerify().verify + }, + url: '/taboi/user/danger_focus_tag', + method: 'GET', + contentType: "multipart/form-data", + }); +} +//导出 +export function analogy_export_do(data) { + return request({ + headers: { + 'token': getTokenAndVerify().token, + 'verify': getTokenAndVerify().verify + }, + url: '/taboi/excel/danger_export_do', + method: 'POST', + responseType: 'arraybuffer', + data + }); +} + +//添加/取消关注 +export function focus_do(data) { + return request({ + headers: { + 'token': getTokenAndVerify().token, + 'verify': getTokenAndVerify().verify + }, + url: '/taboi/danger/focus_do', + method: 'POST', + contentType: "application/json", + data + }); +} + + diff --git a/src/api/sgyhpczl/chartAnalysis.js b/src/api/sgyhpczl/chartAnalysis.js new file mode 100644 index 0000000..6ffc711 --- /dev/null +++ b/src/api/sgyhpczl/chartAnalysis.js @@ -0,0 +1,31 @@ +import request from '@/utils/request'; +import {getTokenAndVerify} from "@/api/sgyhpczl/auth"; + + +export function chart_analysis(data) { + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/danger/chart_analysis", + contentType: "application/json", + method: 'POST', + data + }); +} + +export function chart_compare(data) { + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/danger/chart_compare", + contentType: "application/json", + method: 'POST', + data + }); +} + + diff --git a/src/api/sgyhpczl/delayHiddenDangerRectification.js b/src/api/sgyhpczl/delayHiddenDangerRectification.js index 1790060..e13c1e6 100644 --- a/src/api/sgyhpczl/delayHiddenDangerRectification.js +++ b/src/api/sgyhpczl/delayHiddenDangerRectification.js @@ -55,7 +55,7 @@ arr.push({field:"check_class",value:data.form.check_class,type:'OPT'}) } /*是否关联*/ - if(data.form.DTRisk_bankId!=null && data.form.DTRisk_bankId!=''){ + if(data.form.DTRisk_bankId!=null){ arr.push({field:"DTRisk_bankId",value:data.form.DTRisk_bankId,type:'OPT'}) } /*录入人*/ diff --git a/src/api/sgyhpczl/fileUtils.js b/src/api/sgyhpczl/fileUtils.js new file mode 100644 index 0000000..5884f07 --- /dev/null +++ b/src/api/sgyhpczl/fileUtils.js @@ -0,0 +1,17 @@ +import request from '@/utils/request'; +import {getTokenAndVerify} from "@/api/sgyhpczl/auth"; + +//下载文件 +export function downloadFile(params) { + return request({ + headers: { + 'token': getTokenAndVerify().token, + 'verify': getTokenAndVerify().verify + }, + url: '/taboi/file/dowloand_do', + method: 'GET', + contentType: "multipart/form-data", + responseType:'blob', + params:params?params:{} + }); +} diff --git a/src/api/sgyhpczl/hiddenDangerManagement.js b/src/api/sgyhpczl/hiddenDangerManagement.js index fab12b2..20b710d 100644 --- a/src/api/sgyhpczl/hiddenDangerManagement.js +++ b/src/api/sgyhpczl/hiddenDangerManagement.js @@ -46,7 +46,7 @@ arr.push({field: "alter_status", value: data.form.alter_status, type: 'OPT'}) } /*是否关联*/ - if (data.form.DTRisk_bankId != null && data.form.DTRisk_bankId != '') { + if(data.form.DTRisk_bankId!=null){ arr.push({field: "DTRisk_bankId", value: data.form.DTRisk_bankId, type: 'OPT'}) } /*检查时间*/ @@ -170,3 +170,17 @@ }) } +export function self_info(data) { + return request({ + headers: { + 'token': getTokenAndVerify().token, + 'verify': getTokenAndVerify().verify + }, + url: '/taboi/danger/self_info?id=' + data, + method: 'post', + data + }) +} + + + diff --git a/src/api/sgyhpczl/hiddenDangerRegistration.js b/src/api/sgyhpczl/hiddenDangerRegistration.js index b92ddc5..e5a2675 100644 --- a/src/api/sgyhpczl/hiddenDangerRegistration.js +++ b/src/api/sgyhpczl/hiddenDangerRegistration.js @@ -3,6 +3,10 @@ export function getPageList(data) { var arr=[] + /*举一反三ID*/ + if(data.form.jyfsId!=null && data.form.jyfsId!=''){ + arr.push({field:"jyfsId",value:data.form.jyfsId,type:'OPT'}) + } /*编号*/ if(data.form.number!=null && data.form.number!=''){ arr.push({field:"number",value:data.form.number,type:'TXT'}) @@ -52,7 +56,7 @@ arr.push({field:"check_class",value:data.form.check_class,type:'OPT'}) } /*是否关联*/ - if(data.form.DTRisk_bankId!=null && data.form.DTRisk_bankId!=''){ + if(data.form.DTRisk_bankId!=null){ arr.push({field:"DTRisk_bankId",value:data.form.DTRisk_bankId,type:'OPT'}) } /*录入人*/ diff --git a/src/api/sgyhpczl/hiddenDangerTroubleshootingList.js b/src/api/sgyhpczl/hiddenDangerTroubleshootingList.js new file mode 100644 index 0000000..96d3f96 --- /dev/null +++ b/src/api/sgyhpczl/hiddenDangerTroubleshootingList.js @@ -0,0 +1,37 @@ +import request from '@/utils/request'; +import {getTokenAndVerify} from "@/api/sgyhpczl/auth"; + +export function standard_template() { + return request({ + headers: { + 'token': getTokenAndVerify().token, + 'verify': getTokenAndVerify().verify + }, + url: '/taboi/download/standard_template', + method: 'get', + responseType: 'arraybuffer', + }); +} + +export function standard_import_do(data) { + return request({ + headers: { + 'token': getTokenAndVerify().token, + 'verify': getTokenAndVerify().verify + }, + url: '/taboi/excel/standard_import_do', + method: 'post', + data + }) +} + +export function stand_list(data) { + return request({ + headers: { + 'token': getTokenAndVerify().token, + 'verify': getTokenAndVerify().verify + }, + url: '/taboi/danger/stand_list?standardType=' + data, + method: 'GET', + }) +} diff --git a/src/api/sgyhpczl/initSelect.js b/src/api/sgyhpczl/initSelect.js index b55abaf..5b57c50 100644 --- a/src/api/sgyhpczl/initSelect.js +++ b/src/api/sgyhpczl/initSelect.js @@ -133,3 +133,19 @@ data }); } + +//深入现场情况(带班值班) +export function initSrxcqk() { + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + contentType: "multipart/form-data", + url: "/taboi/user/situation_do", + method: 'GET', + }); +} + + + diff --git a/src/api/sgyhpczl/majorHidden.js b/src/api/sgyhpczl/majorHidden.js index b556dca..f3a4a29 100644 --- a/src/api/sgyhpczl/majorHidden.js +++ b/src/api/sgyhpczl/majorHidden.js @@ -57,7 +57,7 @@ arr.push({field:"check_class",value:data.form.check_class,type:'OPT'}) } /*是否关联*/ - if(data.form.DTRisk_bankId!=null && data.form.DTRisk_bankId!=''){ + if(data.form.DTRisk_bankId!=null){ arr.push({field:"DTRisk_bankId",value:data.form.DTRisk_bankId,type:'OPT'}) } /*录入人*/ diff --git a/src/api/sgyhpczl/oneFromanother.js b/src/api/sgyhpczl/oneFromanother.js new file mode 100644 index 0000000..7b6b447 --- /dev/null +++ b/src/api/sgyhpczl/oneFromanother.js @@ -0,0 +1,104 @@ +import request from '@/utils/request'; +import {getTokenAndVerify} from "@/api/sgyhpczl/auth"; + + +export function getPageList(data) { + var arr=[] + /*下发单位*/ + if(data.form.push_branch!=null && data.form.push_branch!=''){ + arr.push({field:"push_branch",value:data.form.push_branch,type:'OPT'}) + } + /*隐患单位*/ + if(data.form.ht_community!=null && data.form.ht_community!=''){ + arr.push({field:"ht_community",value:data.form.ht_community,type:'TXT'}) + } + /*隐患类别*/ + if(data.form.ht_typesub!=null && data.form.ht_typesub!=''){ + arr.push({field:"ht_typesub",value:data.form.ht_typesub,type:'OPT'}) + } + /*隐患级别*/ + if(data.form.ht_level!=null && data.form.ht_level!=''){ + arr.push({field:"ht_level",value:data.form.ht_level,type:'OPT'}) + } + /*隐患地点*/ + if(data.form.address!=null && data.form.address!=''){ + arr.push({field:"address",value:data.form.address,type:'TXT'}) + } + /*检查类别*/ + if(data.form.checktype!=null && data.form.checktype!=''){ + arr.push({field:"checktype",value:data.form.checktype,type:'OPT'}) + } + /*隐患内容*/ + if(data.form.ht_content!=null && data.form.ht_content!=''){ + arr.push({field:"ht_content",value:data.form.ht_content,type:'TXT'}) + } + /*检查时间*/ + if(data.form.check_dateStart!=null && data.form.check_dateStart!='' && data.form.check_dateEnd!=null && data.form.check_dateEnd!=''){ + arr.push({field:"check_date",value:data.form.check_dateStart+"至"+data.form.check_dateEnd,type:'DAT'}) + } + data.query_condition=arr + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/analogy/danger_list", + contentType: "application/json", + method: 'POST', + data + }); +} +//不存在保存 +export function noExistSave(data) { + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/analogy/no_exist_save", + contentType: "application/json", + method: 'POST', + data + }); +} +//不存在结果详情 +export function selfCheckNotInfo(params) { + return request({ + headers: { + 'token': getTokenAndVerify().token, + 'verify': getTokenAndVerify().verify + }, + url: '/taboi/danger/self_check_not_info', + // '?id=24871&type=0', + contentType: "multipart/form-data", + method: 'GET', + params:params?params:{} + }); +} +//撤销 +export function revoke(id) { + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + contentType: "multipart/form-data", + url: "/taboi/analogy/revoke_do?id="+id, + method: 'GET', + }); +} +//导出 +export function analogy_export_do(data) { + return request({ + headers: { + 'token': getTokenAndVerify().token, + 'verify': getTokenAndVerify().verify + }, + url: '/taboi/excel/analogy_export_do', + method: 'POST', + responseType: 'arraybuffer', + data + }); +} + + diff --git a/src/api/sgyhpczl/oneFromanotherN.js b/src/api/sgyhpczl/oneFromanotherN.js new file mode 100644 index 0000000..bd71dd3 --- /dev/null +++ b/src/api/sgyhpczl/oneFromanotherN.js @@ -0,0 +1,119 @@ +import request from '@/utils/request'; +import {getTokenAndVerify} from "@/api/sgyhpczl/auth"; + + +export function getPageList(data) { + var arr=[] + /*隐患单位*/ + if(data.form.check_main_branch!=null && data.form.check_main_branch!=''){ + arr.push({field:"check_main_branch",value:data.form.check_main_branch,type:'TXT'}) + } + /*检查类别*/ + if(data.form.checktype!=null && data.form.checktype!=''){ + arr.push({field:"checktype",value:data.form.checktype,type:'OPT'}) + } + /*被检单位*/ + if(data.form.ht_community!=null && data.form.ht_community!=''){ + arr.push({field:"ht_community",value:data.form.ht_community,type:'TXT'}) + } + /*隐患级别*/ + if(data.form.ht_level!=null && data.form.ht_level!=''){ + arr.push({field:"ht_level",value:data.form.ht_level,type:'OPT'}) + } + /*隐患类别*/ + if(data.form.ht_typesub!=null && data.form.ht_typesub!=''){ + arr.push({field:"ht_typesub",value:data.form.ht_typesub,type:'OPT'}) + } + /*隐患地点*/ + if(data.form.address!=null && data.form.address!=''){ + arr.push({field:"address",value:data.form.address,type:'TXT'}) + } + /*隐患内容*/ + if(data.form.ht_content!=null && data.form.ht_content!=''){ + arr.push({field:"ht_content",value:data.form.ht_content,type:'TXT'}) + } + /*发送单位*/ + if(data.form.workGroupName!=null && data.form.workGroupName!=''){ + arr.push({field:"workGroupName",value:data.form.workGroupName,type:'TXT'}) + } + /*检查时间*/ + if(data.form.check_dateStart!=null && data.form.check_dateStart!='' && data.form.check_dateEnd!=null && data.form.check_dateEnd!=''){ + arr.push({field:"check_date",value:data.form.check_dateStart+"至"+data.form.check_dateEnd,type:'DAT'}) + } + data.query_condition=arr + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/analogy/danger_inner_list", + contentType: "application/json", + method: 'POST', + data + }); +} +//新增 +export function save(data) { + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/analogy/save_do", + contentType: "application/json", + method: 'POST', + data + }); +} +//编辑 +export function edit(data) { + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/analogy/edit_do", + contentType: "application/json", + method: 'POST', + data + }); +} + +//删除 +export function del(data) { + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/analogy/del_do?id=" + data, + contentType: "multipart/form-data", + method: 'POST' + }); +} +//发送 +export function send(data) { + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/analogy/inner_send_do", + contentType: "application/x-www-form-urlencoded", + method: 'POST', + data + }); +} +//回收 +export function revoke(data) { + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/analogy/inner_revoke_do", + contentType: "application/x-www-form-urlencoded", + method: 'POST', + data + }); +} diff --git a/src/api/sgyhpczl/recheckCancellationNumber.js b/src/api/sgyhpczl/recheckCancellationNumber.js index f770b54..4fe0d8a 100644 --- a/src/api/sgyhpczl/recheckCancellationNumber.js +++ b/src/api/sgyhpczl/recheckCancellationNumber.js @@ -54,7 +54,7 @@ arr.push({field:"check_class",value:data.form.check_class,type:'OPT'}) } /*是否关联*/ - if(data.form.DTRisk_bankId!=null && data.form.DTRisk_bankId!=''){ + if(data.form.DTRisk_bankId!=null){ arr.push({field:"DTRisk_bankId",value:data.form.DTRisk_bankId,type:'OPT'}) } /*录入人*/ diff --git a/src/api/sgyhpczl/safetyHazardAccount.js b/src/api/sgyhpczl/safetyHazardAccount.js new file mode 100644 index 0000000..253d442 --- /dev/null +++ b/src/api/sgyhpczl/safetyHazardAccount.js @@ -0,0 +1,123 @@ +import request from '@/utils/request'; +import {getTokenAndVerify} from "@/api/sgyhpczl/auth"; + +export function getPageList(data) { + var arr=[] + /*编号*/ + if(data.form.number!=null && data.form.number!=''){ + arr.push({field:"number",value:data.form.number,type:'TXT'}) + } + /*检查单位*/ + if(data.form.check_main_branch!=null && data.form.check_main_branch!=''){ + arr.push({field:"check_main_branch",value:data.form.check_main_branch,type:'OPT'}) + } + /*检查部门*/ + if(data.form.check_branch!=null && data.form.check_branch!=''){ + arr.push({field:"check_branch",value:data.form.check_branch,type:'OPT'}) + } + /*检查人*/ + if(data.form.check_man!=null && data.form.check_man!=''){ + arr.push({field:"check_man",value:data.form.check_man,type:'TXT'}) + } + /*隐患单位*/ + if(data.form.ht_community!=null && data.form.ht_community!=''){ + arr.push({field:"ht_community",value:data.form.ht_community,type:'TXT'}) + } + /*隐患部门*/ + if(data.form.ht_branch!=null && data.form.ht_branch!=''){ + arr.push({field:"ht_branch",value:data.form.ht_branch,type:'OPT'}) + } + /*隐患类别*/ + if(data.form.ht_typesub!=null && data.form.ht_typesub!=''){ + arr.push({field:"ht_typesub",value:data.form.ht_typesub,type:'OPT'}) + } + /*隐患级别*/ + if(data.form.ht_level!=null && data.form.ht_level!=''){ + arr.push({field:"ht_level",value:data.form.ht_level,type:'OPT'}) + } + /*检查类型*/ + if(data.form.checktype!=null && data.form.checktype!=''){ + arr.push({field:"checktype",value:data.form.checktype,type:'OPT'}) + } + /*隐患地点*/ + if(data.form.address!=null && data.form.address!=''){ + arr.push({field:"address",value:data.form.address,type:'TXT'}) + } + /*隐患内容*/ + if(data.form.ht_content!=null && data.form.ht_content!=''){ + arr.push({field:"ht_content",value:data.form.ht_content,type:'TXT'}) + } + + /*复查单位*/ + if(data.form.callback_branch!=null && data.form.callback_branch!=''){ + arr.push({field:"callback_branch",value:data.form.callback_branch,type:'TXT'}) + } + /*班次*/ + if(data.form.check_class!=null && data.form.check_class!=''){ + arr.push({field:"check_class",value:data.form.check_class,type:'OPT'}) + } + /*风险等级*/ + if(data.form.DTRisk_level!=null && data.form.DTRisk_level!=''){ + arr.push({field:"DTRisk_level",value:data.form.DTRisk_level,type:'OPT'}) + } + /*是否关联*/ + if(data.form.DTRisk_bankId!=null){ + arr.push({field:"DTRisk_bankId",value:data.form.DTRisk_bankId,type:'OPT'}) + } + + /*录入人*/ + if(data.form.createBy!=null && data.form.createBy!=''){ + arr.push({field:"Created_by",value:data.form.createBy,type:'OPT'}) + } + /*检查时间*/ + if(data.form.check_dateStart!=null && data.form.check_dateStart!='' && data.form.check_dateEnd!=null && data.form.check_dateEnd!=''){ + arr.push({field:"check_date",value:data.form.check_dateStart+"至"+data.form.check_dateEnd,type:'DAT'}) + + } + /*限改时间*/ + if(data.form.alter_timeStart!=null && data.form.alter_timeStart!='' && data.form.alter_timeEnd!=null && data.form.alter_timeEnd!=''){ + arr.push({field:"alter_time",value:data.form.alter_timeStart+"至"+data.form.alter_timeEnd,type:'DAT'}) + + } + data.query_condition=arr + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/danger/danger_all_list", + contentType: "application/json", + method: 'POST', + data + }); +} + + +//督察督办 +export function inspect_do(data) { + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/danger/inspect_do", + contentType: "application/json", + method: 'POST', + data, + }); +} + + +//举一反三 +export function draw_inferences_do(data) { + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/danger/draw_inferences_do", + contentType: "application/json", + method: 'POST', + data, + }); +} diff --git a/src/api/sgyhpczl/summaryPotentialSafetyHzards.js b/src/api/sgyhpczl/summaryPotentialSafetyHzards.js new file mode 100644 index 0000000..032f896 --- /dev/null +++ b/src/api/sgyhpczl/summaryPotentialSafetyHzards.js @@ -0,0 +1,34 @@ + +import request from '@/utils/request'; +import {getTokenAndVerify} from "@/api/sgyhpczl/auth"; + +//汇总查询 +export function danger_summary(data) { + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/danger/danger_summary", + contentType: "application/json", + method: 'POST', + data, + }); +} + +//汇总查询 +export function getPageList(data) { + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/danger/danger_summary_info", + contentType: "application/json", + method: 'POST', + data + }); +} + + + diff --git a/src/api/sgyhpczl/troubleshooting.js b/src/api/sgyhpczl/troubleshooting.js new file mode 100644 index 0000000..faae69d --- /dev/null +++ b/src/api/sgyhpczl/troubleshooting.js @@ -0,0 +1,85 @@ +import request from '@/utils/request'; +import {getTokenAndVerify} from "@/api/sgyhpczl/auth"; + + +export function getPageList(data) { + var arr=[] + /*地点*/ + if(data.form.ADDRESS!=null && data.form.ADDRESS!=''){ + arr.push({field:"ADDRESS",value:data.form.ADDRESS,type:'TXT'}) + } + /*主持人*/ + if(data.form.HOST!=null && data.form.HOST!=''){ + arr.push({field:"HOST",value:data.form.HOST,type:'TXT'}) + } + /*会议专业*/ + if(data.form.CONFERENCE_PROFESSIONAL!=null && data.form.CONFERENCE_PROFESSIONAL!='' && data.form.CONFERENCE_PROFESSIONAL!='0'){ + arr.push({field:"CONFERENCE_PROFESSIONAL",value:data.form.CONFERENCE_PROFESSIONAL,type:'OPT'}) + } + /*召开时间*/ + if(data.form.Conference_TimeStart!=null && data.form.Conference_TimeStart!='' && data.form.Conference_TimeEnd!=null && data.form.Conference_TimeEnd!=''){ + arr.push({field:"Conference_Time",value:data.form.Conference_TimeStart+"至"+data.form.Conference_TimeEnd,type:'DAT'}) + } + data.query_condition=arr + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/conference/conference_list", + contentType: "application/json", + method: 'POST', + data + }); +} +//新增/编辑 +export function addOrEdit(data) { + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/conference/save_do", + contentType: "application/json", + method: 'POST', + data + }); +} +//删除 +export function del(data) { + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/conference/del_do?id=" + data, + contentType: "multipart/form-data", + method: 'POST' + }); +} +//上报 +export function upload_do(data) { + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + url: "/taboi/conference/upload_do", + contentType: "multipart/form-data", + method: 'POST', + data + }); +} +//撤销 +export function revoke(data) { + return request({ + headers:{ + 'token': getTokenAndVerify().token, + 'verify':getTokenAndVerify().verify + }, + contentType: "multipart/form-data", + url: "/taboi/conference/revoke_do", + method: 'POST', + data + }); +} diff --git a/src/main.js b/src/main.js index 9c3812a..2dd6f5f 100644 --- a/src/main.js +++ b/src/main.js @@ -36,6 +36,15 @@ size: Cookies.get('size') || 'medium' // set element-ui default size }) +//highcharts +import HighchartsVue from 'highcharts-vue' + +//接下来,您可以将其注册为 Vue 对象中的插件: + +Vue.use(HighchartsVue) + + + // register global utility filters. Object.keys(filters).forEach(key => { Vue.filter(key, filters[key]) diff --git a/src/permission.js b/src/permission.js index e5247a6..b24a66d 100644 --- a/src/permission.js +++ b/src/permission.js @@ -17,7 +17,7 @@ return roles.some(role => permissionRoles.indexOf(role) >= 0) } -const whiteList = ['/login','/pwdChange', '/auth-redirect','/agreement','/register','/productionEquipment','/instrumentData','/equipmentAlarm'] // no redirect whitelist +const whiteList = ['/login','/pwdChange', '/auth-redirect','/agreement','/register','/productionEquipment','/instrumentData','/equipmentAlarm','/oneFromanother','/hiddenDangerTroubleshootingList','/preview','/inspectionNotExist','/send','/Issuedbysuperiors','/oneFromanotherN','/summaryPotentialSafetyHzards','/safetyHazardAccount','/superiorsSend','/accountSend','/existN','/exist','/hazardSource','/safetyedit','/Dualbase','/supervision','/inferOtherThings','/DualbaseLost','/summaryList','/summaryForm','/chartAnalysis','/careabout','/troubleshooting','/managementConcerns'] // no redirect whitelist router.beforeEach((to, from, next) => { NProgress.start() // start progress bar diff --git a/src/router/index.js b/src/router/index.js index 0b0ea4e..0e3db1e 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -34,7 +34,6 @@ component: () => import('@/views/login/index'), hidden: true }, - { path: '/auth-redirect', component: () => import('@/views/login/authredirect'), @@ -129,187 +128,400 @@ meta: { title: '安全生产标准化', icon: 'el-icon-security' }, hidden: true, children: [ - { - path: '/new', - // name: '自查清单_新增|修改', - component: () => import('@/views/safetyproduction/new'), - meta: { title: '自查清单', icon: 'el-icon-dash', noCache: true, affix: true }, - hidden: true - }, - { - //自查清单-去评审 - path: '/gojudging', - component: () => import('@/views/safetyproduction/gojudging'), - hidden: true - }, - { - //自查清单_评审 - path: '/review', - component: () => import('@/views/safetyproduction/review'), - hidden: true - }, - { - //自查清单_修改检查项 - path: '/reviewXG', - component: () => import('@/views/safetyproduction/reviewXG'), - hidden: true - }, - ] - }, - { - id: 124, - parentId: 0, - path: '/sgyhpczl', - component: Layout, - name: '事故隐患排查治理', - meta: { title: '事故隐患排查治理', icon: 'el-icon-facilities' }, - hidden: true, - children: [ - { - path: '/fillProgress', - // name: '重大隐患整改进度-填写进度', - component: () => import('@/views/accidentHidden/fillProgress'), - // meta: { title: '重大隐患整改进度-填写进度', icon: '' } - hidden: true - }, - { + { + path: '/new', + // name: '自查清单_新增|修改', + component: () => import('@/views/safetyproduction/new'), + meta: { title: '自查清单', icon: 'el-icon-dash', noCache: true, affix: true }, + hidden: true + }, + { + //自查清单-去评审 + path: '/gojudging', + component: () => import('@/views/safetyproduction/gojudging'), + hidden: true + }, + { + //自查清单_评审 + path: '/review', + component: () => import('@/views/safetyproduction/review'), + hidden: true + }, + { + //自查清单_修改检查项 + path: '/reviewXG', + component: () => import('@/views/safetyproduction/reviewXG'), + hidden: true + }, + + ] + }, + /* { + id: 2, + parentId: 0, + path: '/majorHazardSourceMonitoring', + component: Layout, + name: '重大危险源监测', + meta: { title: '重大危险源监测', icon: 'el-icon-facilities' }, + children: [ + { + id: 1, + parentId: 0, + path: '/productionEquipment', + name: '生产设备', + component: () => import('@/views/majorHazardSourceMonitoring/productionEquipment'), + meta: { title: '生产设备', icon: '' } + }, + { + id: 2, + parentId: 0, + path: '/equipmentAlarm', + name: '设备报警信息', + component: () => import('@/views/majorHazardSourceMonitoring/equipmentAlarm'), + meta: { title: '设备报警信息', icon: '' } + }, + { + id: 3, + parentId: 0, + path: '/instrumentData', + name: '仪表实时数据', + component: () => import('@/views/majorHazardSourceMonitoring/instrumentData'), + meta: { title: '仪表实时数据', icon: '' } + }, + ] + },*/ + { + id: 2, + parentId: 0, + path: '/accidentHidden', + component: Layout, + name: '事故隐患排查治理', + meta: { title: '事故隐患排查治理', icon: 'el-icon-facilities' }, + children: [ + { + id: 1, + parentId: 0, + path: '/majorHidden', + name: '重大隐患整改进度', + component: () => import('@/views/accidentHidden/majorHidden'), + meta: { title: '重大隐患整改进度', icon: '' } + }, + { + path: '/fillProgress', + // name: '重大隐患整改进度-填写进度', + component: () => import('@/views/accidentHidden/fillProgress'), + // meta: { title: '重大隐患整改进度-填写进度', icon: '' } + hidden: true + }, + { + id: 2, + parentId: 0, + path: '/hiddenDangerRegistration', + name: '隐患登记下达', + component: () => import('@/views/hiddenDangerRegistration'), + meta: { title: '隐患登记下达', icon: '' } + }, + { path: '/hiddenDangerAdd', // name: '新增', component: () => import('@/views/hiddenDangerRegistration/hiddenDangerAdd'), // meta: { title: '隐患登记下达-发送隐患单', icon: '' } hidden: true - }, - { - path: '/hiddenDangerList', - // name: '隐患登记下达-发送隐患单', - component: () => import('@/views/hiddenDangerRegistration/hiddenDangerList'), - // meta: { title: '隐患登记下达-发送隐患单', icon: '' } - hidden: true - }, - { - path: '/listAssociatedHazards', - // name: '隐患登记下达-关联危险源-列表页面', - component: () => import('@/views/hiddenDangerRegistration/listAssociatedHazards'), - // meta: { title: '隐患登记下达-关联危险源-列表页面', icon: '' } - hidden: true - }, - { - path: '/reboundHiddenDanger', - // name: '风险预控-重复反弹隐患-列表页面', - component: () => import('@/views/hiddenDangerRegistration/reboundHiddenDanger'), - // meta: { title: '风险预控-重复反弹隐患-列表页面', icon: '' } - hidden: true - }, - { - path: '/sendHiddenDangerList', - // name: '隐患整改治理-发送隐患单', - component: () => import('@/views/hiddenDangerRectification/sendHiddenDangerList'), - // meta: { title: '隐患整改治理-发送隐患单', icon: '' } - hidden: true - }, - { - path: '/applicationForExtension', - // name: '隐患整改治理-申请延期', - component: () => import('@/views/hiddenDangerRectification/applicationForExtension'), - // meta: { title: '隐患整改治理-申请延期', icon: '' } - hidden: true - }, - { - path: '/recheckHiddenDangerList', - // name: '隐患复查销号-发送隐患单', - component: () => import('@/views/hiddenDangerReview/recheckHiddenDangerList'), - // meta: { title: '隐患复查销号-发送隐患单', icon: '' } - hidden: true - }, - { - path: '/rectificationDelayHiddenDanger', - // name: '隐患整改延期-发送隐患单', - component: () => import('@/views/delayHiddenDangerRectification/rectificationDelayHiddenDanger'), - // meta: { title: '隐患整改延期-发送隐患单', icon: '' } - hidden: true - }, - { + }, + { + path: '/hiddenDangerList', + // name: '隐患登记下达-发送隐患单', + component: () => import('@/views/hiddenDangerRegistration/hiddenDangerList'), + // meta: { title: '隐患登记下达-发送隐患单', icon: '' } + hidden: true + }, + { + path: '/listAssociatedHazards', + // name: '隐患登记下达-关联危险源-列表页面', + component: () => import('@/views/hiddenDangerRegistration/listAssociatedHazards'), + // meta: { title: '隐患登记下达-关联危险源-列表页面', icon: '' } + hidden: true + }, + { + path: '/reboundHiddenDanger', + // name: '风险预控-重复反弹隐患-列表页面', + component: () => import('@/views/hiddenDangerRegistration/reboundHiddenDanger'), + // meta: { title: '风险预控-重复反弹隐患-列表页面', icon: '' } + hidden: true + }, + { + id: 3, + parentId: 0, + path: '/hiddenDangerRectification', + name: '隐患整改治理', + component: () => import('@/views/hiddenDangerRectification'), + meta: { title: '隐患整改治理', icon: '' } + }, + { + path: '/sendHiddenDangerList', + // name: '隐患整改治理-发送隐患单', + component: () => import('@/views/hiddenDangerRectification/sendHiddenDangerList'), + // meta: { title: '隐患整改治理-发送隐患单', icon: '' } + hidden: true + }, + { + path: '/applicationForExtension', + // name: '隐患整改治理-申请延期', + component: () => import('@/views/hiddenDangerRectification/applicationForExtension'), + // meta: { title: '隐患整改治理-申请延期', icon: '' } + hidden: true + }, + { + id: 4, + parentId: 0, + path: '/recheckCancellationNumber', + name: '隐患复查销号', + component: () => import('@/views/hiddenDangerReview/recheckCancellationNumber'), + meta: { title: '隐患复查销号', icon: '' } + }, + { + path: '/recheckHiddenDangerList', + // name: '隐患复查销号-发送隐患单', + component: () => import('@/views/hiddenDangerReview/recheckHiddenDangerList'), + // meta: { title: '隐患复查销号-发送隐患单', icon: '' } + hidden: true + }, + { + id: 5, + parentId: 0, + path: '/delayHiddenDangerRectification', + name: '隐患整改延期', + component: () => import('@/views/delayHiddenDangerRectification'), + meta: { title: '隐患整改延期', icon: '' } + }, + { + path: '/rectificationDelayHiddenDanger', + // name: '隐患整改延期-发送隐患单', + component: () => import('@/views/delayHiddenDangerRectification/rectificationDelayHiddenDanger'), + // meta: { title: '隐患整改延期-发送隐患单', icon: '' } + hidden: true + }, + { + id: 6, + parentId: 0, + path: '/hiddenDangerManagement', + name: '自查隐患管理', + component: () => import('@/views/hiddenDangerManagement'), + meta: { title: '自查隐患管理', icon: '' } + }, + { path: '/fillRectificationAdd', // name: '自查隐患管理-填写整改', component: () => import('@/views/hiddenDangerManagement/fillRectificationAdd'), // meta: { title: '自查隐患管理-填写整改', icon: '' } hidden: true }, + { + path: '/fillRectification', + // name: '自查隐患管理-填写整改', + component: () => import('@/views/hiddenDangerManagement/fillRectification'), + // meta: { title: '自查隐患管理-填写整改', icon: '' } + hidden: true + }, + { + path: '/fillInspector', + // name: '自查隐患管理-填写督察', + component: () => import('@/views/hiddenDangerManagement/fillInspector'), + // meta: { title: '自查隐患管理-填写督察', icon: '' } + hidden: true + }, + { + id: 7, + parentId: 0, + path: '/oneFromanother', + name: '举一反三隐患', + component: () => import('@/views/oneFromanother'), + meta: { title: '举一反三隐患', icon: '' } + }, { - path: '/fillRectification', - // name: '自查隐患管理-填写整改', - component: () => import('@/views/hiddenDangerManagement/fillRectification'), - // meta: { title: '自查隐患管理-填写整改', icon: '' } + path: '/manage', + component: () => import('@/views/oneFromanother/manage'), hidden: true }, { - path: '/fillInspector', - // name: '自查隐患管理-填写督察', - component: () => import('@/views/hiddenDangerManagement/fillInspector'), - // meta: { title: '自查隐患管理-填写督察', icon: '' } + path: '/exist', + component: () => import('@/views/oneFromanother/exist'), hidden: true }, - ] - }, - // { - // id: 2, - // parentId: 0, - // path: '/majorHazardSourceMonitoring', - // component: Layout, - // name: '重大危险源监测', - // meta: { title: '重大危险源监测', icon: 'el-icon-facilities' }, - // children: [ - // { - // id: 1, - // parentId: 0, - // path: '/productionEquipment', - // name: '生产设备', - // component: () => import('@/views/majorHazardSourceMonitoring/productionEquipment'), - // meta: { title: '生产设备', icon: '' } - // }, - // { - // id: 2, - // parentId: 0, - // path: '/equipmentAlarm', - // name: '设备报警信息', - // component: () => import('@/views/majorHazardSourceMonitoring/equipmentAlarm'), - // meta: { title: '设备报警信息', icon: '' } - // }, - // { - // id: 3, - // parentId: 0, - // path: '/instrumentData', - // name: '仪表实时数据', - // component: () => import('@/views/majorHazardSourceMonitoring/instrumentData'), - // meta: { title: '仪表实时数据', icon: '' } - // }, - // ] - // }, - // { - // id: 2, - // parentId: 0, - // path: '/accidentHidden', - // component: Layout, - // name: '事故隐患排查治理', - // meta: { title: '事故隐患排查治理', icon: 'el-icon-facilities' }, - // children: [ - // { - // id: 1, - // parentId: 0, - // path: '/majorHidden', - // name: '重大隐患整改进度', - // component: () => import('@/views/accidentHidden/majorHidden'), - // meta: { title: '重大隐患整改进度', icon: '' } - // }, - // { - // path: '/hiddenDangerList', - // // name: '重大隐患整改进度-发送隐患单', - // component: () => import('@/views/accidentHidden/hiddenDangerList'), - // // meta: { title: '重大隐患整改进度-发送隐患单', icon: '' } - // hidden: true - // }, - // ] - // } + { + path: '/inspectionNotExist', + // name: '举一反三-待自查-不存在', + component: () => import('@/views/oneFromanother/inspectionNotExist'), + // meta: { title: '举一反三-待自查-不存在', icon: '' } + hidden: true + }, + { + path: '/send', + // name: '内部举一反三-发送弹窗', + component: () => import('@/views/oneFromanother/send'), + // meta: { title: '内部举一反三-发送弹窗', icon: '' } + hidden: true + }, + { + id: 8, + parentId: 0, + path: '/hiddenDangerTroubleshootingList', + name: '隐患排查清单', + component: () => import('@/views/hiddenDangerTroubleshootingList'), + meta: { title: '隐患排查清单', icon: '' } + }, + { + path: '/preview', + // name: '隐患排查清单-预览', + component: () => import('@/views/hiddenDangerTroubleshootingList/preview'), + // meta: { title: '隐患排查清单-预览', icon: '' } + hidden: true + }, + { + id: 9, + parentId: 0, + path: '/Issuedbysuperiors', + name: '上级下达隐患', + component: () => import('@/views/Issuedbysuperiors'), + meta: { title: '上级下达隐患', icon: '' } + }, + { + id: 10, + parentId: 0, + path: '/oneFromanotherN', + name: '内部举一反三', + component: () => import('@/views/oneFromanotherN'), + meta: { title: '内部举一反三', icon: '' } + }, + { + path: '/addDanger', + component: () => import('@/views/oneFromanotherN/addDanger'), + hidden: true + }, + { + path: '/existN', + component: () => import('@/views/oneFromanotherN/existN'), + hidden: true + }, + { + path: '/superiorsSend', + // name: '上级下达隐患-点击发送', + component: () => import('@/views/Issuedbysuperiors/superiorsSend'), + // meta: { title: '上级下达隐患-点击发送', icon: '' } + hidden: true + }, + { + id: 10, + parentId: 0, + path: '/summaryPotentialSafetyHzards', + name: '安全隐患汇总', + component: () => import('@/views/summaryPotentialSafetyHzards'), + meta: { title: '安全隐患汇总', icon: '' } + }, + { + id: 11, + parentId: 0, + path: '/safetyHazardAccount', + name: '安全隐患台账', + component: () => import('@/views/safetyHazardAccount'), + meta: { title: '安全隐患台账', icon: '' } + }, + { + path: '/accountSend', + // name: '安全隐患台账-查看隐患单', + component: () => import('@/views/safetyHazardAccount/accountSend'), + // meta: { title: '安全隐患台账-查看隐患单', icon: '' } + hidden: true + }, + { + path: '/hazardSource', + // name: '安全隐患台账-关联危险源', + component: () => import('@/views/safetyHazardAccount/hazardSource'), + // meta: { title: '安全隐患台账-关联危险源', icon: '' } + hidden: true + }, + { + path: '/safetyedit', + // name: '安全隐患台账-编辑', + component: () => import('@/views/safetyHazardAccount/safetyedit'), + // meta: { title: '安全隐患台账-编辑', icon: '' } + hidden: true + }, + { + path: '/Dualbase', + // name: '安全隐患台账-双基考核', + component: () => import('@/views/safetyHazardAccount/Dualbase'), + // meta: { title: '安全隐患台账-编辑', icon: '' } + hidden: true + }, + { + path: '/DualbaseLost', + // name: '安全隐患台账-双基考核', + component: () => import('@/views/safetyHazardAccount/DualbaseLost'), + // meta: { title: '安全隐患台账-编辑', icon: '' } + hidden: true + }, + { + path: '/supervision', + // name: '安全隐患台账-督查督办', + component: () => import('@/views/safetyHazardAccount/supervision'), + // meta: { title: '安全隐患台账-督查督办', icon: '' } + hidden: true + }, + { + path: '/inferOtherThings', + // name: '安全隐患台账-举一反三', + component: () => import('@/views/safetyHazardAccount/inferOtherThings'), + // meta: { title: '安全隐患台账-举一反三', icon: '' } + hidden: true + }, + { + path: '/summaryList', + // name: '安全隐患台账-举一反三', + component: () => import('@/views/summaryPotentialSafetyHzards/summaryList'), + // meta: { title: '安全隐患台账-举一反三', icon: '' } + hidden: true + }, + { + path: '/summaryForm', + // name: '安全隐患汇总-发送隐患单', + component: () => import('@/views/summaryPotentialSafetyHzards/summaryForm'), + // meta: { title: '安全隐患汇总-发送隐患单', icon: '' } + hidden: true + }, + { + path: '/dangerDetails', + // name: '安全隐患汇总-发送隐患单', + component: () => import('@/views/dangerDetails/dnagerDetails'), + // meta: { title: '安全隐患汇总-发送隐患单', icon: '' } + hidden: true + }, + { + id: 12, + parentId: 0, + path: '/chartAnalysis', + name: '隐患图表分析', + component: () => import('@/views/chartAnalysis'), + meta: { title: '隐患图表分析', icon: '' } + }, + { + id: 13, + parentId: 0, + path: '/careabout', + name: '您关注的隐患', + component: () => import('@/views/careabout'), + meta: { title: '您关注的隐患', icon: '' } + }, + { + id: 14, + parentId: 0, + path: '/troubleshooting', + name: '隐患排查会议', + component: () => import('@/views/troubleshooting'), + meta: { title: '隐患排查会议', icon: '' } + }, + ] + } ] export default new Router({ diff --git a/src/views/Issuedbysuperiors/index.vue b/src/views/Issuedbysuperiors/index.vue index 7a184ab..115a015 100644 --- a/src/views/Issuedbysuperiors/index.vue +++ b/src/views/Issuedbysuperiors/index.vue @@ -5,7 +5,7 @@ <el-input v-model="listQuery.form.number" style="width:202px" placeholder="请输入内容"></el-input> </el-form-item> <el-form-item label="检查单位"> - <el-select v-model="listQuery.form.check_main_branch" placeholder="请选择" @change="changeJCDW"> + <el-select v-model="listQuery.form.check_main_branch" placeholder="请选择" @change="changeJCDW"> <el-option v-for="item in JCDWList" :key="item.value" @@ -45,7 +45,7 @@ v-for="item in YHBMList" :key="item.branch_id" :label="item.branch_name" - :value="item.branch_id"> + :value="item.branch_name"> </el-option> </el-select> </el-form-item> @@ -117,67 +117,115 @@ </el-form-item> <el-form-item label="检查时间"> <el-col :span="11"> - <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.check_dateStart" style="width: 100%;" value-format="yyyy-MM-dd"></el-date-picker> + <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.check_dateStart" + style="width: 100%;" value-format="yyyy-MM-dd"></el-date-picker> </el-col> <el-col style="text-align:center" :span="2">-</el-col> <el-col :span="11"> - <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.check_dateEnd" style="width: 100%;" value-format="yyyy-MM-dd"></el-date-picker> + <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.check_dateEnd" + style="width: 100%;" value-format="yyyy-MM-dd"></el-date-picker> </el-col> </el-form-item> <el-form-item label="限改时间"> <el-col :span="11"> - <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.alter_timeStart" value-format="yyyy-MM-dd" style="width: 100%;"></el-date-picker> + <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.alter_timeStart" + value-format="yyyy-MM-dd" style="width: 100%;"></el-date-picker> </el-col> <el-col style="text-align:center" :span="2">-</el-col> <el-col :span="11"> - <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.alter_timeEnd" value-format="yyyy-MM-dd" style="width: 100%;"></el-date-picker> + <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.alter_timeEnd" + value-format="yyyy-MM-dd" style="width: 100%;"></el-date-picker> </el-col> </el-form-item> <el-form-item style="text-align:center;padding:0 50px"> - <el-button type="primary" class="btns" size="small" icon="el-icon-search" @click="getPageList()">查询</el-button> + <el-button type="primary" class="btns" size="small" icon="el-icon-search" @click="getPageList()">查询 + </el-button> <el-button type="primary" class="btns" size="small" @click="reset()">重置</el-button> - <el-button type="primary" class="btns" size="small" icon="el-icon-upload2">导出excel</el-button> + <el-button type="primary" class="btns" size="small" icon="el-icon-upload2" @click="exportData">导出excel + </el-button> </el-form-item> </el-form> - <el-row class="title-center"> + <el-row class="title-center"> <el-col :span="10"> - <el-radio-group v-model="radio1"> - <el-radio-button label="待发送">待发送</el-radio-button> - <el-radio-button label="整改中">整改中</el-radio-button> - <el-radio-button label="待复查">待复查</el-radio-button> - <el-radio-button label="整改完成">整改完成</el-radio-button> - </el-radio-group> + <el-radio-group v-model="YHType"> + <el-radio-button label="1">待发送</el-radio-button> + <el-radio-button label="2">整改中</el-radio-button> + <el-radio-button label="3">待复查</el-radio-button> + <el-radio-button label="end">整改完成</el-radio-button> + </el-radio-group> </el-col> </el-row> - <el-table :data="tableData" style="width: 100%" @selection-change="changeBox"> + <el-table :data="tableData" style="width: 100%" @selection-change="changeBox" v-loading="loading"> <el-table-column type="selection" width="55" align="center"></el-table-column> - <el-table-column prop="number" label="编号" align="center" width="120"></el-table-column> + <el-table-column prop="number" label="编号" align="center" width="120"> + <template slot-scope="scope"> + <div class="blue-font-color" @click="showDetails(scope.row)">{{ scope.row.number }}</div> + </template> + </el-table-column> <el-table-column prop="check_branch" label="检查部门" align="center" width="120"></el-table-column> <el-table-column prop="check_man" label="检查人" align="center" width="120"></el-table-column> <el-table-column prop="checktype" label="检查类别" align="center"></el-table-column> <el-table-column label="隐患项目" align="center"> - <el-table-column prop="check_date" label="检查时间" width="120" align="center"></el-table-column> - <el-table-column prop="address" label="地点" align="center"> </el-table-column> - <el-table-column prop="ht_content" label="内容" align="center"> </el-table-column> - <el-table-column prop="ht_typesub" label="类别" align="center"> </el-table-column> - <el-table-column prop="ht_level" label="级别" align="center"> </el-table-column> + <el-table-column prop="check_date" label="检查时间" width="120" align="center"> + <template slot-scope="scope"> + <label>{{ formatDate(scope.row.check_date) }}</label><br/> + <label>{{ scope.row.check_class }}</label> + </template> + </el-table-column> + <el-table-column prop="address" label="地点" align="center"> + <template slot-scope="scope"> + <el-popover trigger="hover" placement="top"> + <p>{{ scope.row.address }}</p> + <div slot="reference" class="name-wrapper">{{ + scope.row.address != null && scope.row.address.length > 10 ? scope.row.address.substring(0, 8) + "...." : scope.row.address + }} + </div> + </el-popover> + </template> + </el-table-column> + <el-table-column prop="ht_content" label="内容" align="center"> + <template slot-scope="scope"> + <el-popover trigger="hover" placement="top"> + <p>{{ scope.row.ht_content }}</p> + <div slot="reference" class="name-wrapper">{{ + scope.row.ht_content != null && scope.row.ht_content.length > 10 ? scope.row.ht_content.substring(0, 8) + "...." : scope.row.ht_content + }} + </div> + </el-popover> + </template> + </el-table-column> + <el-table-column prop="ht_typesub" label="类别" align="center"></el-table-column> + <el-table-column prop="ht_level" label="级别" align="center"></el-table-column> </el-table-column> <el-table-column label="整改计划" align="center"> - <el-table-column prop="measure" label="整改措施" align="center"> </el-table-column> - <el-table-column prop="ht_branch" label="隐患部门" align="center"> </el-table-column> - <el-table-column prop="duty_officer" label="责任人" align="center"> </el-table-column> - <el-table-column prop="alter_time" label="限改时间" width="120" align="center"></el-table-column> - <el-table-column prop="ht_level" label="级别" align="center"> </el-table-column> + <el-table-column prop="measure" label="整改措施" align="center"> + <template slot-scope="scope"> + <el-popover trigger="hover" placement="top"> + <p>{{ scope.row.measure }}</p> + <div slot="reference" class="name-wrapper">{{ + scope.row.measure != null && scope.row.measure.length > 10 ? scope.row.measure.substring(0, 8) + "...." : scope.row.measure + }} + </div> + </el-popover> + </template> + </el-table-column> + <el-table-column prop="ht_branch" label="隐患部门" align="center"></el-table-column> + <el-table-column prop="duty_officer" label="责任人" align="center"></el-table-column> + <el-table-column prop="alter_time" label="限改时间" :formatter="formatColumnDate" width="120" + align="center"></el-table-column> + <el-table-column prop="ht_level" label="级别" align="center"></el-table-column> </el-table-column> <el-table-column label="整改情况" align="center"> - <el-table-column prop="ACCOMPLISHTIME" label="完成时间" width="110px" align="center"> </el-table-column> - <el-table-column prop="CALLBACKRESULT" label="复查结果" align="center"> </el-table-column> - <el-table-column prop="CALLBACKPERSON" label="复查人" align="center"> </el-table-column> - <el-table-column prop="CALLBACKTIME" label="复查时间" width="120" align="center"></el-table-column> + <el-table-column prop="ACCOMPLISHTIME" label="完成时间" :formatter="formatColumnDate" width="110px" + align="center"></el-table-column> + <el-table-column prop="CALLBACKRESULT" label="复查结果" align="center"></el-table-column> + <el-table-column prop="CALLBACKPERSON" label="复查人" align="center"></el-table-column> + <el-table-column prop="CALLBACKTIME" label="复查时间" :formatter="formatColumnDate" width="120" + align="center"></el-table-column> </el-table-column> - <el-table-column label="隐患处理状态" align="center"> + <el-table-column label="隐患处理状态" align="center"> <template slot-scope="scope"> - <span v-if="scope.row.step =='1'">初始状态</span> + <span v-if="scope.row.step =='1'">未发送</span> <span v-if="scope.row.step =='2'">整改中</span> <span v-if="scope.row.step =='3'">复查中</span> <span v-if="scope.row.step =='end'">处理结束</span> @@ -185,14 +233,15 @@ </el-table-column> <el-table-column prop="DTRisk_bankId" label="是否关联" align="center"> <template slot-scope="scope"> - <span v-if="scope.row.DTRisk_bankId==0 || scope.row.DTRisk_bankId=='' || scope.row.DTRisk_bankId==null">未关联</span> + <span style="color: red" + v-if="scope.row.DTRisk_bankId==0 || scope.row.DTRisk_bankId=='' || scope.row.DTRisk_bankId==null">未关联</span> <span v-else>已关联</span> </template> </el-table-column> - <el-table-column prop="DTRisk_level" label="风险等级" align="center"> </el-table-column> - <el-table-column prop="warningLevel" label="初始警情" align="center"> </el-table-column> - <el-table-column prop="curWarningLevel" label="当前警情" align="center"> </el-table-column> - <el-table-column prop="date" label="流程操作" v-if="radio1=='待发送'" align="center" fixed="right"> + <el-table-column prop="DTRisk_level" label="风险等级" align="center"></el-table-column> + <el-table-column prop="warningLevel" label="初始警情" align="center"></el-table-column> + <el-table-column prop="curWarningLevel" label="当前警情" align="center"></el-table-column> + <el-table-column prop="date" label="流程操作" v-if="YHType==1" align="center" fixed="right"> <template slot-scope="scope"> <el-button @click="handleClick(scope.row)" type="text" size="small">点击发送</el-button> </template> @@ -220,31 +269,43 @@ </div> </template> <script> -import {getPageList,delDanger} from "@/api/sgyhpczl/hiddenDangerRegistration"; -import {initJCBM ,initYHLX, initBC ,initJCLB ,initYHBM ,initYHJB,initLlr} from "@/api/sgyhpczl/initSelect"; +import {getPageList} from "@/api/sgyhpczl/Issuedbysuperiors"; +import {danger_export_do} from "@/api/sgyhpczl/hiddenDangerRectification"; +import { + initJCBM, + initYHLX, + initBC, + initJCLB, + initYHBM, + initYHJB, + initLlr, + initReformStatus +} from "@/api/sgyhpczl/initSelect"; + export default { data() { return { - radio1:'待发送', - selectedList:[], - reList:[{label:"未关联",value:0}], - llrList:[], + YHType: '1', + selectedList: [], + reList: [{label: "未关联", value: 0}], + llrList: [], options: [], - form:{}, - - JCDWList:[{label:"众泰煤焦化",value:0},{label:"上级单位",value:1}], - JCBMList:[], - YHLXList:[], - BCList:[], - JCLBList:[], - YHBMList:[], - YHJBList:[], + form: {}, + JCDWList: [{label: "众泰煤焦化", value: 0}, {label: "上级单位", value: 1}], + JCBMList: [], + YHLXList: [], + BCList: [], + JCLBList: [], + YHBMList: [], + YHJBList: [], + YHZTList: [], + loading:false, tableData: [], - listQuery:{ - page:1, - limit:10, - form:{ - ht_community:"众泰煤焦化" + listQuery: { + page: 1, + limit: 10, + form: { + ht_community: "众泰煤焦化" }, }, currentPage: 1, @@ -252,7 +313,7 @@ recordTotal: 0, }; }, - mounted(){ + mounted() { this.getPageList() this.initYHLX() this.initYHJB() @@ -260,22 +321,28 @@ this.initJCLB() this.initLlr() this.initYHBM() + this.initYHZT() }, - methods:{ - deleteBatch(){ - if(this.selectedList==null ||this.selectedList.length==0 ){ - this.$message({type:'warning', message:'至少选中一条数据', duration:3000}) + watch: { + "YHType": function (newVal, oldVal) { + this.getPageList() + } + }, + methods: { + deleteBatch() { + if (this.selectedList == null || this.selectedList.length == 0) { + this.$message({type: 'warning', message: '至少选中一条数据', duration: 3000}) return } - var ids=this.selectedList.map((obj) => { + var ids = this.selectedList.map((obj) => { return obj.id }).join(",") - this.$confirm('确认删除吗','提示', { + this.$confirm('确认删除吗', '提示', { confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning' }) - .then(()=>{ + .then(() => { delDanger(ids).then(() => { this.getPageList() this.$notify({ @@ -286,168 +353,181 @@ }); }); }) - .catch(error =>{ + .catch(error => { }); }, - changeBox(val){ + changeBox(val) { this.selectedList = [] val.forEach((item) => { this.selectedList.push(item) }) }, - initLlr(){ - initLlr().then(res=>{ - if (res.data.ok==1){ - this.llrList=res.data.data - } else{ - this.$message({type:'error', message:res.data.msg, duration:3000}) + initLlr() { + initLlr().then(res => { + if (res.data.ok == 1) { + this.llrList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) } }) }, - initYHBM(){ - initYHBM().then(res=>{ - if (res.data.ok==1){ - this.YHBMList=res.data.data - } else{ - this.$message({type:'error', message:res.data.msg, duration:3000}) + initYHBM() { + initYHBM().then(res => { + if (res.data.ok == 1) { + this.YHBMList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) } }) }, - changeJCDW(val){ - initJCBM(val).then(res=>{ - if (res.data.ok==1){ - this.JCBMList=res.data.data - } else{ - this.$message({type:'error', message:res.data.msg, duration:3000}) + changeJCDW(val) { + initJCBM(val).then(res => { + if (res.data.ok == 1) { + this.JCBMList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) } }) }, - checkTime(){ - if(this.listQuery.form.check_dateStart!=null && this.listQuery.form.check_dateStart!=''){ - if(this.listQuery.form.check_dateEnd!=null && this.listQuery.form.check_dateEnd!=''){ - }else { - this.$message({type:'error', message:"请选择检查结束时间", duration:3000}) + checkTime() { + if (this.listQuery.form.check_dateStart != null && this.listQuery.form.check_dateStart != '') { + if (this.listQuery.form.check_dateEnd != null && this.listQuery.form.check_dateEnd != '') { + } else { + this.$message({type: 'error', message: "请选择检查结束时间", duration: 3000}) return } } - if(this.listQuery.form.check_dateEnd!=null && this.listQuery.form.check_dateEnd!=''){ - if(this.listQuery.form.check_dateStart!=null && this.listQuery.form.check_dateStart!=''){ - }else { - this.$message({type:'error', message:"请选择检查开始时间", duration:3000}) + if (this.listQuery.form.check_dateEnd != null && this.listQuery.form.check_dateEnd != '') { + if (this.listQuery.form.check_dateStart != null && this.listQuery.form.check_dateStart != '') { + } else { + this.$message({type: 'error', message: "请选择检查开始时间", duration: 3000}) return } } - if(this.listQuery.form.alter_timeStart!=null && this.listQuery.form.alter_timeStart!=''){ - if(this.listQuery.form.alter_timeEnd!=null && this.listQuery.form.alter_timeEnd!=''){ - }else { - this.$message({type:'error', message:"请选择限改结束时间", duration:3000}) + if (this.listQuery.form.alter_timeStart != null && this.listQuery.form.alter_timeStart != '') { + if (this.listQuery.form.alter_timeEnd != null && this.listQuery.form.alter_timeEnd != '') { + } else { + this.$message({type: 'error', message: "请选择限改结束时间", duration: 3000}) return } } - if(this.listQuery.form.alter_timeEnd!=null && this.listQuery.form.alter_timeEnd!=''){ - if(this.listQuery.form.alter_timeStart!=null && this.listQuery.form.alter_timeStart!=''){ - }else { - this.$message({type:'error', message:"请选择改开始时间", duration:3000}) + if (this.listQuery.form.alter_timeEnd != null && this.listQuery.form.alter_timeEnd != '') { + if (this.listQuery.form.alter_timeStart != null && this.listQuery.form.alter_timeStart != '') { + } else { + this.$message({type: 'error', message: "请选择改开始时间", duration: 3000}) return } } }, - getPageList(){ - this.listQuery.page=1 + getPageList() { + this.listQuery.page = 1 + this.listQuery.form.step = this.YHType; this.checkTime() - getPageList(this.listQuery).then(res=>{ - if (res.data.ok==1) { + this.loading =true; + getPageList(this.listQuery).then(res => { + this.loading =false; + if (res.data.ok == 1) { this.tableData = res.data.data.items - this.recordTotal=res.data.data.total - }else{ - this.$message({type:'error', message:res.data.msg, duration:3000}) + this.recordTotal = res.data.data.total + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) } }) }, - reset(){ - this.listQuery.form={ht_community:"众泰煤焦化"} + reset() { + this.listQuery.form = {ht_community: "众泰煤焦化"} this.getPageList() }, - handleSizeChange(val){ + handleSizeChange(val) { this.listQuery.limit = val this.getPageListForPagination(); }, - handleCurrentChange(val){ + handleCurrentChange(val) { this.listQuery.page = val this.getPageListForPagination(); }, - getPageListForPagination(){ + getPageListForPagination() { this.checkTime() - getPageList(this.listQuery).then(res=>{ - if (res.data.ok==1) { + getPageList(this.listQuery).then(res => { + if (res.data.ok == 1) { this.tableData = res.data.data.items - this.recordTotal=res.data.data.total - }else{ - this.$message({type:'error', message:res.data.msg, duration:3000}) + this.recordTotal = res.data.data.total + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) } }) }, - initYHLX(){ - initYHLX().then(res=>{ - if (res.data.ok==1){ - this.YHLXList=res.data.data - } else{ - this.$message({type:'error', message:res.data.msg, duration:3000}) + initYHLX() { + initYHLX().then(res => { + if (res.data.ok == 1) { + this.YHLXList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) } }) }, - initYHJB(){ - initYHJB().then(res=>{ - if (res.data.ok==1){ - this.YHJBList=res.data.data - } else{ - this.$message({type:'error', message:res.data.msg, duration:3000}) + initYHJB() { + initYHJB().then(res => { + if (res.data.ok == 1) { + this.YHJBList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) } }) }, - initBC(){ - initBC().then(res=>{ - if (res.data.ok==1){ - this.BCList=res.data.data - } else{ - this.$message({type:'error', message:res.data.msg, duration:3000}) + initYHZT() { + initReformStatus().then(res => { + if (res.data.ok == 1) { + this.YHZTList = res.data.data + console.log(this.YHZTList) + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) } }) }, - initJCLB(){ - initJCLB().then(res=>{ - if (res.data.ok==1){ - this.JCLBList=res.data.data - } else{ - this.$message({type:'error', message:res.data.msg, duration:3000}) + initBC() { + initBC().then(res => { + if (res.data.ok == 1) { + this.BCList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) } }) }, - updateClick(row){ + initJCLB() { + initJCLB().then(res => { + if (res.data.ok == 1) { + this.JCLBList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + updateClick(row) { this.$router.push({ - path:"/hiddenDangerAdd?id="+row.id + path: "/hiddenDangerAdd?id=" + row.id }) }, - jump(){ + jump() { this.$router.push({ - path:"/hiddenDangerAdd" + path: "/hiddenDangerAdd" }) }, // 发送隐患单跳转 - handleClick(row){ + handleClick(row) { this.$router.push({ - path:"/hiddenDangerList?id="+row.id, + path: "/superiorsSend?id=" + row.id, }) }, - deleteClick(row){ - this.$confirm('确认删除吗','提示', { + deleteClick(row) { + this.$confirm('确认删除吗', '提示', { confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning' }) - .then(()=>{ + .then(() => { delDanger(row.id).then(() => { this.getPageList() this.$notify({ @@ -458,29 +538,80 @@ }); }); }) - .catch(error =>{ + .catch(error => { }); }, + //方法区 + formatDate(data) { + // 获取单元格数据 + if (data == null) { + return null + } + let dt = new Date(data) + return dt.getFullYear() + '-' + (dt.getMonth() + 1) + '-' + dt.getDate() + }, + //方法区 + formatColumnDate(row, column) { + // 获取单元格数据 + let data = row[column.property] + if (data == null) { + return null + } + let dt = new Date(data) + return dt.getFullYear() + '-' + (dt.getMonth() + 1) + '-' + dt.getDate() + ' ' + }, + exportData() { + this.listLoading = true + var requestData = JSON.parse(JSON.stringify(this.listQuery)); + requestData.export_type = 5; + //删除分页参数 + this.$delete(requestData, 'page') + this.$delete(requestData, 'limit') + danger_export_do(requestData).then(res => { + this.listLoading = false + var blob = new Blob([res.data]) + var downloadElement = document.createElement('a') + var href = window.URL.createObjectURL(blob) //创建下载的链接 + downloadElement.href = href + downloadElement.download = '上级下达隐患.xlsx' //下载后文件名 + document.body.appendChild(downloadElement) + downloadElement.click() //点击下载 + document.body.removeChild(downloadElement) //下载完成移除元素 + window.URL.revokeObjectURL(href) //释放掉blob对象 + }).catch(err => { + console.log(err) + }) + }, + showDetails(row) { + this.$router.push({ + path: "/dangerDetails", + query: {"id": row.id, "route": "/Issuedbysuperiors"} + }) + } } }; </script> <style scoped> - .inquire { - display: flex; - justify-content: left; - flex-wrap: wrap; - } - .inquire .el-form-item { - padding: 0 46px; - } - .title-center { - padding: 20px 0; - } - .btns { - background-color: #034ea2; - border: 1px solid #034ea2; - } - .title-center /deep/ .el-radio-button:first-child .el-radio-button__inner { +.inquire { + display: flex; + justify-content: left; + flex-wrap: wrap; +} + +.inquire .el-form-item { + padding: 0 46px; +} + +.title-center { + padding: 20px 0; +} + +.btns { + background-color: #034ea2; + border: 1px solid #034ea2; +} + +.title-center /deep/ .el-radio-button:first-child .el-radio-button__inner { border: none; } @@ -489,6 +620,11 @@ border-radius: 0px; } +.blue-font-color:hover { + cursor: pointer; + color: blue; +} + .title-center /deep/ .el-radio-button__orig-radio:checked + .el-radio-button__inner { background-color: #034ea2; background-color: #034ea2; diff --git a/src/views/Issuedbysuperiors/superiorsSend.vue b/src/views/Issuedbysuperiors/superiorsSend.vue index 3da5aed..5688cfa 100644 --- a/src/views/Issuedbysuperiors/superiorsSend.vue +++ b/src/views/Issuedbysuperiors/superiorsSend.vue @@ -1,13 +1,576 @@ <template> + <div class="app-container"> + <div style=""> + <Titlename title="发送隐患单"></Titlename> + <div class="whole-form"> + <el-form :model="ruleForm" ref="ruleForm" label-width="150px" class="demo-ruleForm" + style="margin: 0 14% 0 16%;"> + <el-row> + <el-col :span="9"> + <el-form-item label="隐患编号" prop="name"> + <el-input v-model="ruleForm.number" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="检查单位" prop="elementAName"> + <el-select + v-model="ruleForm.check_main_branch" + :disabled="true" + style="width: 100%" + > + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="检查人" prop="region"> + <el-input v-model="ruleForm.check_man" :disabled="true"></el-input> + <!-- <el-select--> + <!-- v-model="ruleForm.elementAName"--> + <!-- :disabled="true"--> + <!-- style="width: 100%"--> + <!-- >--> + <!-- </el-select>--> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="陪检人员" prop="name"> + <el-input v-model="ruleForm.acc_man" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="检查时间" prop="name"> + <el-date-picker + v-model="ruleForm.check_date" + type="date" + :disabled="true" + placeholder="选择日期" + style="width: 100%"> + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <!-- <el-form-item label="班次" prop="name">--> + <!-- <el-input v-model="ruleForm.name"></el-input>--> + <!-- </el-form-item>--> + <el-form-item label="班次" prop="elementAName"> + <el-select + v-model="ruleForm.check_class" + :disabled="true" + style="width: 100%" + > + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="跟班、带班情况" prop="name"> + <el-input v-model="ruleForm.class_situation" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="跟班、带班人员" prop="name"> + <el-input v-model="ruleForm.class_man" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="行走路线" prop="name"> + <el-input type="textarea" v-model="ruleForm.route" class="multiline" + :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="隐患单位" prop="name"> + <!--<el-input v-model="ruleForm.name"></el-input>--> + <el-select + v-model="ruleForm.ht_community" + :disabled="true" + style="width: 100%" + > + </el-select> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="隐患部门" prop="name"> + <!-- <el-input v-model="ruleForm.name"></el-input>--> + <el-select + v-model="ruleForm.ht_branch" + :disabled="true" + style="width: 100%" + > + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="隐患地点" prop="name"> + <el-input type="textarea" v-model="ruleForm.address" class="multiline" + :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="隐患内容" prop="name"> + <el-input type="textarea" v-model="ruleForm.ht_content" class="multiline" + :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="隐患类别" prop="name"> + <!--<el-input v-model="ruleForm.name"></el-input>--> + <el-select + v-model="ruleForm.ht_typesub" + :disabled="true" + style="width: 100%" + > + </el-select> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="隐患级别" prop="name"> + <!--<el-input v-model="ruleForm.name"></el-input>--> + <el-select + v-model="ruleForm.ht_level" + :disabled="true" + style="width: 100%" + > + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="整改措施" prop="name"> + <el-input v-model="ruleForm.measure" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="所需资金" prop="name"> + <el-input v-model="ruleForm.name" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="限改时间" prop="name"> + <!--<el-input v-model="ruleForm.name"></el-input>--> + <el-date-picker + v-model="ruleForm.alter_time" + type="date" + :disabled="true" + placeholder="选择日期" + style="width: 100%"> + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="责任人" prop="name"> + <el-input v-model="ruleForm.duty_officer" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="完成时间" prop="name"> + <!--<el-input v-model="ruleForm.name"></el-input>--> + <el-date-picker + v-model="ruleForm.ACCOMPLISHTIME" + type="date" + :disabled="true" + placeholder="选择日期" + style="width: 100%"> + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="整改完成情况" prop="name"> + <el-input v-model="ruleForm.name" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="复查时间" prop="name"> + <!--<el-input v-model="ruleForm.name"></el-input>--> + <el-date-picker + v-model="ruleForm.CALLBACKTIME" + type="date" + :disabled="true" + placeholder="选择日期" + style="width: 100%"> + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="复查人" prop="name"> + <el-input v-model="ruleForm.CALLBACKPERSON" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="复查结果" prop="name"> + <el-input v-model="ruleForm.CALLBACKRESULT" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="整改次数" prop="name"> + <el-input v-model="ruleForm.amendnum" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="危险源" prop="name"> + <el-input type="textarea" v-model="ruleForm.dangerousSource" class="multiline" + :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="风险等级" prop="name"> + <!-- <el-input v-model="ruleForm.name" :disabled="true"></el-input>--> + <el-select + v-model="ruleForm.DTRisk_level" + :disabled="true" + style="width: 100%" + > + </el-select> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="业务科室" prop="name"> + <!-- <el-input v-model="ruleForm.name" :disabled="true"></el-input>--> + <el-select + v-model="ruleForm.Review" + :disabled="true" + style="width: 100%" + > + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="流程信息" prop="name"> + <!-- <el-input v-model="ruleForm.name" class="multiline" :disabled="true"></el-input>--> + <el-table + :data="tableData" + border + style="width: 100%"> + <el-table-column + type="index" + label="步骤" + align="center" + > + </el-table-column> + <el-table-column + prop="realname" + label="操作人" + align="center" + > + </el-table-column> + <el-table-column + prop="create_time" + label="处理时间" + align="center" + > + </el-table-column> + <el-table-column + prop="content" + label="审批意见" + align="center" + > + <template slot-scope="scope"> + <span size="medium">{{ scope.row.content }}</span> + <span v-for="item in scope.row.realFileName"> + <el-link type="primary" @click="downloadFile(subFile(item))"> + {{subFile(item)}} + </el-link> + </span> + </template> + </el-table-column> + <el-table-column + prop="ispass" + label="流程信息" + align="center" + width="170"> + </el-table-column> + </el-table> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="发送流程:" prop="name"> + <!-- <el-input type="textarea" v-model="ruleForm.name" class="multiline"--> + <!-- :disabled="true"></el-input>--> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="下一步:" prop="name"> + <span>隐患下达责任部门</span> + <!-- <el-input type="textarea" v-model="ruleForm.name" class="multiline"--> + <!-- :disabled="true"></el-input>--> + </el-form-item> + </el-col> + </el-row> + </el-form> + <el-form :model="sendDataForm" :rules="rules" ref="sendDataForm" label-width="150px" + class="demo-ruleForm" + style="margin: 0 14% 0 16%;"> + <div> + <el-row> + <el-col :span="9"> + <el-form-item label="隐患部门" prop="ht_branch"> + <el-input v-model="sendDataForm.ht_branch" clearable></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="责任人" prop="duty_officer"> + <el-input v-model="sendDataForm.duty_officer" clearable></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="业务科室" prop="Review"> + <el-input v-model="sendDataForm.Review" clearable></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="备注" prop="dealContent"> + <el-input class="textarea" type="textarea" + v-model="sendDataForm.dealContent"></el-input> + </el-form-item> + </el-col> + </el-row> + </div> + <el-row> + <el-col :span="22"> + <el-form-item style="text-align: center;"> + <el-button class="btn" size="small" type="primary" @click="submitForm('sendDataForm')"> + 保存 + </el-button> + <el-button size="small" @click="close()">关闭</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> + </div> + + </div> </template> <script> +import Titlename from "../../components/Titlename/index.vue"; +import {getDangerDetails, getWfRecordList} from "@/api/sgyhpczl/recheckCancellationNumber"; +import {company_next_step_do} from "@/api/sgyhpczl/Issuedbysuperiors"; +import {getUserInfo} from "@/api/sgyhpczl/hiddenDangerManagement"; +import {downloadFile} from "@/api/sgyhpczl/fileUtils"; + export default { - name: "superiorsSend" + components: {Titlename}, + name: "recheckHiddenDangerList", + data() { + return { + ruleForm: { + id: "", + step: "3", + ispass: "", + CALLBACKTIME: "", + CALLBACKPERSON: "", + CALLBACKRESULT: "", + dealContent: "", + }, + sendDataForm: { + id: "", + duty_officer: "", + ht_branch: "", + Review: "", + dealContent: "", + }, + rules: { + // duty_officer: {required: true, message: '请填写复查时间', trigger: 'blur'}, + ht_branch: {required: true, message: '隐患部门不能为空', trigger: 'blur'}, + Review: {required: true, message: '业务科室不能为空', trigger: 'blur'}, + }, + tableData: [], + fileList: [], + // safetyInspectionItemResult:'0', + }; + }, + mounted() { + this.getDangerDetails(); + this.getWfRecordList(); + }, + methods: { + getUserInfo() { + getUserInfo().then(res => { + if (res.data.code == 200) { + this.sendDataForm.Review = res.data.result.department; + } else { + this.$message({type: 'error', message: "用户信息获取失败!请重试", duration: 3000}) + } + }) + }, + getDangerDetails() { + getDangerDetails(this.$route.query.id).then(res => { + var data = res.data; + if (data.ok) { + this.ruleForm = data.data; + this.ruleForm.url = process.env.BASE_API; + this.sendDataForm.id = this.ruleForm.id + } else { + this.$message({type: 'error', message: "数据查询失败,请重试!", duration: 3000}) + } + }) + }, + getWfRecordList() { + getWfRecordList(this.$route.query.id).then(res => { + var data = res.data; + if (data.ok) { + this.tableData = data.data; + } else { + this.$message({type: 'error', message: "数据查询失败,请重试!", duration: 3000}) + } + }) + }, + submitForm(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + company_next_step_do(this.sendDataForm).then(res => { + var msg = res.data.msg; + if (res.data.ok) { + this.$router.push({ + path: "/recheckCancellationNumber", + }) + this.$message({type: 'success', message: msg, duration: 3000}) + } else { + this.$message({type: 'error', message: msg, duration: 3000}) + } + }) + // alert('submit!'); + } else { + console.log('error submit!!'); + return false; + } + }); + }, + handleRemove(file, fileList) { + console.log(file, fileList); + }, + handlePreview(file) { + console.log(file); + }, + beforeUpload(file) { + var FileExt = file.name.replace(/.+\./, ""); + if (['jpg', 'png', 'bmp', 'gif', 'jpeg'].indexOf(FileExt.toLowerCase()) === -1) { + this.$message({ + type: 'warning', + message: '请上传后缀名为jpg、png、bmp、gif、jpeg的图片!' + }); + return false; + } + }, + close() { + this.$router.push({ + path: "/recheckCancellationNumber" + }) + }, + subFile(fileName){ + return fileName.substring(fileName.indexOf("fileName=")+9) + }, + downloadFile(path){ + let params = { + type: 0, + fileName: path, + }; + downloadFile(params).then((res) => { + if(res.data.type=='text/json'){ + const reader = new FileReader(); + reader.readAsText(res.data, 'utf-8'); + reader.onload = e => { + this.$message({ + type: "error", + message: JSON.parse(reader.result).msg, + duration: 3000, + }); + } + } else { + let blob = new Blob([res.data], {type: 'application/octet-stream'}) + console.log(blob) + let blobUrl = window.URL.createObjectURL(blob) + let downloadElement = document.createElement('a') + downloadElement.href = blobUrl + downloadElement.download = path + document.body.appendChild(downloadElement) + downloadElement.click() + document.body.removeChild(downloadElement) + window.URL.revokeObjectURL(blobUrl) + } + }); + }, + } } </script> <style scoped> +.app-container { + padding: 20px; + height: 850px; + overflow-y: auto; +} +/deep/ .box { + padding-top: 0; +} + +/deep/ .multiline .el-input__inner { + height: 62px; +} + +/deep/ .textarea .el-textarea__inner { + height: 80px; + max-height: 80px; + overflow-y: auto +} + +/deep/ .textarea2 .el-textarea__inner { + height: 100px; + max-height: 100px; + overflow-y: auto +} + +.btn { + background-color: #034ea2; + border: 1px solid #034ea2; +} + +/*.el-button:hover {*/ +/* background: #66b1ff;*/ +/* border-color: #66b1ff;*/ +/* color: #FFF;*/ +/*}*/ </style> diff --git a/src/views/careabout/index.vue b/src/views/careabout/index.vue new file mode 100644 index 0000000..7658819 --- /dev/null +++ b/src/views/careabout/index.vue @@ -0,0 +1,577 @@ +<template> + <div class="app-container"> + <el-form ref="form" :inline="true" class="inquire" :model="listQuery.form" label-width="100px"> + <el-form-item label="编号"> + <el-input v-model="listQuery.form.number" style="width:202px" placeholder="请输入内容"></el-input> + </el-form-item> + <el-form-item label="检查单位"> + <el-select v-model="listQuery.form.check_main_branch" placeholder="请选择" @change="changeJCDW"> + <el-option + v-for="item in JCDWList" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="检查部门"> + <el-select v-model="listQuery.form.check_branch" placeholder="请选择"> + <el-option + v-for="item in JCBMList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="检查人"> + <el-input v-model="listQuery.form.check_man" style="width:202px" placeholder="请输入内容"></el-input> + </el-form-item> + <el-form-item label="隐患单位"> + <el-input v-model="listQuery.form.ht_community" style="width:202px" :disabled="true"></el-input> + <!--<el-select v-model="listQuery.form.ht_community" placeholder="请选择" @change="changeYHDW"> + <el-option + v-for="item in JCDWList" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select>--> + </el-form-item> + <el-form-item label="隐患部门"> + <el-select v-model="listQuery.form.ht_branch" placeholder="请选择"> + <el-option + v-for="item in YHBMList" + :key="item.branch_id" + :label="item.branch_name" + :value="item.branch_name"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="隐患类别"> + <el-select v-model="listQuery.form.ht_typesub" placeholder="请选择"> + <el-option + v-for="item in YHLXList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="隐患级别"> + <el-select v-model="listQuery.form.ht_level" placeholder="请选择"> + <el-option + v-for="item in YHJBList" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="检查类别"> + <el-select v-model="listQuery.form.checktype" placeholder="请选择"> + <el-option + v-for="item in JCLBList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="隐患地点"> + <el-input v-model="listQuery.form.address" style="width:202px" placeholder="请输入内容"></el-input> + </el-form-item> + <el-form-item label="隐患内容"> + <el-input v-model="listQuery.form.ht_content" style="width:202px" placeholder="请输入内容"></el-input> + </el-form-item> + <el-form-item label="班次"> + <el-select v-model="listQuery.form.check_class" placeholder="请选择"> + <el-option + v-for="item in BCList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="深入现场情况"> + <el-select v-model="listQuery.form.class_situation" placeholder="请选择"> + <el-option + v-for="item in reList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <!-- <el-form-item label="录入人"> + <el-select v-model="listQuery.form.createBy" placeholder="请选择"> + <el-option + v-for="item in llrList" + :key="item.id" + :label="item.realName" + :value="item.id"> + </el-option> + </el-select> + </el-form-item> --> + <el-form-item label="检查时间"> + <el-col :span="11"> + <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.check_dateStart" style="width: 100%;" value-format="yyyy-MM-dd"></el-date-picker> + </el-col> + <el-col style="text-align:center" :span="2">-</el-col> + <el-col :span="11"> + <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.check_dateEnd" style="width: 100%;" value-format="yyyy-MM-dd"></el-date-picker> + </el-col> + </el-form-item> + <el-form-item label="限改时间"> + <el-col :span="11"> + <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.alter_timeStart" value-format="yyyy-MM-dd" style="width: 100%;"></el-date-picker> + </el-col> + <el-col style="text-align:center" :span="2">-</el-col> + <el-col :span="11"> + <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.alter_timeEnd" value-format="yyyy-MM-dd" style="width: 100%;"></el-date-picker> + </el-col> + </el-form-item> + <el-form-item style="text-align:center;padding:0 50px"> + <el-button type="primary" class="btns" size="small" icon="el-icon-search" @click="getPageList()">查询</el-button> + <el-button type="primary" class="btns" size="small" icon="el-icon-refresh-right" @click="reset()">重置</el-button> + <el-button type="primary" class="btns" size="small" icon="el-icon-upload2" @click="exportData">导出excel</el-button> + </el-form-item> + </el-form> + <el-row class="title-center"> + <el-col :span="10"> + <el-radio-group v-model="listQuery.tag" @change="typeChange"> + <el-radio-button label="0" + v-for="item in tagList" + :label="item.value" + :key="item.value"> + {{item.value}} + </el-radio-button> +<!-- <el-radio-button label="1">特别关注</el-radio-button>--> +<!-- <el-radio-button label="2">全部</el-radio-button>--> + </el-radio-group> + </el-col> + <div v-if="table1"> + <el-col :span="14" style="text-align:right;"> + <el-button class="btns" type="primary" size="small" @click="specialFocus()">{{focusDesc}}</el-button> +<!-- <el-button class="btns" type="primary" size="small" @click="sendBath()">管理关注</el-button>--> + </el-col> + </div> + </el-row> + <el-table :data="tableData" style="width: 100%" @selection-change="handleSelectionChange" v-loading="listLoading"> + <el-table-column type="selection" width="55" align="center"></el-table-column> + <el-table-column prop="number" label="编号" align="center" width="120"> + <template slot-scope="scope"> + <div class="blue-font-color" @click="showDetails(scope.row)">{{ scope.row.number }}</div> + </template> + </el-table-column> + <el-table-column prop="check_branch" label="检查部门" align="center" width="120"></el-table-column> + <el-table-column prop="check_man" label="检查人" align="center" width="120"></el-table-column> + <el-table-column prop="checktype" label="检查类别" align="center"></el-table-column> + <el-table-column label="隐患项目" align="center"> + <el-table-column prop="check_date" label="检查时间" :formatter="formatColumnDate" width="120" align="center"></el-table-column> + <el-table-column prop="address" label="地点" align="center"> </el-table-column> + <el-table-column prop="ht_content" label="内容" align="center"> + <template slot-scope="scope"> + <el-popover trigger="hover" placement="top"> + <p>{{ scope.row.ht_content }}</p> + <div slot="reference" class="name-wrapper">{{ + scope.row.ht_content != null && scope.row.ht_content.length > 10 ? scope.row.ht_content.substring(0, 8) + "...." : scope.row.ht_content + }} + </div> + </el-popover> + </template> + </el-table-column> + <el-table-column prop="ht_typesub" label="类别" align="center"> </el-table-column> + <el-table-column prop="ht_level" label="级别" align="center"> </el-table-column> + </el-table-column> + <el-table-column label="整改计划" align="center"> + <el-table-column prop="measure" label="整改措施" align="center"> </el-table-column> + <el-table-column prop="ht_branch" label="隐患部门" align="center"> </el-table-column> + <el-table-column prop="duty_officer" label="责任人" align="center"> </el-table-column> + <el-table-column prop="alter_time" label="限改时间" :formatter="formatColumnDate" width="120" align="center"></el-table-column> + <el-table-column prop="ht_level" label="级别" align="center"> </el-table-column> + </el-table-column> + <el-table-column label="整改情况" align="center"> + <el-table-column prop="ACCOMPLISHTIME" label="完成时间" :formatter="formatColumnDate" width="110px" align="center"> </el-table-column> + <el-table-column prop="CALLBACKRESULT" label="复查结果" align="center"> </el-table-column> + <el-table-column prop="CALLBACKPERSON" label="复查人" align="center"> </el-table-column> + <el-table-column prop="CALLBACKTIME" label="复查时间" :formatter="formatColumnDate" width="120" align="center"></el-table-column> + </el-table-column> + <el-table-column label="隐患处理状态" align="center"> + <template slot-scope="scope"> + <span v-if="scope.row.step =='1'">初始状态</span> + <span v-if="scope.row.step =='2'">整改中</span> + <span v-if="scope.row.step =='3'">复查中</span> + <span v-if="scope.row.step =='END'">处理结束</span> + </template> + </el-table-column> + <el-table-column prop="DTRisk_bankId" label="是否关联" align="center"> + <template slot-scope="scope"> + <span v-if="scope.row.DTRisk_bankId==0 || scope.row.DTRisk_bankId=='' || scope.row.DTRisk_bankId==null">未关联</span> + <span v-else>已关联</span> + </template> + </el-table-column> + <el-table-column prop="DTRisk_level" label="风险等级" align="center"> </el-table-column> + <el-table-column prop="warningLevel" label="初始警情" align="center"> </el-table-column> + <el-table-column prop="curWarningLevel" label="当前警情" align="center"> </el-table-column> + <!-- <el-table-column prop="date" label="流程操作" align="center" fixed="right"> + <template slot-scope="scope"> + <el-button @click="handleClick(scope.row)" type="text" size="small">点击发送</el-button> + </template> + </el-table-column> + <el-table-column prop="date" label="基本操作" align="center" fixed="right"> + <template slot-scope="scope"> + <el-button @click="updateClick(scope.row)" type="text" size="small">编辑</el-button> + <el-button @click="deleteClick(scope.row)" type="text" size="small">删除</el-button> + </template> + </el-table-column> --> + </el-table> + <div style="text-align: right"> + <el-pagination + v-show="recordTotal > 0" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + :current-page="currentPage" + :page-sizes="[10, 20, 30, 50]" + :page-size="pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="recordTotal" + > + </el-pagination> + </div> + + </div> +</template> +<script> +import { getPageList, danger_focus_tag, analogy_export_do, focus_do} from "@/api/sgyhpczl/careabout" +import {initJCBM ,initYHLX, initBC ,initJCLB ,initYHBM ,initYHJB,initLlr,initSrxcqk} from "@/api/sgyhpczl/initSelect"; + + export default{ + data(){ + return{ + listQuery:{ + page:1, + limit:10, + tag: '全部', + form:{ + ht_community:'众泰煤焦化' + }, + }, + radio1:'待发送', + table1:true, + table2:false, + + focusDesc: '特别关注', + currentPage: 1, + pageSize: 10, + recordTotal: 0, + JCDWList:[{label:"众泰煤焦化",value:0},{label:"上级单位",value:1}], + JCBMList:[], + YHLXList:[], + BCList:[], + reList:[], + JCLBList:[], + YHBMList:[], + YHJBList:[], + tagList:[], + tableData:[], + selectedList:[], + listLoading: false, + selfInspectVisible: false, + selfInspectForm:{ + id: '', + markUserName:'', + markDate:'', + remark:'', + }, + selfInspectFormRules:{ + markUserName: [{ required: true, message: '自查人不能为空', trigger: 'blur' }], + markDate: [{ required: true, message: '自查时间不能为空', trigger: 'blur' }] + }, + + } + }, + mounted() { + this.initYHLX(); + this.initYHJB(); + this.initBC(); + this.initJCLB(); + this.initLlr(); + this.initYHBM(); + this.initSrxcqk(); + this.initTags(); + this.getPageList(); + }, + methods:{ + sendBath(){ + this.$router.push({ + path:'/managementConcerns' + }) + }, + handleClick(data,val){ + if(val=='存在'){ + this.$router.push({ + path:'/exist' + }) + } + }, + initYHLX(){ + initYHLX().then(res=>{ + if (res.data.ok==1){ + this.YHLXList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initYHJB(){ + initYHJB().then(res=>{ + if (res.data.ok==1){ + this.YHJBList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initBC(){ + initBC().then(res=>{ + if (res.data.ok==1){ + this.BCList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initJCLB(){ + initJCLB().then(res=>{ + if (res.data.ok==1){ + this.JCLBList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initYHBM(){ + initYHBM().then(res=>{ + if (res.data.ok==1){ + this.YHBMList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initSrxcqk(){ + initSrxcqk().then(res=>{ + if (res.data.ok==1){ + this.reList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initTags(){ + danger_focus_tag().then(res=>{ + if (res.data.ok==1){ + this.tagList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initLlr(){ + initLlr().then(res=>{ + if (res.data.ok==1){ + this.llrList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + changeJCDW(val){ + initJCBM(val).then(res=>{ + if (res.data.ok==1){ + this.JCBMList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + checkTime(){ + if(this.listQuery.form.check_dateStart!=null && this.listQuery.form.check_dateStart!=''){ + if(this.listQuery.form.check_dateEnd!=null && this.listQuery.form.check_dateEnd!=''){ + }else { + this.$message({type:'error', message:"请选择检查结束时间", duration:3000}) + return + } + + } + if(this.listQuery.form.check_dateEnd!=null && this.listQuery.form.check_dateEnd!=''){ + if(this.listQuery.form.check_dateStart!=null && this.listQuery.form.check_dateStart!=''){ + }else { + this.$message({type:'error', message:"请选择检查开始时间", duration:3000}) + return + } + } + }, + //搜索 + getPageList(){ + this.listQuery.page=1 + // this.listQuery.limit=10 + this.checkTime() + this.listLoading = true + getPageList(this.listQuery).then(res=>{ + this.listLoading = false + if (res.data.ok==1) { + this.tableData = res.data.data.items + this.recordTotal=res.data.data.total + }else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + //重置 + reset(){ + this.listQuery.form = {ht_community: "众泰煤焦化"} + this.getPageList() + }, + handleSizeChange(val){ + this.listQuery.limit = val + this.getPageListForPagination(); + }, + handleCurrentChange(val){ + this.listQuery.page = val + this.getPageListForPagination(); + }, + getPageListForPagination(){ + this.checkTime() + getPageList(this.listQuery).then(res=>{ + if (res.data.ok==1) { + this.tableData = res.data.data.items + this.recordTotal=res.data.data.total + }else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + showDetails(row){ + this.$router.push({ + path: "/dangerDetails", + query:{"id":row.id} + }) + }, + typeChange(val){ + this.listQuery.tag = val; + if (val == '特别关注'){ + this.focusDesc = '取消关注' + }else { + this.focusDesc = '特别关注' + } + this.getPageList() + }, + handleSelectionChange(val){ + this.selectedList = [] + val.forEach((item) => { + this.selectedList.push(item) + }) + }, + exportData() { + this.listLoading = true + var requestData = JSON.parse(JSON.stringify(this.listQuery)); + requestData.export_type = 7; + //删除分页参数 + this.$delete(requestData, 'page') + this.$delete(requestData, 'limit') + analogy_export_do(requestData).then(res => { + this.listLoading = false + var blob = new Blob([res.data]) + var downloadElement = document.createElement('a') + var href = window.URL.createObjectURL(blob) //创建下载的链接 + downloadElement.href = href + downloadElement.download = '隐患信息一览.xlsx' //下载后文件名 + document.body.appendChild(downloadElement) + downloadElement.click() //点击下载 + document.body.removeChild(downloadElement) //下载完成移除元素 + window.URL.revokeObjectURL(href) //释放掉blob对象 + }).catch(err => { + console.log(err) + }) + }, + //特别关注/取消关注 + specialFocus(){ + if (this.selectedList == null || this.selectedList.length == 0) { + this.$message({type: 'warning', message: '至少选中一条数据', duration: 3000}) + return + } + var type = this.listQuery.tag == '特别关注' ? 'del' : 'add' + var desc = this.listQuery.tag == '特别关注' ? '确认取消吗' : '确认关注吗' + this.$confirm(desc, '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + var ids = this.selectedList.map((obj) => { + return obj.id + }).join(",") + let data = { + type: type, + ids: ids, + } + focus_do(data).then(() => { + this.getPageList() + this.$notify({ + title: "成功", + message: "操作成功", + type: "success", + duration: 2000, + }); + }); + }).catch(error => { + }); + }, + //日期格式转换 + formatColumnDate(row, column) { + // 获取单元格数据 + let data = row[column.property] + if (data == null) { + return null + } + let dt = new Date(data) + return dt.getFullYear() + '-' + (dt.getMonth() + 1) + '-' + dt.getDate() + ' ' + }, + } + } +</script> +<style scoped> +.inquire { + display: flex; + justify-content: left; + flex-wrap: wrap; +} +.inquire .el-form-item { + padding: 0 40px; +} +.title-center { + padding: 20px 0; +} + +.btns { + background-color: #034ea2; + border: 1px solid #034ea2; +} + +.title-center /deep/ .el-radio-button:first-child .el-radio-button__inner { + border: none; +} + +.title-center /deep/ .el-radio-button__inner { + border: none; + border-radius: 0px; +} + +.title-center /deep/ .el-radio-button__orig-radio:checked + .el-radio-button__inner { + background-color: #034ea2; + background-color: #034ea2; +} +</style> diff --git a/src/views/careabout/managementConcerns.vue b/src/views/careabout/managementConcerns.vue new file mode 100644 index 0000000..98c14f3 --- /dev/null +++ b/src/views/careabout/managementConcerns.vue @@ -0,0 +1,240 @@ +<template> + <div class="app-container"> + <div> + <Titlename title="设置页面"></Titlename> + <div class="whole-form"> + <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="80px" class="demo-ruleForm" + style="margin: 0 5% 0 5%;"> + <el-row> + <el-col :span="6"> + <el-form-item label="名称" prop="number"> + <el-input v-model="ruleForm.number" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-checkbox-group v-model="checkList"> + <el-checkbox label="复选框 A"> + <el-form-item label="检查时间" prop="check_man"> + <el-radio-group v-model="ruleForm.radio"> + <el-radio :label="1">一个月</el-radio> + <el-radio :label="2">两个月</el-radio> + <el-radio :label="3">三个月</el-radio> + </el-radio-group> + </el-form-item> + </el-checkbox> + <el-checkbox> + <el-form-item class="select" label="检查单位" prop="acc_man"> + <el-select v-model="ruleForm.region" placeholder="请选择"> + <el-option label="众泰煤焦化" value="shanghai"></el-option> + <el-option label="上级单位" value="beijing"></el-option> + </el-select> + <el-select v-model="ruleForm.region" placeholder="请选择"> + <el-option label="安全环保部" value="shanghai"></el-option> + <el-option label="机电部" value="beijing"></el-option> + </el-select> + </el-form-item> + </el-checkbox> + <el-checkbox> + <el-form-item label="检查人" prop="number"> + <el-input v-model="ruleForm.number" :disabled="true"></el-input> + </el-form-item> + </el-checkbox> + <el-checkbox> + <el-form-item label="隐患类别" prop="acc_man"> + <el-select v-model="ruleForm.region" placeholder="请选择"> + <el-option label="生产" value="shanghai"></el-option> + <el-option label="设备" value="beijing"></el-option> + <el-option label="电气" value="shanghai"></el-option> + <el-option label="仪表" value="beijing"></el-option> + <el-option label="安全管理" value="shanghai"></el-option> + <el-option label="其他" value="beijing"></el-option> + </el-select> + </el-form-item> + </el-checkbox> + <el-checkbox label="复选框 A"> + <el-form-item label="隐患级别" prop="acc_man"> + <el-select v-model="ruleForm.region" placeholder="请选择"> + <el-option label="一般隐患D" value="shanghai"></el-option> + <el-option label="一般隐患C" value="beijing"></el-option> + <el-option label="重大隐患B" value="shanghai"></el-option> + <el-option label="重大隐患A" value="beijing"></el-option> + </el-select> + </el-form-item> + </el-checkbox> + <el-checkbox> + <el-form-item class="select" label="检查类别" prop="acc_man"> + <el-select v-model="ruleForm.region" placeholder="请选择"> + <el-option label="众泰煤焦化" value="shanghai"></el-option> + <el-option label="上级单位" value="beijing"></el-option> + </el-select> + </el-form-item> + </el-checkbox> + <el-checkbox label="重复隐患" class="checkbox"> + </el-checkbox> + </el-checkbox-group> + <el-checkbox-group v-model="checkList1"> + <el-checkbox> + <el-form-item label="限改时间" prop="check_man"> + <el-radio-group v-model="ruleForm.radio"> + <el-radio :label="4">即将到期</el-radio> + <el-radio :label="5">到期未整改</el-radio> + <el-radio :label="6">超期整改</el-radio> + </el-radio-group> + </el-form-item> + </el-checkbox> + </el-checkbox-group> + <el-row> + <el-col :span="22"> + <el-form-item label="备注" prop="address"> + <el-input type="textarea" v-model="ruleForm.address" class="multiline" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item style="text-align: center;"> + <el-button class="btn" size="small" type="primary" @click="close()" + >保存</el-button> + <el-button class="btn" size="small" type="primary" @click="close()" + >关闭</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> + </div> + + </div> +</template> + +<script> +import Titlename from "../../components/Titlename/index.vue"; +import {getDangerInfo,next_step_do} from '@/api/sgyhpczl/hiddenDangerRegistration' +import {deepClone} from '@/utils' + +export default { + name: "managementConcerns", + components: {Titlename}, + data() { + return { + id:'', + ruleForm: { + radio:3 + }, + rules: { + reviewTime: { required: true, message: '请填写复查时间', trigger: 'blur' }, + rechecker: { required: true, message: '请填写复查人', trigger: 'blur' }, + reviewResults: { required: true, message: '请填写复查结果', trigger: 'blur' }, + desc1: { required: true, message: '复查不通过时请在备注说明原因!', trigger: 'blur' }, + }, + fileList: [], + checkList: [], + checkList1:[] + }; + }, + mounted(){ + this.id = this.$route.query.id; + if( this.id!=null && this.id!=''){ + this.initInfo(); + } + }, + methods: { + async initInfo(){ + var res=await getDangerInfo(this.id) + if (res.data.ok==1){ + this.ruleForm=res.data.data + this.ruleForm.next='发送到'+res.data.data.ht_community+res.data.data.ht_branch + + } + }, + handleRemove(file, fileList) { + console.log(file, fileList); + }, + handlePreview(file) { + console.log(file); + }, + beforeUpload(file) { + var FileExt = file.name.replace(/.+\./, ""); + if (['jpg','png','bmp','gif','jpeg'].indexOf(FileExt.toLowerCase()) === -1){ + this.$message({ + type: 'warning', + message: '请上传后缀名为jpg、png、bmp、gif、jpeg的图片!' + }); + return false; + } + }, + close(){ + this.$router.push({ + path:"/hiddenDangerRegistration" + }) + } + } +} +</script> + +<style scoped> +.app-container { + padding: 20px; + height: 850px; + overflow-y: auto; +} + +/deep/ .box { + padding-top: 0; +} + +/deep/ .multiline .el-input__inner { + height: 62px; +} +/deep/ .textarea .el-textarea__inner{ + height: 80px; + max-height: 80px; + overflow-y: auto +} +/deep/ .textarea2 .el-textarea__inner{ + height: 100px; + max-height: 100px; + overflow-y: auto +} +/deep/ .el-checkbox-group{ + display: flex; + flex-direction: row; + flex-wrap: wrap; + align-items: center; + justify-content: flex-start; +} +/deep/ .el-checkbox{ + width: 25%; + margin-right: 0; + padding-right: 10px; +} +/deep/ .el-checkbox__label{ + padding-left: 0; +} +/deep/ .el-checkbox__input{ + top: 11px; + left: -5px; + position: absolute; +} +.checkbox{ + margin-bottom: 22px; +} +.checkbox /deep/ .el-checkbox__input{ + top: 2px; + left: -5px; + position: absolute; +} +.checkbox /deep/ .el-checkbox__label{ + padding-left: 25px; +} + /deep/ .el-input__inner{ + width: 130px; +} +/deep/.el-radio{ + margin-right: 20px; +} +.btn{ + background-color: #034ea2; + border: 1px solid #034ea2; +} +</style> diff --git a/src/views/chartAnalysis/index.vue b/src/views/chartAnalysis/index.vue new file mode 100644 index 0000000..e6bea92 --- /dev/null +++ b/src/views/chartAnalysis/index.vue @@ -0,0 +1,916 @@ +<template> + <div> + <div class="whole_top"> + <el-form ref="form" :inline="true" :model="formData"> + <div class="top"> + <el-form-item label="类别:"> + <el-checkbox-group v-model="formData.ht_typesub"> + <el-checkbox v-for="item in YHLXList" :key="item.value" :value="item.value" + :label="item.value"></el-checkbox> + </el-checkbox-group> + </el-form-item> + <el-form-item label="级别:"> + <el-checkbox-group v-model="formData.level"> + <el-checkbox v-for="item in YHJBList" :key="item.value" :value="item.value" + :label="item.value"></el-checkbox> + </el-checkbox-group> + </el-form-item> + <el-form-item label="上级单位:"> + <el-checkbox-group v-model="formData.superior"> + <!-- <el-checkbox v-for="item in JCBMList" :label="item.value"></el-checkbox>--> + <el-checkbox v-for="item in JCBMList" :key="item.value" :value="item.value" + :label="item.value"></el-checkbox> + </el-checkbox-group> + </el-form-item> + <el-form-item label="检查类别:" class="checkbox"> + <el-checkbox-group v-model="formData.checktype"> + <el-checkbox v-for="item in JCLBList" :key="item.value" :value="item.value" + :label="item.value"></el-checkbox> + </el-checkbox-group> + </el-form-item> + <el-form-item label="当前警情:"> + <el-checkbox-group v-model="formData.curWarningLevel"> + <el-checkbox label="轻警"></el-checkbox> + <el-checkbox label="低警"></el-checkbox> + <el-checkbox label="中警"></el-checkbox> + <el-checkbox label="重警"></el-checkbox> + </el-checkbox-group> + </el-form-item> + <el-form-item style="margin-left: 30px;"> + <el-radio-group v-model="formData.model"> + <el-radio label="0">按隐患单位</el-radio> + <el-radio label="1">按类别</el-radio> + <el-radio label="2">按级别</el-radio> + <el-radio label="3">按检查单位</el-radio> + <el-radio label="4">按录入单位</el-radio> + <el-radio label="5">按检查类别</el-radio> + <el-radio label="6">按当前警情</el-radio> + </el-radio-group> + <el-radio-group v-model="chartType" v-if="!THDB" style="margin-left: 50px;"> + <el-radio label="line">曲线图</el-radio> + <el-radio label="pie">饼状图</el-radio> + <el-radio label="column">柱形图</el-radio> + </el-radio-group> + + <el-radio-group v-model="timeDes" v-if="THDB" @change="initTHDBTime" style="margin-left: 50px;"> + <el-radio label="month">月度</el-radio> + <el-radio label="quarter">季度</el-radio> + <el-radio label="year">年度</el-radio> + </el-radio-group> + </el-form-item> + </div> + <div class="center"> + <el-form-item label="已选单位:"> + <el-input autosize v-model="form.name"></el-input> + </el-form-item> + <el-form-item autosize label="已选类别:"> + <el-input v-model="formData.ht_typesub.join(',')"></el-input> + </el-form-item> + <el-form-item label="已选级别:"> + <el-input v-model="formData.level.join(',')"></el-input> + </el-form-item> + <el-form-item label="已选上级单位:"> + <el-input v-model="formData.superior.join(',')"></el-input> + </el-form-item> + <el-form-item label="已选检查类别:"> + <el-input v-model="formData.checktype.join(',')"></el-input> + </el-form-item> + <el-form-item label="已选当前警情:"> + <el-input v-model="formData.curWarningLevel.join(',')"></el-input> + </el-form-item> + <el-form-item label="检查时间:" v-if="!THDB" class="time" style="width: 300px"> + <el-date-picker + style="width: 218px" + v-model="time" + type="daterange" + range-separator="至" + start-placeholder="开始日期" + end-placeholder="结束日期"> + </el-date-picker> + </el-form-item> + + <el-form-item label="对比时间:" v-if="THDB" class="time" style="width: 340px"> + <div v-if="timeDes!='quarter'"> + <el-date-picker + v-model="THDBBegin" + :type="timeDes" + style="width: 40%;float: left" + :value-format="timeDes=='month'?'yyyy年MM月':'yyyy年'" + :placeholder="timeDes=='month'?'请选择月':'请选择年'"> + </el-date-picker> + <span style="width: 20px">-</span> + <el-date-picker + v-model="THDBEnd" + :type="timeDes" + :value-format="timeDes=='month'?'yyyy年MM月':'yyyy年'" + style="width: 40%" + :placeholder="timeDes=='month'?'请选择月':'请选择年'"> + </el-date-picker> + </div> + <div v-if="timeDes=='quarter'"> + + <el-quarter-picker v-model="THDBBegin" style="width: 45%" placeholder="选择季度"/> + <span style="width: 20px">-</span> + <el-quarter-picker v-model="THDBEnd" style="width: 45%" placeholder="选择季度"/> + </div> + + </el-form-item> + + <el-form-item> + <el-button class="btn" size="small" type="primary" @click="getData()" + >汇总 + </el-button> + <el-button v-if="!THDB" class="btn" size="small" type="primary" @click="THDB=true" + >同比环比 + </el-button> + </el-form-item> + </div> + </el-form> + </div> + <div class="whole_bottom" style="position: relative;z-index: 1"> + <div id="heigcharts" style="width: 100%;height: 550px;"></div> + <!--<div v-if="chartType == 'line'" id="line" style="width: 100%;height: 550px;"></div>--> + <!--<div v-if="chartType == 'column'" id="column" style="width: 100%;height: 550px;"></div>--> + <div v-if="chartType == 'column'" class="legend"> + <div class="legend-body"> + + <div v-for="(item,index) in this.columnChartData.xList" class="legend-item"> + <div :class="'legendItemBack'+index"></div> + {{ item }} + </div> + </div> + </div> + </div> + </div> +</template> +<script> +import {echarts} from "../../global"; +import {chart_analysis,chart_compare} from "@/api/sgyhpczl/chartAnalysis"; +import { + initJCBM, + initYHLX, + initBC, + initJCLB, + initYHBM, + initYHJB, + initLlr, + initReformStatus +} from "@/api/sgyhpczl/initSelect"; + +// 导入chart组件 +import Highcharts from "highcharts/highstock"; +import loadExporting from "highcharts/modules/exporting"; +import exportExcel from "highcharts/modules/export-data.src"; +import highcharts3d from 'highcharts/highcharts-3d' +import ElQuarterPicker from "../common/jdSelect"; + +loadExporting(Highcharts); +exportExcel(Highcharts); +highcharts3d(Highcharts) + + +export default { + name: "index", + components: {ElQuarterPicker}, + + data() { + return { + value: '', + form: { + name: '众泰煤焦化', + time: '', + category: '生产', + level: '一般隐患D', + superiorUnit: '新疆能源', + inspectionCategory: '日常检查', + policeSituation: '轻警', + chart: null, + }, + formData: { + "echart_type": "line", //line:折线图;column:柱状图;pie :饼状图 + "model": "0", //0: + "beginTime": "", //开始时间 + "endTime": "", //结束时间 + "ht_typesub": [], //隐患类别 + "level": [], //隐患级别 + "superior": [], //上级单位 + "checktype": [], //检查类别 + "curWarningLevel": [] //警情 + }, + categoryList: ['生产'], + levelList: ['一般隐患D'], + superiorUnitList: ['新疆能源'], + inspectionCategoryList: ['日常检查'], + policeSituationList: ['轻警'], + radio: 1, + chartType: "line", + columnChartData: {}, + lineChartData: {}, + time: [], + pieChartData: [], + JCBMList: [], + YHLXList: [], + BCList: [], + JCLBList: [], + YHBMList: [], + YHJBList: [], + THDB: false, + THDBBegin: "", + THDBEnd: "", + timeDes: "month", + YHZTList: [], + columnXData: [] + } + }, + mounted() { + this.time.push(this.getCurrentMonthFirst(), this.getCurrentMonthLast()); + this.initYHLX() + this.initYHJB() + this.initBC() + this.initJCLB() + this.initLlr() + this.initYHBM() + this.initYHZT() + this.changeJCDW(1) + this.getData() + this.initTHDBTime() + }, + watch: { + "chartType": function (newVal, oldVal) { + this.formData.echart_type = newVal; + this.getData(); + }, + "formData.model": function (newVal, oldVal) { + this.formData.model = newVal; + this.getData(); + + }, + // "timeDes": function (newVal, oldVal) { + // this.initTHDBTime(); + // } + }, + methods: { + initTHDBTime() { + var dayStr = this.getCurrentMonthFirst(); + if (this.timeDes == "month") { + this.THDBBegin = dayStr.split("-")[0] + "年" + (parseInt(dayStr.split("-")[1]) - 1) + "月"; + this.THDBEnd = dayStr.split("-")[0] + "年" + (dayStr.split("-")[1]) + "月"; + } else if (this.timeDes == "year") { + this.THDBBegin = (parseInt(dayStr.split("-")[0]) - 1) + "年"; + this.THDBEnd = dayStr.split("-")[0] + "年"; + } else { + this.THDBBegin = dayStr.split("-")[0] + "年第1季度"; + this.THDBEnd = dayStr.split("-")[0] + "年第2季度"; + } + }, + initYHLX() { + initYHLX().then(res => { + if (res.data.ok == 1) { + this.YHLXList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initYHJB() { + initYHJB().then(res => { + if (res.data.ok == 1) { + this.YHJBList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initYHZT() { + initReformStatus().then(res => { + if (res.data.ok == 1) { + this.YHZTList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initBC() { + initBC().then(res => { + if (res.data.ok == 1) { + this.BCList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initJCLB() { + initJCLB().then(res => { + if (res.data.ok == 1) { + this.JCLBList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initLlr() { + initLlr().then(res => { + if (res.data.ok == 1) { + this.llrList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initYHBM() { + initYHBM().then(res => { + if (res.data.ok == 1) { + this.YHBMList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + changeJCDW(val) { + initJCBM(val).then(res => { + if (res.data.ok == 1) { + this.JCBMList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + // 饼图 + initEacharts3() { + var option = { + chart: { + type: 'pie', + options3d: { + enabled: true, + alpha: 45, + beta: 0 + } + }, + tooltip: { + pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>' + }, + plotOptions: { + pie: { + allowPointSelect: true, + cursor: 'pointer', + depth: 35, + dataLabels: { + enabled: true, + format: '{point.name}:' + ' {point.y}%' + } + } + }, + exporting: { + enabled: false //去掉右上角 + }, + credits: { + enabled: false //不显示LOGO + }, + series: [{ + type: 'pie', + name: '浏览器占比', + data: this.pieChartData + }] + } + Highcharts.chart("heigcharts", option); + }, + getData() { + this.formData.beginTime = this.time[0] + this.formData.endTime = this.time[1] + if(this.THDB) { + this.formData.beginTime = this.THDBBegin + this.formData.endTime = this.THDBEnd + this.formData.compare_type = this.timeDes; + } + let requestData = JSON.parse(JSON.stringify(this.formData)); + requestData.ht_typesub = requestData.ht_typesub.join(",") + requestData.level = requestData.level.join(",") + requestData.superior = requestData.superior.join(",") + requestData.checktype = requestData.checktype.join(",") + requestData.curWarningLevel = requestData.curWarningLevel.join(",") + if(this.THDB){ + chart_compare(requestData).then(res=>{ + let data = res.data; + if (data.ok) { + this.lineChartData = {} + let dataList = []; + let timeList = []; + if (data.data != null && data.data.length > 0) { + data.data[0].forEach(n => { + if (timeList.indexOf(n.graph) == -1) { + timeList.push(n.graph) + } + let obj = dataList.find(v => v.name == n.xAxes); + if (obj == null) { + // obj.data.push(n.counts); + obj = { + name: n.xAxes, + data: [], + // type: 'line', + // areaStyle: {} + } + dataList.push(obj) + } + }) + timeList.forEach(time => { + let singileData = data.data[0].filter(n => n.graph == time) + dataList.forEach(n => { + let searchData = singileData.find(v => v.xAxes == n.name); + if (searchData != null) { + n.data.push(parseInt(searchData.yAxes)) + } else { + n.data.push(0) + } + }) + }) + } + this.lineChartData.timeList = timeList; + this.lineChartData.dataList = dataList; + this.initLineChart() + } + }) + return; + } + + + + + chart_analysis(requestData).then(res => { + let data = res.data; + if (data.ok) { + if (this.formData.echart_type == "column") { + this.columnChartData = {}; + let xList = []; + let dataList = []; + if (data.data != null && data.data.length > 0) { + data.data[0].forEach(n => { + xList.push(n.graph); + let singleData = { + "name": n.graph, + // "type": 'bar', + // "label": "labelOption", + // "emphasis": { + // focus: 'series' + // }, + "data": [parseInt(n.yAxes)] + } + dataList.push(parseInt(n.yAxes)); + }) + } + this.columnChartData.xList = xList; + this.columnChartData.dataList = [] + this.columnChartData.dataList.push( + { + data: dataList, + colorByPoint: true + } + ); + this.initCloumnChart() + } else if (this.formData.echart_type == "line") { + this.lineChartData = {} + let dataList = []; + let timeList = []; + if (data.data != null && data.data.length > 0) { + data.data[0].forEach(n => { + if (timeList.indexOf(n.days) == -1) { + timeList.push(n.days) + } + let obj = dataList.find(v => v.name == n.catalogy); + if (obj == null) { + // obj.data.push(n.counts); + obj = { + name: n.catalogy, + data: [], + // type: 'line', + // areaStyle: {} + } + dataList.push(obj) + } + }) + timeList.forEach(time => { + let singileData = data.data[0].filter(n => n.days == time) + dataList.forEach(n => { + let searchData = singileData.find(v => v.catalogy == n.name); + if (searchData != null) { + n.data.push(parseInt(searchData.counts)) + } else { + n.data.push(0) + } + }) + }) + } + this.lineChartData.timeList = timeList; + this.lineChartData.dataList = dataList; + this.initLineChart() + } else { + this.pieChartData = [] + data.data[0].forEach(n => { + var datas = { + name: n.chartName, + y: parseInt(n.chartValue), + sliced: true, + selected: false + }; + this.pieChartData.push(datas); + }) + this.initEacharts3(); + } + } + + }) + }, + initChart() { + // 柱形图 + var chartDom = document.getElementById('column'); + // var chartDom = document.getElementById('myChart'); + var myChart = echarts.init(chartDom); + var option = { + title: { + text: '众泰煤焦化各隐患单位隐患走势分析', + left: 'center' + }, + legend: { + bottom: 0, + // textStyle: { + // color: '#ffffff' + // }, + }, + grid: { + left: '3%', + right: '4%', + bottom: '5%', + containLabel: true + }, + xAxis: { + type: 'category', + boundaryGap: false, + data: this.lineChartData.timeList + }, + yAxis: { + type: 'value' + }, + color: ['#9a0202', '#02cccc', '#0202ff', '#ff9a02', '#02ff02', '#CC02CCFF', '#35FF02FF', '#CCFF67FF', '#35CC67FF', '#9A0202FF'], + series: this.lineChartData.dataList + } + // 使用刚指定的配置项和数据显示图表。 + myChart.setOption(option) + }, + initLineChart() { + // 折线图 + var chartDom = document.getElementById('line'); + // var chartDom = document.getElementById('myChart'); + // var myChart = echarts.init(chartDom); + // var option = { + // title: { + // text: '众泰煤焦化各隐患单位隐患走势分析', + // left: 'center' + // }, + // legend: { + // bottom: 0, + // // textStyle: { + // // color: '#ffffff' + // // }, + // }, + // grid: { + // left: '3%', + // right: '4%', + // bottom: '5%', + // containLabel: true + // }, + // xAxis: { + // type: 'category', + // boundaryGap: false, + // data: this.lineChartData.timeList + // // data: ['2022-05-01', '', '2022-05-03', '', '2022-05-05', '', '2022-05-07', '', '2022-05-09', '', '2022-05-11'] + // }, + // yAxis: { + // type: 'value' + // }, + // color: ['#9a0202', '#02cccc', '#0202ff', '#ff9a02', '#02ff02', '#CC02CCFF', '#35FF02FF', '#CCFF67FF', '#35CC67FF', '#9A0202FF'], + // series: this.lineChartData.dataList + // // series: [ + // // { + // // name: '电仪车间', + // // data: [50, 35, 63, 64, 79, 95, 104, 50, 35, 63, 64], + // // type: 'line', + // // areaStyle: {} + // // } + // // ] + // } + // // 使用刚指定的配置项和数据显示图表。 + // myChart.setOption(option) + + var option = { + chart: { + type: 'area' + }, + title: { + text: '众泰煤焦化各隐患单位隐患走势分析' + }, + yAxis: { + title: { + enabled: false + } + }, + colors: ['#9a0202', '#02cccc', '#0202ff', '#ff9a02', '#02ff02', '#CC02CCFF', '#35FF02FF', '#CCFF67FF', '#35CC67FF', '#9A0202FF'], + legend: { + align: "center", //程度标的目标地位 + verticalAlign: "bottom",//垂直标的目标地位 + x: 0, //间隔x轴的间隔 + y: 0 //间隔Y轴的间隔 + }, + xAxis: { + // type: 'category', + // boundaryGap: false, + categories: this.lineChartData.timeList, + // data: ['2022-05-01', '', '2022-05-03', '', '2022-05-05', '', '2022-05-07', '', '2022-05-09', '', '2022-05-11'] + }, + series: this.lineChartData.dataList, + exporting: { + enabled: false //去掉右上角 + }, + credits: { + enabled: false //不显示LOGO + }, + } + Highcharts.chart("heigcharts", option); + }, + initCloumnChart() { + + var option = { + chart: { + type: 'column', + marginBottom: 70 + }, + title: { + text: null + }, + yAxis: { + title: { + enabled: false + } + }, + tooltip: { + formatter: function () { + return this.x + " : " + this.y + } + }, + colors: ['#ff6600', '#fcd202', '#b0de09', '#0289cc', '#2001cd', '#cd0d74', '#cc0000', '#00cc00', '#0000cc', '#dddddd', '#999999', '#333333', '#990000', '#92e3d4', '#f09aea'], + legend: { + enabled: false, + }, + xAxis: { + // type: 'category', + // boundaryGap: false, + categories: this.columnChartData.xList, + max: this.columnChartData.xList.length - 1 + // data: ['2022-05-01', '', '2022-05-03', '', '2022-05-05', '', '2022-05-07', '', '2022-05-09', '', '2022-05-11'] + }, + series: this.columnChartData.dataList, + exporting: { + enabled: false //去掉右上角 + }, + credits: { + enabled: false //不显示LOGO + }, + } + Highcharts.chart("heigcharts", option); + }, + getCurrentMonthFirst() { + var date = new Date(); + date.setDate(1); + var month = parseInt(date.getMonth() + 1); + var day = date.getDate(); + if (month < 10) { + month = '0' + month + } + if (day < 10) { + day = '0' + day + } + + return date.getFullYear() + '-' + month + '-' + day; + }, + getCurrentMonthLast() { + var date = new Date(); + var currentMonth = date.getMonth(); + var nextMonth = ++currentMonth; + var nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1); + var oneDay = 1000 * 60 * 60 * 24; + var lastTime = new Date(nextMonthFirstDay - oneDay); + var month = parseInt(lastTime.getMonth() + 1); + var day = lastTime.getDate(); + if (month < 10) { + month = '0' + month + } + if (day < 10) { + day = '0' + day + } + return date.getFullYear() + '-' + month + '-' + day; + }, + }, + + +} +</script> + +<style scoped> +.legend { + position: absolute; + bottom: 10px; + z-index: 2; + width: 100%; +} + +.legend-body { + width: 100%; + display: flex; + justify-content: center; + flex-wrap: wrap; + font-size: 12px; + height: 100%; +} + +.legend-item { + display: flex; + justify-content: flex-start; + align-items: center; + margin-left: 20px; + line-height: 1.5; +} + +.legend-item div { + width: 20px; + height: 15px; + margin-right: 10px; +} + +.legendItemBack0 { + background-color: #ff6600; +} + +.legendItemBack1 { + background-color: #fcd202; +} + +.legendItemBack2 { + background-color: #b0de09; +} + +.legendItemBack3 { + background-color: #0289cc; +} + +.legendItemBack4 { + background-color: #2001cd; +} + +.legendItemBack5 { + background-color: #cd0d74; +} + +.legendItemBack6 { + background-color: #cc0000; +} + +.legendItemBack7 { + background-color: #00cc00; +} + +.legendItemBack8 { + background-color: #0000cc; +} + +.legendItemBack9 { + background-color: #dddddd; +} + +.legendItemBack10 { + background-color: #999999; +} + +.legendItemBack11 { + background-color: #333333; +} + +.legendItemBack12 { + background-color: #990000; +} + +.legendItemBack13 { + background-color: #92e3d4; +} + +.legendItemBack14 { + background-color: #f09aea; +} + +.top { + padding: 10px 5px; + background: #e4edf4; + display: flex; + flex-direction: column; +} + +.top /deep/ .el-form-item__label { + width: 110px; +} + +.top /deep/ .el-form-item { + margin-bottom: 5px; +} + +/*多选框间距*/ +.checkbox /deep/ .el-checkbox-group { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; +} + +.center { + text-align: center; + padding: 10px; + background: #ffffff; + margin: 10px 0; +} + +.center /deep/ .el-form-item__label { + width: auto; + padding-right: 0; +} + +.checkbox { + display: flex; +} + +/deep/ .el-checkbox { + margin-right: 7px; +} + +.checkbox /deep/ .el-checkbox { + margin-right: 0px; +} + +/deep/ .el-checkbox__label { + padding-left: 3px; +} + +.checkbox /deep/ .el-checkbox__label { + padding-left: 3px; +} + +/deep/ .el-radio { + margin-right: 7px; +} + +.center { + display: flex; + align-items: center; + justify-content: start; +} + +.center /deep/ .el-form-item--medium { + margin-bottom: 0px; + display: flex; +} + +.center /deep/ .el-input__inner { + border: transparent; + width: 85px; + padding: 0 5px; +} + +.center .time /deep/ .el-form-item__content { + width: 70%; +} + +.center .time /deep/ .el-input__inner { + width: 218px; +} + +.center .time /deep/ .el-range-input { + width: 90px; + border: 1px solid #DCDFE6; + border-radius: 4px; + padding: 0 5px; +} + +/deep/ .el-icon-date { + display: none; +} + +/*日期*/ +/deep/ .el-date-editor .el-range-separator { + width: auto; + line-height: 36px; +} + +.btn { + background-color: #034ea2; + border: 1px solid #034ea2; +} + +>>> .center .time[data-v-21f55eb3] .el-input__inner { + width: 100px; +} +</style> diff --git a/src/views/common/jdSelect.vue b/src/views/common/jdSelect.vue new file mode 100644 index 0000000..5bf91f1 --- /dev/null +++ b/src/views/common/jdSelect.vue @@ -0,0 +1,394 @@ + +<template> + <div class="el-quarter-picker"> + <el-popover + v-model="visible" + :disabled="!canPopover" + :tabindex="null" + placement="bottom-start" + transition="el-zoom-in-top" + trigger="click"> + + <div class="el-date-picker"> + <div class="el-picker-panel__body"> + <div class="el-date-picker__header el-date-picker__header--bordered" style="margin:0px; line-height:30px"> + <button + type="button" + @click="clickLast" + aria-label="前一年" + class="el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-d-arrow-left"></button> + <span role="button" class="el-date-picker__header-label" @click="clickYear">{{ title }}</span> + <button + type="button" + @click="clickNext" + aria-label="后一年" + class="el-picker-panel__icon-btn el-date-picker__next-btn el-icon-d-arrow-right"></button> + </div> + <div class="el-picker-panel__content" style="margin:0px; width:100%"> + <table class="el-month-table" style=""> + <tbody> + <tr v-for="line in lineCount" :key="line"> + <td v-for="index in (line * 4 <= viewList.length ? 4 : viewList.length - (line - 1) * 4)" :key="index" :class="{ today: viewList[(line - 1) * 4 + index - 1].current, current: viewList[(line - 1) * 4 + index - 1].active }"> + <div><a class="cell" @click="clickItem(viewList[(line - 1) * 4 + index - 1])">{{ viewList[(line - 1) * 4 + index - 1].label }}</a></div> + </td> + </tr> + </tbody> + </table> + </div> + </div> + </div> + + <el-input + slot="reference" + @change="changeText" + @mouseenter.native="mouseEnter" + @mouseleave.native="mouseLeave" + :placeholder="placeholder" + v-model="text" + :size="size" + :readonly="!canEdit" + :disabled="disabled"> + <i slot="prefix" class="el-input__icon el-icon-date"></i> + <i slot="suffix" class="el-input__icon el-icon-circle-close" v-show="showClear" style="cursor:pointer" @click.stop="clear"></i> + </el-input> + </el-popover> + </div> +</template> + +<script> +export default { + name: 'ElQuarterPicker', + props: { + placeholder: { + type: String, + default: '' + }, + size: { + type: String, + default: '' + }, + readonly: { + type: Boolean, + default: false + }, + clearable: { + type: Boolean, + default: true + }, + editable: { + type: Boolean, + default: true + }, + disabled: { + type: Boolean, + default: false + }, + format: { + type: String, + default: 'yyyy年第Q季度' + }, + valueFormat: { + type: String, + default: 'yyyy年第q季度' + }, + value: { + type: String, + default: '' + } + }, + model: { + prop: 'value', + event: 'change' + }, + watch: { + value(val) { + // console.log('change-------', val) + this.changeValue(val) + }, + readonly(val) { + this.canEdit = !val && this.editable + this.canPopover = !this.disabled && !val + }, + editable(val) { + this.canEdit = !this.readonly && val + }, + disabled(val) { + this.canPopover = !val && !this.readonly + } + }, + data() { + return { + visible: false, + showClear: false, // 控制清空按钮展示 + canEdit: true, // 是否可编辑 + canPopover: true, // 选择器弹出是否可用 + text: '', // 文本框值 + viewType: 1, // 视图类型,1季度,2年度 + viewYear: 0, // 当前年份 + viewList: [], // 数据列表 + lineCount: 0, // 数据行数 + title: '', // 选择器标题 + data: [0, 0] // 当前选择年度-季度 + } + }, + mounted() { + // console.log('mounted--------', this.value) + this.changeValue(this.value) + + // 设置文本框是否可编辑 + this.canEdit = !this.readonly && this.editable + this.canPopover = !this.disabled && !this.readonly + + // 监听按键(上下左右键可以切换季度) + document.onkeydown = (event) => { + if (this.visible) { + const data = [this.data[0], this.data[1]] + if (data[0] < 1 || data[1] < 1) { + // 以当前季度为标准 + const curDate = new Date() + data[0] = curDate.getFullYear() + data[1] = parseInt(curDate.getMonth() / 3) + 1 + } + if (event.code === 'ArrowLeft') { + // 上一个季度 + if (data[1] === 1) { + data[0] = data[0] - 1 + data[1] = 4 + } else { + data[1] = data[1] - 1 + } + } else if (event.code === 'ArrowRight') { + // 下一个季度 + if (data[1] === 4) { + data[0] = data[0] + 1 + data[1] = 1 + } else { + data[1] = data[1] + 1 + } + } else if (event.code === 'ArrowUp') { + // 上一年季度 + data[0] = data[0] - 1 + } else if (event.code === 'ArrowDown') { + // 下一年季度 + data[0] = data[0] + 1 + } else { + return + } + + // 超过年限的不处理 + if (data[0] < 1000 || data[0] > 9999) { + return + } + this.data = data + this.viewType = 1 + this.viewYear = data[0] + this.$emit('change', this.formatTo(data, this.valueFormat)) + } + } + }, + destroyed() { + document.onkeydown = null + }, + methods: { + // 季度文本变更 + changeText() { + if (this.checkFormat(this.format, this.text)) { + // 设置值 + this.formatFrom(this.text, this.format) + this.$emit('change', this.formatTo(this.data, this.valueFormat)) + } else { + // 输入了无效的格式,还原回原来的值 + if (this.data[0] < 1 || this.data[1] < 1) { + this.text = '' + } else { + this.text = this.formatTo(this.data, this.format) + } + } + this.visible = false + }, + // 鼠标进入 + mouseEnter() { + if (!this.disabled && !this.readonly && this.clearable && this.text !== '') { + this.showClear = true + } + }, + // 鼠标离开 + mouseLeave() { + if (!this.disabled && this.clearable) { + this.showClear = false + } + }, + // 清除季度 + clear() { + this.showClear = false + this.visible = false + this.$emit('change', '') + }, + // 季度值变更 + changeValue(val) { + this.viewType = 1 + if (val) { + // 反向格式化 + this.formatFrom(val, this.valueFormat) + this.text = this.formatTo(this.data, this.format) + this.viewYear = this.data[0] + } else { + this.text = '' + this.data = [0, 0] + this.viewYear = new Date().getFullYear() + } + this.initView() + }, + // 初始化视图数据 + initView() { + const list = [] + const curDate = new Date() + const curYear = curDate.getFullYear() + const curQuarter = parseInt(curDate.getMonth() / 3) + 1 + if (this.viewType === 1) { + let index = 0 + for (const i of '一二三四') { + index++ + const item = { label: '第' + i + '季度', year: this.viewYear, quarter: index, current: false, active: false } + if (this.viewYear === curYear && index === curQuarter) { + item.current = true + } else if (this.viewYear === this.data[0] && index === this.data[1]) { + item.active = true + } + list.push(item) + } + this.title = this.viewYear + ' 年' + } else { + const start = parseInt(this.viewYear / 10) * 10 + this.viewYear = start + for (let i = 0; i < 10; i++) { + const year = start + i + const item = { label: year + '', year: year, current: false, active: false } + if (year === curYear) { + item.current = true + } else if (year === this.data[0]) { + item.active = true + } + list.push(item) + } + this.title = start + ' 年 - ' + (start + 9) + ' 年' + } + this.viewList = list + this.lineCount = parseInt(list.length / 4) + if (list.length % 4 > 0) { + this.lineCount++ + } + }, + // 校验季度格式是否正确 + checkFormat(pattern, val) { + // 格式转成正则表达式 + let text = '' + for (const char of pattern) { + const dict = '\\^$.+?*[]{}!' + if (dict.indexOf(char) === -1) { + text += char + } else { + text += '\\' + char + } + } + text = text.replace('yyyy', '[1-9]\\d{3}') + text = text.replace('qq', '0[1-4]') + text = text.replace('q', '[1-4]') + text = text.replace('Q', '[一二三四]') + text = '^' + text + '$' + const patt = new RegExp(text) + return patt.test(val) + }, + // 格式化季度到指定格式 + formatTo(data, pattern) { + let text = pattern.replace('yyyy', '' + data[0]) + text = text.replace('qq', '0' + data[1]) + text = text.replace('q', '' + data[1]) + text = text.replace('Q', '一二三四'.substr(data[1] - 1, 1)) + return text + }, + // 以指定格式解析季度 + formatFrom(str, pattern) { + const year = this.findText(str, pattern, 'yyyy') + const quarter = this.findText(str, pattern, ['qq', 'q', 'Q']) + this.data = [year, quarter] + }, + // 查找文本数值 + findText(str, pattern, find) { + if (find instanceof Array) { + for (const f of find) { + const val = this.findText(str, pattern, f) + if (val !== -1) { + return val + } + } + return -1 + } + const index = pattern.indexOf(find) + if (index === -1) { + return index + } + const val = str.substr(index, find.length) + if (find === 'Q') { + return '一二三四'.indexOf(val) + 1 + } else { + return parseInt(val) + } + }, + // 年份点击 + clickYear() { + if (this.viewType !== 1) { + return + } + // 切换年度选择器 + this.viewType = 2 + this.initView() + }, + // 季度选择 + clickItem(item) { + // console.log('select--------', item) + if (this.viewType === 1) { + // 选择季度 + this.$emit('change', this.formatTo([item.year, item.quarter], this.valueFormat)) + this.visible = false + } else { + // 选择年度 + this.viewType = 1 + this.viewYear = item.year + this.initView() + } + }, + // 上一年 + clickLast() { + if (this.viewYear > 1000) { + if (this.viewType === 1) { + this.viewYear-- + this.initView() + } else { + this.viewYear = this.viewYear - 10 + this.initView() + } + } + }, + // 下一年 + clickNext() { + if (this.viewYear < 9999) { + if (this.viewType === 1) { + this.viewYear++ + this.initView() + } else { + this.viewYear = this.viewYear + 10 + this.initView() + } + } + } + } +} +</script> + +<style> +.el-quarter-picker { + width: 220px; + display: inline-block; +} +</style> diff --git a/src/views/dangerDetails/dnagerDetails.vue b/src/views/dangerDetails/dnagerDetails.vue index d645908..0d8d558 100644 --- a/src/views/dangerDetails/dnagerDetails.vue +++ b/src/views/dangerDetails/dnagerDetails.vue @@ -260,6 +260,59 @@ </el-col> </el-row> + <el-row> + + <el-col :span="22"> + <el-form-item label="流程信息" prop="name"> + <!-- <el-input v-model="ruleForm.name" class="multiline" :disabled="true"></el-input>--> + <el-table + :data="tableData" + border + style="width: 100%"> + <el-table-column + prop="date" + label="步骤" + type="index" + align="center" + > + </el-table-column> + <el-table-column + prop="realname" + label="操作人" + align="center" + > + </el-table-column> + <el-table-column + prop="create_time" + label="处理时间" + align="center" + > + </el-table-column> + <el-table-column + prop="city" + label="审批意见" + align="center" + > + <template slot-scope="scope"> + <span size="medium">{{ scope.row.content }}</span> + <span v-for="item in scope.row.realFileName"> + <el-link type="primary" @click="downloadFile(subFile(item))"> + {{subFile(item)}} + </el-link> + </span> + </template> + </el-table-column> + <el-table-column + prop="ispass" + label="流程信息" + align="center" + width="170"> + </el-table-column> + </el-table> + </el-form-item> + </el-col> + + </el-row> <el-row> <el-col :span="22"> @@ -279,6 +332,8 @@ <script> import Titlename from "../../components/Titlename/index.vue"; import {sendDangerNext, getDangerDetails, getWfRecordList} from "@/api/sgyhpczl/recheckCancellationNumber"; + import {downloadFile} from "@/api/sgyhpczl/fileUtils"; + import {self_info} from "../../api/sgyhpczl/hiddenDangerManagement"; export default { components: {Titlename}, @@ -328,18 +383,34 @@ }, methods: { getDangerDetails() { - getDangerDetails(this.$route.query.id).then(res => { - var data = res.data; - if (data.ok) { - this.ruleForm = data.data; - this.ruleForm.url = process.env.BASE_API; - this.ruleForm.callback_branch= data.data.check_main_branch - //this.ruleForm.ispass=0 - this.sendDataForm.id = this.ruleForm.id - } else { - this.$message({type: 'error', message: "数据查询失败,请重试!", duration: 3000}) - } - }) + if(this.$route.query.route!=null && this.$route.query.route == '/hiddenDangerManagement'){ + self_info(this.$route.query.id).then(res => { + var data = res.data; + if (data.ok) { + this.ruleForm = data.data; + this.ruleForm.url = process.env.BASE_API; + this.ruleForm.callback_branch= data.data.check_main_branch + //this.ruleForm.ispass=0 + this.sendDataForm.id = this.ruleForm.id + } else { + this.$message({type: 'error', message: "数据查询失败,请重试!", duration: 3000}) + } + }) + }else{ + getDangerDetails(this.$route.query.id).then(res => { + var data = res.data; + if (data.ok) { + this.ruleForm = data.data; + this.ruleForm.url = process.env.BASE_API; + this.ruleForm.callback_branch= data.data.check_main_branch + //this.ruleForm.ispass=0 + this.sendDataForm.id = this.ruleForm.id + } else { + this.$message({type: 'error', message: "数据查询失败,请重试!", duration: 3000}) + } + }) + } + }, getWfRecordList() { getWfRecordList(this.$route.query.id).then(res => { @@ -404,10 +475,49 @@ } }, close(){ - this.$router.push({ - path:"/hiddenDangerRectification" - }) - } + if(this.$route.query.route!=null && this.$route.query.route!=''){ + this.$router.push({ + path: this.$route.query.route + }) + }else{ + this.$router.push({ + path:"/hiddenDangerRectification" + }) + } + }, + subFile(fileName){ + return fileName.substring(fileName.indexOf("fileName=")+9) + }, + downloadFile(path){ + let params = { + type: 0, + fileName: path, + }; + downloadFile(params).then((res) => { + if(res.data.type=='text/json'){ + const reader = new FileReader(); + reader.readAsText(res.data, 'utf-8'); + reader.onload = e => { + this.$message({ + type: "error", + message: JSON.parse(reader.result).msg, + duration: 3000, + }); + } + } else { + let blob = new Blob([res.data], {type: 'application/octet-stream'}) + console.log(blob) + let blobUrl = window.URL.createObjectURL(blob) + let downloadElement = document.createElement('a') + downloadElement.href = blobUrl + downloadElement.download = path + document.body.appendChild(downloadElement) + downloadElement.click() + document.body.removeChild(downloadElement) + window.URL.revokeObjectURL(blobUrl) + } + }); + }, } } </script> diff --git a/src/views/delayHiddenDangerRectification/index.vue b/src/views/delayHiddenDangerRectification/index.vue index e0fd2b9..49c5648 100644 --- a/src/views/delayHiddenDangerRectification/index.vue +++ b/src/views/delayHiddenDangerRectification/index.vue @@ -45,7 +45,7 @@ v-for="item in YHBMList" :key="item.branch_id" :label="item.branch_name" - :value="item.branch_id"> + :value="item.branch_name"> </el-option> </el-select> </el-form-item> @@ -157,7 +157,7 @@ <el-button class="btns" type="primary" size="small" @click="sendBath()">批量发送</el-button> </el-col> </el-row> - <el-table ref="dataTable" :data="tableData" style="width: 100%" @selection-change="handleSelectionChange"> + <el-table ref="dataTable" :data="tableData" style="width: 100%" @selection-change="handleSelectionChange" v-loading="loading"> <el-table-column type="selection" width="55" align="center"></el-table-column> <el-table-column prop="number" label="编号" align="center" width="120"> <template slot-scope="scope"> @@ -223,7 +223,7 @@ <el-table-column prop="DTRisk_level" label="风险等级" align="center"></el-table-column> <el-table-column prop="warningLevel" label="初始警情" align="center"></el-table-column> <el-table-column prop="curWarningLevel" label="当前警情" align="center"></el-table-column> - <el-table-column prop="date" label="流程操作" align="center"> + <el-table-column prop="date" label="流程操作" align="center" fixed="right"> <template slot-scope="scope"> <el-button @click="handleClick(scope.row)" type="text" size="small">点击发送</el-button> </template> @@ -265,6 +265,7 @@ YHBMList: [], YHJBList: [], tableData: [], + loading:false, listQuery: { page: 1, limit: 10, @@ -349,7 +350,9 @@ getPageList() { this.listQuery.page = 1 this.checkTime() + this.loading = true getPageList(this.listQuery).then(res => { + this.loading = false if (res.data.ok == 1) { this.tableData = res.data.data.items this.recordTotal = res.data.data.total @@ -464,12 +467,14 @@ }) }, exportData() { - var requestData = this.listQuery; + this.listLoading = true + var requestData = JSON.parse(JSON.stringify(this.listQuery)); requestData.export_type = 4; //删除分页参数 this.$delete(requestData, 'page') this.$delete(requestData, 'limit') danger_export_do(requestData).then(res => { + this.listLoading = false var blob = new Blob([res.data]) var downloadElement = document.createElement('a') var href = window.URL.createObjectURL(blob) //创建下载的链接 diff --git a/src/views/delayHiddenDangerRectification/rectificationDelayHiddenDanger.vue b/src/views/delayHiddenDangerRectification/rectificationDelayHiddenDanger.vue index 70416c6..4e58d63 100644 --- a/src/views/delayHiddenDangerRectification/rectificationDelayHiddenDanger.vue +++ b/src/views/delayHiddenDangerRectification/rectificationDelayHiddenDanger.vue @@ -274,32 +274,38 @@ <el-table-column prop="date" label="步骤" + type="index" align="center" - width="60"> + > </el-table-column> <el-table-column prop="realname" label="操作人" align="center" - width="138"> + > </el-table-column> <el-table-column prop="create_time" label="处理时间" align="center" - width="200"> + > </el-table-column> <el-table-column prop="city" label="审批意见" align="center" - width="260"> + > <template slot-scope="scope"> <span size="medium">{{ scope.row.content }}</span> - <a v-for="item in scope.row.realFileName" - :href="scope.row.url+'/'+item"> - {{ item.split("fileName=")[1] }} - </a> + <span v-for="item in scope.row.realFileName"> + <el-link type="primary" @click="downloadFile(subFile(item))"> + {{subFile(item)}} + </el-link> + </span> +<!-- <a v-for="item in scope.row.realFileName"--> +<!-- :href="scope.row.url+'/'+item">--> +<!-- {{ item.split("fileName=")[1] }}--> +<!-- </a>--> </template> </el-table-column> <el-table-column @@ -315,7 +321,7 @@ </el-form> <el-form :model="sendData" :rules="rules" ref="sendData" label-width="150px" class="demo-ruleForm" style="margin: 0 14% 0 16%;"> - > + <el-row> <el-col :span="22"> <el-form-item label="发送流程" prop="name"> @@ -396,6 +402,7 @@ <script> import Titlename from "../../components/Titlename/index.vue"; import {sendDangerNext, getDangerDetails, getWfRecordList} from "@/api/sgyhpczl/recheckCancellationNumber"; +import {downloadFile} from "@/api/sgyhpczl/fileUtils"; export default { components: {Titlename}, @@ -516,7 +523,40 @@ this.$router.push({ path: "/delayHiddenDangerRectification" }) - } + }, + subFile(fileName){ + return fileName.substring(fileName.indexOf("fileName=")+9) + }, + downloadFile(path){ + let params = { + type: 0, + fileName: path, + }; + downloadFile(params).then((res) => { + if(res.data.type=='text/json'){ + const reader = new FileReader(); + reader.readAsText(res.data, 'utf-8'); + reader.onload = e => { + this.$message({ + type: "error", + message: JSON.parse(reader.result).msg, + duration: 3000, + }); + } + } else { + let blob = new Blob([res.data], {type: 'application/octet-stream'}) + console.log(blob) + let blobUrl = window.URL.createObjectURL(blob) + let downloadElement = document.createElement('a') + downloadElement.href = blobUrl + downloadElement.download = path + document.body.appendChild(downloadElement) + downloadElement.click() + document.body.removeChild(downloadElement) + window.URL.revokeObjectURL(blobUrl) + } + }); + }, } } </script> diff --git a/src/views/hiddenDangerManagement/fillRectificationAdd.vue b/src/views/hiddenDangerManagement/fillRectificationAdd.vue index e7320f2..a248d31 100644 --- a/src/views/hiddenDangerManagement/fillRectificationAdd.vue +++ b/src/views/hiddenDangerManagement/fillRectificationAdd.vue @@ -298,6 +298,7 @@ dangerList: [], dangerForm: {}, dangerRules: { + measure:[{required: true, message: '不能为空', trigger: 'blur'},], ht_branch: [{required: true, message: '不能为空', trigger: 'blur'},], address: [{required: true, message: '不能为空', trigger: 'blur'},], ht_content: [{required: true, message: '不能为空', trigger: 'blur'},], diff --git a/src/views/hiddenDangerManagement/index.vue b/src/views/hiddenDangerManagement/index.vue index addaa9a..74d30e6 100644 --- a/src/views/hiddenDangerManagement/index.vue +++ b/src/views/hiddenDangerManagement/index.vue @@ -181,7 +181,7 @@ </el-col> </el-row> - <el-table :data="tableData" ref="dataTable" style="width: 100%"> + <el-table :data="tableData" ref="dataTable" style="width: 100%" v-loading="loading"> <el-table-column type="selection" width="55" align="center"></el-table-column> <el-table-column prop="number" label="编号" align="center" width="120"> <template slot-scope="scope"> @@ -251,7 +251,7 @@ <el-table-column label="初始警情" align="center" prop="warningLevel"></el-table-column> <el-table-column label="当前警情" align="center" prop="curWarningLevel"></el-table-column> <!-- <el-table-column label="流程操作" align="center"> </el-table-column> --> - <el-table-column label="基本操作" align="center"> + <el-table-column label="基本操作" align="center" fixed="right"> <template slot-scope="scope"> <el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button> <el-button type="text" @click="handleDelete(scope.row)" size="small">删除</el-button> @@ -304,6 +304,7 @@ YHBMList: [], YHJBList: [], tableData: [], + loading:false, listQuery: { page: 1, limit: 10, @@ -396,7 +397,9 @@ getPageList() { this.listQuery.page = 1 this.checkTime() + this.loading = true getPageList(this.listQuery).then(res => { + this.loading = false if (res.data.ok == 1) { this.tableData = res.data.data.items this.recordTotal = res.data.data.total @@ -499,11 +502,13 @@ window.open(href, '_blank'); }, exportData() { - var requestData = this.listQuery; + this.listLoading = true + var requestData = JSON.parse(JSON.stringify(this.listQuery)); //删除分页参数 this.$delete(requestData, 'page') this.$delete(requestData, 'limit') self_export_do(requestData).then(res => { + this.listLoading = false var blob = new Blob([res.data]) var downloadElement = document.createElement('a') var href = window.URL.createObjectURL(blob) //创建下载的链接 @@ -660,9 +665,10 @@ }) }, showDetails(row){ + //hiddenDangerManagement this.$router.push({ path: "/dangerDetails", - query:{"id":row.id} + query: {"id": row.id, "route": "/hiddenDangerManagement"} }) } } diff --git a/src/views/hiddenDangerRectification/index.vue b/src/views/hiddenDangerRectification/index.vue index 521cf84..6f72fa9 100644 --- a/src/views/hiddenDangerRectification/index.vue +++ b/src/views/hiddenDangerRectification/index.vue @@ -45,7 +45,7 @@ v-for="item in YHBMList" :key="item.branch_id" :label="item.branch_name" - :value="item.branch_id"> + :value="item.branch_name"> </el-option> </el-select> </el-form-item> @@ -141,7 +141,8 @@ <el-button type="primary" class="btns" size="small" icon="el-icon-search" @click="getPageList()">查询 </el-button> <el-button type="primary" class="btns" size="small" @click="reset()">重置</el-button> - <el-button type="primary" class="btns" size="small" icon="el-icon-upload2" @click="exportData">导出excel</el-button> + <el-button type="primary" class="btns" size="small" icon="el-icon-upload2" @click="exportData">导出excel + </el-button> </el-form-item> </el-form> <el-row class="title-center"> @@ -149,7 +150,7 @@ <el-button class="btns" type="primary" size="small" @click="applyDelay()">申请延期</el-button> </el-col> </el-row> - <el-table :data="tableData" ref="dangerRectificationTable" style="width: 100%"> + <el-table :data="tableData" ref="dangerRectificationTable" style="width: 100%" v-loading="loading"> <el-table-column type="selection" width="55" align="center"></el-table-column> <el-table-column prop="number" label="编号" align="center" width="120"> <template slot-scope="scope"> @@ -162,11 +163,11 @@ <el-table-column label="隐患项目" align="center"> <el-table-column prop="check_date" label="检查时间" width="120" align="center"> <template slot-scope="scope"> - <label>{{ formatDate(scope.row.check_date)}}</label><br/> - <label>{{ scope.row.check_class}}</label> + <label>{{ formatDate(scope.row.check_date) }}</label><br/> + <label>{{ scope.row.check_class }}</label> </template> </el-table-column> - <el-table-column prop="address" label="地点" align="center"></el-table-column> + <el-table-column prop="address" label="地点" align="center"></el-table-column> <el-table-column prop="ht_content" label="内容" width="150" align="center"> <template slot-scope="scope"> <el-popover trigger="hover" placement="top"> @@ -195,13 +196,16 @@ </el-table-column> <el-table-column prop="ht_branch" label="隐患部门" align="center"></el-table-column> <el-table-column prop="duty_officer" label="责任人" align="center"></el-table-column> - <el-table-column prop="alter_time" label="限改时间" width="120" :formatter="formatColumnDate" align="center"></el-table-column> + <el-table-column prop="alter_time" label="限改时间" width="120" :formatter="formatColumnDate" + align="center"></el-table-column> </el-table-column> <el-table-column label="整改情况" align="center"> - <el-table-column prop="ACCOMPLISHTIME" label="完成时间" :formatter="formatColumnDate" width="120" align="center"></el-table-column> + <el-table-column prop="ACCOMPLISHTIME" label="完成时间" :formatter="formatColumnDate" width="120" + align="center"></el-table-column> <el-table-column prop="CALLBACKRESULT" label="复查结果" align="center"></el-table-column> <el-table-column prop="CALLBACKPERSON" label="复查人" align="center"></el-table-column> - <el-table-column prop="CALLBACKTIME" label="复查时间" width="120" align="center"></el-table-column> + <el-table-column prop="CALLBACKTIME" label="复查时间" :formatter="formatColumnDate" width="120" + align="center"></el-table-column> </el-table-column> <el-table-column label="隐患处理状态" align="center"> <template slot-scope="scope"> @@ -215,7 +219,7 @@ <el-table-column prop="DTRisk_level" label="风险等级" align="center"></el-table-column> <el-table-column prop="warningLevel" label="初始警情" align="center"></el-table-column> <el-table-column prop="curWarningLevel" label="当前警情" align="center"></el-table-column> - <el-table-column prop="date" label="流程操作" align="center"> + <el-table-column prop="date" label="流程操作" align="center" fixed="right"> <template slot-scope="scope"> <el-button @click="handleClick(scope.row)" type="text" size="small">点击发送</el-button> </template> @@ -223,7 +227,7 @@ </el-table> <!--申请延期弹窗--> <el-dialog - title="提示" + title="申请延期" :visible.sync="dialogVisible" :close-on-click-modal="false" width="30%" @@ -249,6 +253,7 @@ <el-form-item label="附件上传" prop="desc"> <el-upload class="upload-demo" + action="https://jsonplaceholder.typicode.com/posts/" ref="upload" :http-request="uploadSectionFile" :on-preview="handlePreview" @@ -258,7 +263,7 @@ :auto-upload="true" > <el-button slot="trigger" size="small" type="primary" class="btns">选择文件</el-button> - <div slot="tip" class="el-upload__tip">只能上传.jpg,.gif,.bmp,.png,.jpeg格式的图片</div> + <div slot="tip" class="el-upload__tip">只能上传.jpg,.gif,.bmp,.png,.doc,.docx,.pdf,.ppt,.pptx,.xls,.xlsx,.rar,.zip格式的图片</div> </el-upload> </el-form-item> </el-col> @@ -293,7 +298,7 @@ </div> </template> <script> -import {getPageList, uploadFile, saveDelayApply,danger_export_do} from "@/api/sgyhpczl/hiddenDangerRectification"; +import {getPageList, uploadFile, saveDelayApply, danger_export_do} from "@/api/sgyhpczl/hiddenDangerRectification"; import {initJCBM, initYHLX, initBC, initJCLB, initYHBM, initYHJB, initLlr} from "@/api/sgyhpczl/initSelect"; export default { @@ -312,6 +317,8 @@ YHBMList: [], YHJBList: [], tableData: [], + fileNameList: [], + loading: false, listQuery: { page: 1, limit: 10, @@ -429,7 +436,9 @@ getPageList() { this.listQuery.page = 1 this.checkTime() + this.loading = true; getPageList(this.listQuery).then(res => { + this.loading = false; if (res.data.ok == 1) { this.tableData = res.data.data.items this.recordTotal = res.data.data.total @@ -505,7 +514,7 @@ handleClick(row) { this.$router.push({ path: "/sendHiddenDangerList", - query:{"id":row.id} + query: {"id": row.id} }) }, handleClose(done) { @@ -517,17 +526,22 @@ }); }, handleRemove(file, fileList) { - console.log(file, fileList) + var fileUidList = []; + fileList.forEach(file => { + fileUidList.push(file.uid); + }) + this.fileNameList = this.fileNameList.filter(n => fileUidList.indexOf(n.uid) != -1); }, handlePreview(file) { console.log(file) }, beforeUpload(file) { var FileExt = file.name.replace(/.+\./, ""); - if (['jpg', 'png', 'bmp', 'gif', 'jpeg'].indexOf(FileExt.toLowerCase()) === -1) { + //.jpg,.gif,.bmp,.png,.doc,.docx,.pdf,.ppt,.pptx,.xls,.xlsx,.rar,.zip + if (['jpg', 'png', 'bmp', 'gif', 'jpeg','doc','docx','pdf','ppt','xls','pptx','xls','xlsx','rar','zip'].indexOf(FileExt.toLowerCase()) === -1) { this.$message({ type: 'warning', - message: '请上传后缀名为jpg、png、bmp、gif、jpeg的图片!' + message: '请上传后缀名为jpg,gif,bmp,png,doc,docx,pdf,ppt,pptx,xls,xlsx,rar,zip的图片!' }); return false; } @@ -549,6 +563,11 @@ applyDelaySave() { this.$refs["ruleForm"].validate((valid) => { if (valid) { + this.ruleForm.realFileName = ""; + this.fileNameList.forEach(n => { + this.ruleForm.realFileName += n.fileName + ","; + }) + this.ruleForm.realFileName.substring(0, this.ruleForm.realFileName.length - 1); saveDelayApply(this.ruleForm).then(res => { this.dialogVisible = false; this.$message({ @@ -571,21 +590,27 @@ if (data.ok) { var fileName = data.data.fileName[0]; if (!fileName.endsWith("a62b")) { - fileName = fileName + param.file.realFileName; + fileName = fileName + "a62b"; } - that.ruleForm.realFileName = that.ruleForm.realFileName + "," + fileName; + var fileObj = { + "fileName": fileName, + "uid": param.file.uid + } + this.fileNameList.push(fileObj); + // that.ruleForm.realFileName = that.ruleForm.realFileName + "," + fileName; } - }).error(res => { - this.$message({ - type: 'error', - message: '附件上传失败,请重试!' - }); }) + // .error(res => { + // this.$message({ + // type: 'error', + // message: '附件上传失败,请重试!' + // }); + // }) }, //方法区 formatDate(data) { // 获取单元格数据 - if(data == null) { + if (data == null) { return null } let dt = new Date(data) @@ -596,19 +621,21 @@ formatColumnDate(row, column) { // 获取单元格数据 let data = row[column.property] - if(data == null) { + if (data == null) { return null } let dt = new Date(data) return dt.getFullYear() + '-' + (dt.getMonth() + 1) + '-' + dt.getDate() + ' ' }, - exportData(){ - var requestData = this.listQuery; + exportData() { + this.listLoading = true + var requestData = JSON.parse(JSON.stringify(this.listQuery)); requestData.export_type = 2; //删除分页参数 this.$delete(requestData, 'page') this.$delete(requestData, 'limit') danger_export_do(requestData).then(res => { + this.listLoading = false var blob = new Blob([res.data]) var downloadElement = document.createElement('a') var href = window.URL.createObjectURL(blob) //创建下载的链接 @@ -622,10 +649,10 @@ console.log(err) }) }, - showDetails(row){ + showDetails(row) { this.$router.push({ path: "/dangerDetails", - query:{"id":row.id} + query: {"id": row.id} }) } } @@ -656,10 +683,12 @@ max-height: 80px; overflow-y: auto } -.blue-font-color:hover{ + +.blue-font-color:hover { cursor: pointer; color: blue; } + /deep/ .el-dialog .button .el-form-item__content { margin-left: 0; } diff --git a/src/views/hiddenDangerRectification/sendHiddenDangerList.vue b/src/views/hiddenDangerRectification/sendHiddenDangerList.vue index bd318b2..2b75bb3 100644 --- a/src/views/hiddenDangerRectification/sendHiddenDangerList.vue +++ b/src/views/hiddenDangerRectification/sendHiddenDangerList.vue @@ -292,10 +292,11 @@ width="260"> <template slot-scope="scope"> <span size="medium">{{ scope.row.content }}</span> - <a v-for="item in scope.row.realFileName" - :href="scope.row.url+'/'+item"> - {{ item.split("fileName=")[1] }} - </a> + <span v-for="item in scope.row.realFileName"> + <el-link type="primary" @click="downloadFile(subFile(item))"> + {{subFile(item)}} + </el-link> + </span> </template> </el-table-column> <el-table-column @@ -391,6 +392,7 @@ <script> import Titlename from "../../components/Titlename/index.vue"; import {sendDangerNext, getDangerDetails, getWfRecordList} from "@/api/sgyhpczl/recheckCancellationNumber"; + import {downloadFile} from "@/api/sgyhpczl/fileUtils"; export default { components: {Titlename}, @@ -518,7 +520,40 @@ this.$router.push({ path:"/hiddenDangerRectification" }) - } + }, + subFile(fileName){ + return fileName.substring(fileName.indexOf("fileName=")+9) + }, + downloadFile(path){ + let params = { + type: 0, + fileName: path, + }; + downloadFile(params).then((res) => { + if(res.data.type=='text/json'){ + const reader = new FileReader(); + reader.readAsText(res.data, 'utf-8'); + reader.onload = e => { + this.$message({ + type: "error", + message: JSON.parse(reader.result).msg, + duration: 3000, + }); + } + } else { + let blob = new Blob([res.data], {type: 'application/octet-stream'}) + console.log(blob) + let blobUrl = window.URL.createObjectURL(blob) + let downloadElement = document.createElement('a') + downloadElement.href = blobUrl + downloadElement.download = path + document.body.appendChild(downloadElement) + downloadElement.click() + document.body.removeChild(downloadElement) + window.URL.revokeObjectURL(blobUrl) + } + }); + }, } } </script> diff --git a/src/views/hiddenDangerRegistration/hiddenDangerAdd.vue b/src/views/hiddenDangerRegistration/hiddenDangerAdd.vue index bb4ff05..8835df8 100644 --- a/src/views/hiddenDangerRegistration/hiddenDangerAdd.vue +++ b/src/views/hiddenDangerRegistration/hiddenDangerAdd.vue @@ -385,6 +385,7 @@ this.initWXY() this.initDangerRebound() this.id = this.$route.query.id; + this.route = this.$route.query.route; if( this.id!=null && this.id!=''){ this.initInfo(); this.addShow=false @@ -571,9 +572,15 @@ returnIndex(){ - this.$router.push({ - path:"/hiddenDangerRegistration" - }) + if(this.route!=null){ + this.$router.push({ + path:"/"+this.route + }) + }else{ + this.$router.push({ + path:"/hiddenDangerRegistration" + }) + } }, submitForm(formName) { this.$refs[formName].validate((valid) => { @@ -613,9 +620,15 @@ editDanger(param).then(res=>{ if (res.data.ok==1){ this.$message({type:'success', message:"编辑成功", duration:3000}) - this.$router.push({ - path:"/hiddenDangerRegistration" - }) + if(this.route!=null){ + this.$router.push({ + path:"/"+this.route + }) + }else{ + this.$router.push({ + path:"/hiddenDangerRegistration" + }) + } }else { this.$message({type:'error', message:res.data.msg, duration:3000}) } diff --git a/src/views/hiddenDangerReview/recheckCancellationNumber.vue b/src/views/hiddenDangerReview/recheckCancellationNumber.vue index 5126227..ebb4619 100644 --- a/src/views/hiddenDangerReview/recheckCancellationNumber.vue +++ b/src/views/hiddenDangerReview/recheckCancellationNumber.vue @@ -45,7 +45,7 @@ v-for="item in YHBMList" :key="item.branch_id" :label="item.branch_name" - :value="item.branch_id"> + :value="item.branch_name"> </el-option> </el-select> </el-form-item> @@ -151,7 +151,7 @@ <el-button class="btns" type="primary" size="small">批量发送</el-button> </el-col> </el-row> - <el-table :data="tableData" ref="dangerRectificationTable" style="width: 100%"> + <el-table :data="tableData" ref="dangerRectificationTable" style="width: 100%" v-loading="loading"> <el-table-column type="selection" width="55" align="center"></el-table-column> <el-table-column prop="number" label="编号" align="center" width="120"> <template slot-scope="scope"> @@ -194,7 +194,7 @@ <el-table-column prop="ht_level" label="级别" align="center"></el-table-column> </el-table-column> <el-table-column label="整改计划" align="center"> - <el-table-column prop="measure" label="整改措施" align="center"> + <el-table-column prop="measure" label="整改措施" width="150" align="center"> <template slot-scope="scope"> <el-popover trigger="hover" placement="top"> <p>{{ scope.row.measure }}</p> @@ -233,7 +233,7 @@ <el-table-column prop="DTRisk_level" label="风险等级" align="center"></el-table-column> <el-table-column prop="warningLevel" label="初始警情" align="center"></el-table-column> <el-table-column prop="curWarningLevel" label="当前警情" align="center"></el-table-column> - <el-table-column prop="date" label="流程操作" align="center"> + <el-table-column prop="date" label="流程操作" align="center" fixed="right"> <template slot-scope="scope"> <el-button @click="handleClick(scope.row)" type="text" size="small">点击发送</el-button> </template> @@ -241,7 +241,7 @@ </el-table> <!--批量复查弹窗--> <el-dialog - title="提示" + title="发送隐患单" :visible.sync="dialogVisible" :close-on-click-modal="false" width="30%" @@ -358,6 +358,7 @@ YHBMList: [], YHJBList: [], tableData: [], + loading:false, ruleForm: { id: "", step: "3", @@ -471,7 +472,9 @@ getPageList() { this.listQuery.page = 1 this.checkTime() + this.loading = true getPageList(this.listQuery).then(res => { + this.loading =false if (res.data.ok == 1) { this.tableData = res.data.data.items this.recordTotal = res.data.data.total @@ -566,12 +569,14 @@ } }, exportData() { - var requestData = this.listQuery; + this.listLoading = true + var requestData = JSON.parse(JSON.stringify(this.listQuery)); requestData.export_type = 3; //删除分页参数 this.$delete(requestData, 'page') this.$delete(requestData, 'limit') danger_export_do(requestData).then(res => { + this.listLoading = false var blob = new Blob([res.data]) var downloadElement = document.createElement('a') var href = window.URL.createObjectURL(blob) //创建下载的链接 diff --git a/src/views/hiddenDangerReview/recheckHiddenDangerList.vue b/src/views/hiddenDangerReview/recheckHiddenDangerList.vue index 197dfd3..5c1ce53 100644 --- a/src/views/hiddenDangerReview/recheckHiddenDangerList.vue +++ b/src/views/hiddenDangerReview/recheckHiddenDangerList.vue @@ -296,10 +296,11 @@ width="260"> <template slot-scope="scope"> <span size="medium">{{ scope.row.content }}</span> - <a v-for="item in scope.row.realFileName" - :href="scope.row.url+'/'+item"> - {{ item.split("fileName=")[1] }} - </a> + <span v-for="item in scope.row.realFileName"> + <el-link type="primary" @click="downloadFile(subFile(item))"> + {{subFile(item)}} + </el-link> + </span> </template> </el-table-column> <el-table-column @@ -317,6 +318,13 @@ <el-form-item label="发送流程:" prop="name"> <!-- <el-input type="textarea" v-model="ruleForm.name" class="multiline"--> <!-- :disabled="true"></el-input>--> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="下一步:" prop="name"> + <span> 流程结束,不通过则返回隐患部门</span> </el-form-item> </el-col> </el-row> @@ -431,6 +439,7 @@ <script> import Titlename from "../../components/Titlename/index.vue"; import {sendDangerNext, getDangerDetails, getWfRecordList} from "@/api/sgyhpczl/recheckCancellationNumber"; +import {downloadFile} from "@/api/sgyhpczl/fileUtils"; export default { components: {Titlename}, @@ -533,7 +542,40 @@ this.$router.push({ path: "/recheckCancellationNumber" }) - } + }, + subFile(fileName){ + return fileName.substring(fileName.indexOf("fileName=")+9) + }, + downloadFile(path){ + let params = { + type: 0, + fileName: path, + }; + downloadFile(params).then((res) => { + if(res.data.type=='text/json'){ + const reader = new FileReader(); + reader.readAsText(res.data, 'utf-8'); + reader.onload = e => { + this.$message({ + type: "error", + message: JSON.parse(reader.result).msg, + duration: 3000, + }); + } + } else { + let blob = new Blob([res.data], {type: 'application/octet-stream'}) + console.log(blob) + let blobUrl = window.URL.createObjectURL(blob) + let downloadElement = document.createElement('a') + downloadElement.href = blobUrl + downloadElement.download = path + document.body.appendChild(downloadElement) + downloadElement.click() + document.body.removeChild(downloadElement) + window.URL.revokeObjectURL(blobUrl) + } + }); + }, } } </script> diff --git a/src/views/hiddenDangerTroubleshootingList/index.vue b/src/views/hiddenDangerTroubleshootingList/index.vue index 0ebb761..3208d2d 100644 --- a/src/views/hiddenDangerTroubleshootingList/index.vue +++ b/src/views/hiddenDangerTroubleshootingList/index.vue @@ -1,10 +1,11 @@ <template xmlns="http://www.w3.org/1999/html"> - <div class="whole"> + <div class="whole" v-loading="fullscreenLoading"> <div class="left-tree"> <el-tree :data="data" node-key="id" default-expand-all + @node-click="clickType" @node-drag-start="handleDragStart" @node-drag-enter="handleDragEnter" @node-drag-leave="handleDragLeave" @@ -24,31 +25,34 @@ }" style="color: #409eff;" /> - <i v-else class="el-icon-folder-add" style="color: #EC933A;" /> + <i v-else class="el-icon-folder-add" style="color: #EC933A;"/> <span>{{ node.label }}</span> </template> </span> </el-tree> </div> - <div class="right-table"> + <div class="right-table" v-show="templateName!=null && templateName !=''"> <table border="1" style="background: #FFFFFF;width: 100%;"> <tr> <td class="table_td" style="text-align: right;">模板名称:</td> <td> - <input class="input" style="line-height: 24px;height: 24px;"> + <input class="input" style="line-height: 24px;height: 24px;" + v-model="templateName"> </td> </tr> <tr> <td class="table_td" style="text-align: right;">模板导入:</td> <td style="line-height: 24px;height: 24px;"> - <input class="input" type="file" style="color: red;"> - <button class="btn" style="margin-left: 120px;">导入</button> - <button class="btn">下载模板</button> + <input class="input" type="file" @change="changeFile" accept=".xlsx,.xls" style="color: red;"> + <button class="btn" style="margin-left: 120px;" @click="importData" + >导入 + </button> + <button class="btn" @click="downTemplate">下载模板</button> </td> </tr> <tr class="table_tr"> <td colspan="4" align="center"> - <button class="btn">预览</button> + <button class="btn" @click="preview">预览</button> </td> </tr> </table> @@ -57,32 +61,43 @@ </template> <script> + + +import {standard_template, standard_import_do,stand_list} from "@/api/sgyhpczl/hiddenDangerTroubleshootingList"; + + export default { - name: "index" , + name: "index", data() { return { data: [{ id: 1, label: '隐患排查清单', - icon:'el-icon-folder', + icon: 'el-icon-folder', + click: true, children: [{ id: 4, label: '现场管理清单', - icon:'el-icon-folder', + icon: 'el-icon-folder', + click: true }, - { - id: 5, - label: '基础管理清单', - icon:'el-icon-success', - }] + { + id: 5, + label: '基础管理清单', + icon: 'el-icon-success', + click: true + }] }], defaultProps: { children: 'children', label: 'label' }, + templateName: "", + file: null, + fullscreenLoading:false }; }, - mounted(){ + mounted() { this.getAllColumns() }, methods: { @@ -120,59 +135,127 @@ }, handleChange(file, fileList) { this.fileList = fileList.slice(-3); + }, + clickType(item) { + if (item.click) { + this.templateName = item.label; + } + }, + downTemplate() { + //删除分页参数 + standard_template().then(res => { + var blob = new Blob([res.data]) + var downloadElement = document.createElement('a') + var href = window.URL.createObjectURL(blob) //创建下载的链接 + downloadElement.href = href + downloadElement.download = '隐患排查标准清单模板.xlsx' //下载后文件名 + document.body.appendChild(downloadElement) + downloadElement.click() //点击下载 + document.body.removeChild(downloadElement) //下载完成移除元素 + window.URL.revokeObjectURL(href) //释放掉blob对象 + }).catch(err => { + console.log(err) + }) + }, + importData() { + if (this.file == null) { + this.$message({type: 'warning', message: "请添加Excel附件", duration: 3000}) + return; + } + console.log(this.file) + this.fullscreenLoading = true; + this.uploadByJsqd(this.file); + }, + changeFile(file) { + this.file = event.target.files[0] + }, + //文件发生改变就会触发的事件 导入 + uploadByJsqd(file) { + //判断是否符合beforeAvatarUpload方法中的条件 + var formdata = new FormData() + formdata.append('file', file) + formdata.append('standardType', this.templateName); + + //importDevice:请求接口 formdata:传递参数 + standard_import_do(formdata).then((res) => { + this.fullscreenLoading = false; + if (res.data.ok) { + this.$message({type: 'success', message: res.data.msg, duration: 3000}) + this.getPageList()//调用表格方法,刷新页面 + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + preview(){ + this.$router.push({ + path: "/preview", + query:{"templateName":this.templateName} + }) } } } </script> <style scoped> -.whole{ +.whole { display: flex; } -.left-tree{ + +.left-tree { width: 15%; } -.left-tree .el-tree{ + +.left-tree .el-tree { background: #f0f6e4; height: 400px; overflow-y: scroll; border: 1px solid #000; } -/deep/ .is-leaf{ + +/deep/ .is-leaf { background: transparent !important; width: 5px; height: 5px; background-size: 100%; margin-right: 5px; } -/deep/ .el-icon-caret-right:before{ + +/deep/ .el-icon-caret-right:before { content: ''; } -.right-table{ + +.right-table { width: 85%; } -table,table tr th, table tr td { - border:1px solid #ccc; + +table, table tr th, table tr td { + border: 1px solid #ccc; } -.table_td{ + +.table_td { background: #e4edf4; } -.table_tr{ + +.table_tr { background: #e4edf4; line-height: 40px; height: 40px; } -table{ + +table { width: 100%; border-collapse: collapse; font-size: 14px; } -.input{ + +.input { background: #f9f9f9; border-width: 1px; margin: 5px 0; } -.btn{ + +.btn { background: url(../../assets/btn.gif) no-repeat; width: 76px; height: 26px; diff --git a/src/views/hiddenDangerTroubleshootingList/preview.vue b/src/views/hiddenDangerTroubleshootingList/preview.vue index f41ca01..629a168 100644 --- a/src/views/hiddenDangerTroubleshootingList/preview.vue +++ b/src/views/hiddenDangerTroubleshootingList/preview.vue @@ -1,122 +1,90 @@ <template> -<div class="whole"> - <h3 style="text-align: center">隐患排查标准清单(基础管理清单)</h3> - <el-table - :data="tableData" - style="width: 100%"> - <el-table-column label="排查内容" align="center"> - <el-table-column - prop="province" - label="Ⅰ级要素" - width="120"> + <div class="whole"> + <h3 style="text-align: center">隐患排查标准清单(基础管理清单)</h3> + <el-table + :data="tableData" + style="width: 100%"> + <el-table-column label="排查内容" align="center"> + <el-table-column + prop="factor_1" + label="Ⅰ级要素" + width="120"> + </el-table-column> + <el-table-column + prop="factor_2" + label="Ⅱ级要素" + width="120"> + </el-table-column> + <el-table-column + prop="factor_3" + label="Ⅲ级要素" + width="120"> + </el-table-column> + <el-table-column + prop="factor_4" + label="Ⅳ级要素" + width="120"> + </el-table-column> + </el-table-column> + <el-table-column label="排查标准" align="center"> + <el-table-column + prop="Standard" + label="标准项具体描述" + width="300"> + </el-table-column> + <el-table-column + prop="reference" + width="200" + label="参考依据"> + </el-table-column> </el-table-column> <el-table-column - prop="city" - label="Ⅱ级要素" - width="120"> + prop="method" + label="排查方法" + width="150"> </el-table-column> <el-table-column - prop="address" - label="Ⅲ级要素" - width="120"> + prop="period" + label="排查周期" + width="150"> </el-table-column> - <el-table-column - prop="zip" - label="Ⅳ级要素" - width="120"> + <el-table-column label="排查责任" align="center"> + <el-table-column + prop="level" + label="排查级别"> + </el-table-column> + <el-table-column + prop="branch" + label="责任单位"> + </el-table-column> </el-table-column> - </el-table-column> - <el-table-column label="排查标准" align="center"> - <el-table-column - prop="province" - label="标准项具体描述" - width="300"> - </el-table-column> - <el-table-column - prop="city" - width="200" - label="参考依据"> - </el-table-column> - </el-table-column> - <el-table-column - prop="date" - label="排查方法" - width="150"> - </el-table-column> - <el-table-column - prop="date" - label="排查周期" - width="150"> - </el-table-column> - <el-table-column label="排查责任" align="center"> - <el-table-column - prop="province" - label="排查级别"> - </el-table-column> - <el-table-column - prop="city" - label="责任单位"> - </el-table-column> - </el-table-column> - </el-table> -</div> + </el-table> + </div> </template> <script> +import {stand_list} from "@/api/sgyhpczl/hiddenDangerTroubleshootingList"; + export default { name: "preview", data() { return { - tableData: [{ - date: '2016-05-03', - name: '王小虎', - province: '上海', - city: '普陀区', - address: '上海市普陀区金沙江路 1518 弄', - zip: 200333 - }, { - date: '2016-05-02', - name: '王小虎', - province: '上海', - city: '普陀区', - address: '上海市普陀区金沙江路 1518 弄', - zip: 200333 - }, { - date: '2016-05-04', - name: '王小虎', - province: '上海', - city: '普陀区', - address: '上海市普陀区金沙江路 1518 弄', - zip: 200333 - }, { - date: '2016-05-01', - name: '王小虎', - province: '上海', - city: '普陀区', - address: '上海市普陀区金沙江路 1518 弄', - zip: 200333 - }, { - date: '2016-05-08', - name: '王小虎', - province: '上海', - city: '普陀区', - address: '上海市普陀区金沙江路 1518 弄', - zip: 200333 - }, { - date: '2016-05-06', - name: '王小虎', - province: '上海', - city: '普陀区', - address: '上海市普陀区金沙江路 1518 弄', - zip: 200333 - }, { - date: '2016-05-07', - name: '王小虎', - province: '上海', - city: '普陀区', - address: '上海市普陀区金沙江路 1518 弄', - zip: 200333 - }] + tableData: [] + } + }, + mounted() { + this.getTableData() + }, + methods: { + getTableData() { + stand_list(this.$route.query.templateName).then((res) => { + if (res.data.ok) { + console.log(res); + this.tableData = res.data.data; + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) } } } diff --git a/src/views/oneFromanother/exist.vue b/src/views/oneFromanother/exist.vue index ab40f32..93be3cf 100644 --- a/src/views/oneFromanother/exist.vue +++ b/src/views/oneFromanother/exist.vue @@ -1,6 +1,6 @@ <template> - <div class="app-container"> - <div style=""> + <div class="app-container" > + <div v-if="type=='0'" style=""> <Titlename title="录入隐患单页面"></Titlename> <div class="whole-form"> <el-form @@ -64,6 +64,23 @@ </el-form-item> </el-col> </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="检查部门" prop="check_branch"> + <el-select v-model="ruleForm.check_branch" placeholder="请选择" style="width: 100%"> + <el-option + v-for="item in JCBMList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + + </el-col> + </el-row> <el-row> <el-col :span="9"> <el-form-item label="检查人员" prop="check_man"> @@ -76,8 +93,6 @@ </el-form-item> </el-col> </el-row> - - <el-row> <el-col :span="22"> <el-form-item label="行走路线"> @@ -86,17 +101,27 @@ </el-col> </el-row> - <!-- <el-row style="margin-bottom: 20px" v-if="addShow"> + <el-row style="margin-bottom: 20px"> <el-col :span="9"> <el-button type="primary" class="btns" @click="addDanger">新增隐患</el-button> </el-col> - </el-row> --> + </el-row> <el-table :data="tableData" style="width: 100%"> <el-table-column type="index" width="55" align="center" label="序号"></el-table-column> <el-table-column prop="ht_branch" align="center" label="隐患部门"></el-table-column> <el-table-column prop="address" align="center" label="地点"></el-table-column> - <el-table-column prop="ht_content" align="center" label="隐患内容"></el-table-column> + <el-table-column prop="ht_content" align="center" label="隐患内容"> + <template slot-scope="scope"> + <el-popover trigger="hover" placement="top"> + <p>{{ scope.row.ht_content }}</p> + <div slot="reference" class="name-wrapper">{{ + scope.row.ht_content != null && scope.row.ht_content.length > 10 ? scope.row.ht_content.substring(0, 8) + "...." : scope.row.ht_content + }} + </div> + </el-popover> + </template> + </el-table-column> <el-table-column prop="measure" align="center" label="整改措施"></el-table-column> <el-table-column prop="ht_typesub" align="center" label="隐患类别"></el-table-column> <el-table-column prop="dangerousSource" align="center" label="关联危险源"></el-table-column> @@ -112,11 +137,10 @@ <el-button size="mini" @click="editDanger(scope.row, scope.$index)" - >添加 + >编辑 </el-button> <el-button size="mini" - v-if="addShow" @click="deleteDanger(scope.row, scope.$index)" >删除 </el-button> @@ -139,7 +163,54 @@ </el-form> </div> </div> + <div v-else> + <el-table :data="detailTableData" style="width: 100%" > + <el-table-column type="selection" width="55" align="center"></el-table-column> + <el-table-column prop="number" label="编号" align="center" width="120"></el-table-column> + <el-table-column prop="check_branch" label="检查部门" align="center" width="120"></el-table-column> + <el-table-column prop="check_man" label="检查人" align="center" width="120"></el-table-column> + <el-table-column prop="checktype" label="检查类别" align="center"></el-table-column> + <el-table-column label="隐患项目" align="center"> + <el-table-column prop="check_date" label="检查时间" width="120" align="center"></el-table-column> + <el-table-column prop="address" label="地点" align="center"> </el-table-column> + <el-table-column prop="ht_content" label="内容" align="center"> </el-table-column> + <el-table-column prop="ht_typesub" label="类别" align="center"> </el-table-column> + <el-table-column prop="ht_level" label="级别" align="center"> </el-table-column> + </el-table-column> + <el-table-column label="整改计划" align="center"> + <el-table-column prop="measure" label="整改措施" align="center"> </el-table-column> + <el-table-column prop="ht_branch" label="隐患部门" align="center"> </el-table-column> + <el-table-column prop="duty_officer" label="责任人" align="center"> </el-table-column> + <el-table-column prop="alter_time" label="限改时间" width="120" align="center"></el-table-column> + <el-table-column prop="ht_level" label="级别" align="center"> </el-table-column> + </el-table-column> + <el-table-column label="整改情况" align="center"> + <el-table-column prop="ACCOMPLISHTIME" label="完成时间" width="110px" align="center"> </el-table-column> + <el-table-column prop="CALLBACKRESULT" label="复查结果" align="center"> </el-table-column> + <el-table-column prop="CALLBACKPERSON" label="复查人" align="center"> </el-table-column> + <el-table-column prop="CALLBACKTIME" label="复查时间" width="120" align="center"></el-table-column> + </el-table-column> + <el-table-column label="隐患处理状态" align="center"> + <template slot-scope="scope"> + <span v-if="scope.row.step =='1'">初始状态</span> + <span v-if="scope.row.step =='2'">整改中</span> + <span v-if="scope.row.step =='3'">复查中</span> + <span v-if="scope.row.step =='end'">处理结束</span> + </template> + </el-table-column> + <el-table-column prop="DTRisk_bankId" label="是否关联" align="center"> + <template slot-scope="scope"> + <span v-if="scope.row.DTRisk_bankId==0 || scope.row.DTRisk_bankId=='' || scope.row.DTRisk_bankId==null">未关联</span> + <span v-else>已关联</span> + </template> + </el-table-column> + <el-table-column prop="DTRisk_level" label="风险等级" align="center"> </el-table-column> + <el-table-column prop="warningLevel" label="初始警情" align="center"> </el-table-column> + <el-table-column prop="curWarningLevel" label="当前警情" align="center"> </el-table-column> + </el-table> + <el-button style="margin-top: 20px" @click="returnIndex">关闭</el-button> + </div> <el-dialog :title="title" :visible.sync="dialogVisible" @@ -295,23 +366,35 @@ </el-row> </el-form> </el-dialog> - </div> + + </template> <script> -import Titlename from "../../components/Titlename/index.vue"; + import Titlename from "../../components/Titlename/index.vue"; -import {initJCBM ,initYHLX, initBC ,initJCLB ,initYHBM ,initYHJB,initLlr,initReformStatus,initYwks,initWxy} from "@/api/sgyhpczl/initSelect"; -import {saveDanger,initDangerRebound,getDangerInfo,editDanger} from '@/api/sgyhpczl/hiddenDangerRegistration' -import {deepClone} from '@/utils' + import { + initBC, + initJCBM, + initJCLB, + initLlr, + initReformStatus, + initWxy, + initYHBM, + initYHJB, + initYHLX, + initYwks + } from "@/api/sgyhpczl/initSelect"; + import {getPageList,initDangerRebound,saveDanger} from '@/api/sgyhpczl/hiddenDangerRegistration' + import {deepClone} from '@/utils' -export default { + export default { components: { Titlename }, name: "hiddenDangerList", data() { return { - addShow:true, + type: '0', id:'', rowIndex:-1, dangerList:[], @@ -321,6 +404,7 @@ address: [{ required: true, message: '不能为空', trigger: 'blur' },], ht_content: [{ required: true, message: '不能为空', trigger: 'blur' },], ht_typesub: [{ required: true, message: '不能为空', trigger: 'blur' },], + measure: [{ required: true, message: '不能为空', trigger: 'blur' },], DTRisk_bankId: [{ required: true, message: '不能为空', trigger: 'blur' },], ht_level: [{ required: true, message: '不能为空', trigger: 'blur' },], alter_time: [{ required: true, message: '不能为空', trigger: 'blur' },], @@ -341,8 +425,8 @@ statusList:[], YWKSList:[], reboundList:[], - ruleForm: {}, - rules: { + ruleForm: {}, + rules: { check_date: [{ required: true, message: '不能为空', trigger: 'blur' },], check_class: [{ required: true, message: '不能为空', trigger: 'blur' },], check_main_branch: [{ required: true, message: '不能为空', trigger: 'blur' },], @@ -350,9 +434,22 @@ check_man: [{ required: true, message: '不能为空', trigger: 'blur' },], checktype: [{ required: true, message: '不能为空', trigger: 'blur' },], }, - tableData: [], + tableData: [], + paramsData: {},//上个页面参数 + listQuery:{ + page:1, + limit:10, + form:{}, + }, + currentPage: 1, + pageSize: 10, + recordTotal: 0, + detailTableData:[],//隐患详情列表 + beforeData:{}, //上个页面信息 + beforeFlag:true,//上个页面信息保存标志 }; }, + mounted(){ this.initBC() this.initJCLB() @@ -364,23 +461,36 @@ this.initYWKS() this.initWXY() this.initDangerRebound() - this.id = this.$route.query.id; - if( this.id!=null && this.id!=''){ - this.initInfo(); - this.addShow=false + this.type = this.$route.query.type; + if (this.type === '0'){ + this.initInfo(this.$route.query.data); + }else { + this.listQuery.form.jyfsId = this.$route.query.data.id + this.getPageList(); } }, methods: { - async initInfo(){ - var res=await getDangerInfo(this.id) - if (res.data.ok==1){ - this.ruleForm=res.data.data - this.changeJCDW(res.data.data.check_main_branch) - var obj=deepClone(res.data.data) - this.tableData.push(obj) - - } + initInfo(data){ + this.paramsData = this.$route.query.data; + this.ruleForm.jyfsId = data.id; + this.dangerForm.address = data.address; + this.dangerForm.ht_content = data.ht_content; + // this.tableData[0] = { + // address: data.address, + // ht_content: data.ht_content, + // ht_level: data.ht_level, + // }; }, + + // async initInfo(){ + // var res=await getDangerInfo(this.id) + // if (res.data.ok==1){ + // this.ruleForm=res.data.data + // this.changeJCDW(res.data.data.check_main_branch) + // var obj=deepClone(res.data.data) + // this.tableData.push(obj) + // } + // }, initDangerRebound(){ initDangerRebound().then(res=>{ if (res.data.ok==1){ @@ -394,7 +504,9 @@ this.$refs[formName].validate((valid) => { if (valid) { if(this.title=='新增'){ + this.beforeFlag = false; this.tableData.push(this.dangerForm) + console.log(this.tableData) }else { var arr = this.tableData; arr.splice(this.rowIndex, 1, this.dangerForm); @@ -408,9 +520,18 @@ } }); }, + getPageList(){ + this.listQuery.page=1 + getPageList(this.listQuery).then(res=>{ + if (res.data.ok==1) { + this.detailTableData = res.data.data.items + this.recordTotal=res.data.data.total + }else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, deleteDanger(row, index) { - - this.$confirm('确认删除吗', '提示', { confirmButtonText: '确认', cancelButtonText: '取消', @@ -442,7 +563,9 @@ }, addDanger(){ - this.dangerForm={} + if (!this.beforeFlag){ + this.dangerForm={} + } this.title="新增" this.dialogVisible=true }, @@ -552,55 +675,62 @@ returnIndex(){ this.$router.push({ - path:"/hiddenDangerRegistration" + path:"/oneFromanother" }) + }, + judge(obj){ + console.log(obj) + if (obj != null || ('ht_branch' in obj) || ('address' in obj) || ('ht_typesub' in obj) || ('dangerousSource' in obj) + || ('alter_time' in obj) || ('duty_officer' in obj) || ('alter_status' in obj) || ('Review' in obj) || ('DTRisk_bankId' in obj)){ + return true; + }else { + return false; + } }, submitForm(formName) { this.$refs[formName].validate((valid) => { if (valid) { - if(this.tableData==null || this.tableData.length==0){ - this.$message({type:'error', message:"请添加隐患", duration:2000}) - } this.ruleForm.items=this.tableData - if(this.addShow){ + // if(this.addShow){ + console.log(this.ruleForm) saveDanger(this.ruleForm).then(res=>{ if (res.data.ok==1){ - this.$message({type:'success', message:"新增成功", duration:3000}) + this.$message({type:'success', message:"保存成功", duration:3000}) this.$router.push({ - path:"/hiddenDangerRegistration" + path:"/oneFromanother" }) }else { this.$message({type:'error', message:res.data.msg, duration:3000}) } }) - }else { - var param=deepClone(this.ruleForm) - var obj=deepClone(this.tableData[0]) - param.ht_branch=obj.ht_branch - param.address=obj.address - param.ht_content=obj.ht_content - param.measure=obj.measure - param.ht_typesub=obj.ht_typesub - param.DTRisk_bankId=obj.DTRisk_bankId - param.DTRisk_level=obj.mriskLevel - param.dangerousSource=obj.mriskPoint - param.ht_level=obj.ht_level - param.alter_time=obj.alter_time - param.duty_officer=obj.duty_officer - param.alter_status=obj.alter_status - param.Review=obj.Review - param.repeatId=obj.repeatId - editDanger(param).then(res=>{ - if (res.data.ok==1){ - this.$message({type:'success', message:"编辑成功", duration:3000}) - this.$router.push({ - path:"/hiddenDangerRegistration" - }) - }else { - this.$message({type:'error', message:res.data.msg, duration:3000}) - } - }) - } + // }else { + // var param=deepClone(this.ruleForm) + // var obj=deepClone(this.tableData[0]) + // param.ht_branch=obj.ht_branch + // param.address=obj.address + // param.ht_content=obj.ht_content + // param.measure=obj.measure + // param.ht_typesub=obj.ht_typesub + // param.DTRisk_bankId=obj.DTRisk_bankId + // param.DTRisk_level=obj.mriskLevel + // param.dangerousSource=obj.mriskPoint + // param.ht_level=obj.ht_level + // param.alter_time=obj.alter_time + // param.duty_officer=obj.duty_officer + // param.alter_status=obj.alter_status + // param.Review=obj.Review + // param.repeatId=obj.repeatId + // editDanger(param).then(res=>{ + // if (res.data.ok==1){ + // this.$message({type:'success', message:"编辑成功", duration:3000}) + // this.$router.push({ + // path:"/hiddenDangerRegistration" + // }) + // }else { + // this.$message({type:'error', message:res.data.msg, duration:3000}) + // } + // }) + // } diff --git a/src/views/oneFromanother/index.vue b/src/views/oneFromanother/index.vue index e3ada87..6a33880 100644 --- a/src/views/oneFromanother/index.vue +++ b/src/views/oneFromanother/index.vue @@ -2,9 +2,9 @@ <div class="app-container"> <el-form ref="form" :inline="true" class="inquire" :model="listQuery" label-width="80px"> <el-form-item label="下发单位"> - <el-select v-model="listQuery.form.ht_typesub" placeholder="请选择"> + <el-select v-model="listQuery.form.push_branch" placeholder="请选择"> <el-option - v-for="item in YHLXList" + v-for="item in XFDWList" :key="item.value" :label="item.value" :value="item.value"> @@ -12,12 +12,12 @@ </el-select> </el-form-item> <el-form-item label="隐患单位"> - <el-input v-model="listQuery.form.ht_branch" style="width:202px"></el-input> + <el-input v-model="listQuery.form.ht_community" style="width:202px"></el-input> </el-form-item> <el-form-item label="隐患类别"> <el-select v-model="listQuery.form.ht_typesub" placeholder="请选择"> <el-option - v-for="item in YHLXList" + v-for="item in YHLBList" :key="item.value" :label="item.value" :value="item.value"> @@ -38,9 +38,9 @@ <el-input v-model="listQuery.form.address" style="width:202px" placeholder="请输入内容"></el-input> </el-form-item> <el-form-item label="检查类别"> - <el-select v-model="listQuery.form.ht_typesub" placeholder="请选择"> + <el-select v-model="listQuery.form.checktype" placeholder="请选择"> <el-option - v-for="item in YHLXList" + v-for="item in JCLBList" :key="item.value" :label="item.value" :value="item.value"> @@ -71,39 +71,53 @@ </el-form> <el-row class="title-center"> <el-col :span="10"> - <el-radio-group v-model="radio1"> - <el-radio-button label="待自查">待自查</el-radio-button> - <el-radio-button label="已自查">已自查</el-radio-button> - </el-radio-group> + <el-radio-group v-model="listQuery.type" @change="radioChange"> + <el-radio-button label="0">待自查</el-radio-button> + <el-radio-button label="1">已自查</el-radio-button> + </el-radio-group> </el-col> - <el-col :span="14" v-if="radio1=='待自查'" style="text-align:right;"> - <el-button class="btns" type="primary" size="small" @click="sendBath()">管理专业</el-button> - </el-col> - <el-col :span="14" v-if="radio1=='已自查'" style="text-align:right;"> - <el-button class="btns" type="primary" size="small" @click="sendBath()">撤销</el-button> +<!-- <el-col :span="14" v-if="type=='待自查'" style="text-align:right;">--> +<!-- <el-button class="btns" type="primary" size="small" @click="sendBath()">管理专业</el-button>--> +<!-- </el-col>--> + <el-col :span="14" v-if="listQuery.type=='1'" style="text-align:right;"> + <el-button class="btns" type="primary" size="small" @click="revoke()">撤销</el-button> </el-col> </el-row> - <el-table ref="dataTable" :data="tableData" style="width: 100%" @selection-change="handleSelectionChange"> + <el-table + v-loading="listLoading" + :data="tableData" + style="width: 100%" + @selection-change="changeBox"> <el-table-column type="selection" width="55" align="center"></el-table-column> - <el-table-column prop="check_date" label="检查时间" width="120" align="center"> - <template slot-scope="scope"> + <el-table-column prop="check_date" label="检查时间" width="120" :formatter="formatColumnDate" align="center"> + <!-- <template slot-scope="scope"> <label>{{ formatDate(scope.row.check_date)}}</label><br/> <label>{{ scope.row.check_class}}</label> - </template> + </template> --> </el-table-column> - <el-table-column prop="check_branch" label="检查单位" align="center"></el-table-column> + <el-table-column prop="check_main_branch" label="检查单位" align="center"></el-table-column> <el-table-column prop="checktype" label="检查类别" align="center"></el-table-column> - <el-table-column prop="measure" label="被检单位" align="center"></el-table-column> - <el-table-column prop="date" label="隐患类别" align="center"></el-table-column> - <el-table-column prop="DTRisk_level" label="隐患级别" align="center"></el-table-column> - <el-table-column prop="warningLevel" label="隐患地点" align="center"></el-table-column> - <el-table-column prop="curWarningLevel" label="内容" width="200" align="center"></el-table-column> - <el-table-column prop="curWarningLevel" label="下发单位" align="center"></el-table-column> + <el-table-column prop="ht_community" label="被检单位" align="center"></el-table-column> + <el-table-column prop="ht_typesub" label="隐患类别" align="center"></el-table-column> + <el-table-column prop="ht_level" label="隐患级别" align="center"></el-table-column> + <el-table-column prop="address" label="隐患地点" align="center"></el-table-column> + <el-table-column prop="ht_content" label="内容" width="200" align="center"> + <template slot-scope="scope"> + <el-popover trigger="hover" placement="top"> + <p>{{ scope.row.ht_content }}</p> + <div slot="reference" class="name-wrapper">{{ + scope.row.ht_content != null && scope.row.ht_content.length > 10 ? scope.row.ht_content.substring(0, 8) + "...." : scope.row.ht_content + }} + </div> + </el-popover> + </template> + </el-table-column> + <el-table-column prop="push_branch" label="下发单位" align="center"></el-table-column> <el-table-column prop="date" label="流程操作" align="center"> <template slot-scope="scope"> - <el-button @click="handleClick(scope.row)" type="text" size="small">不存在</el-button> - <el-button @click="handleClick(scope.row)" type="text" v-if="radio1=='已自查'" size="small">追查结果</el-button> - <el-button @click="handleClick(scope.row,'存在')" type="text" v-if="radio1=='待自查'" size="small">存在</el-button> + <el-button @click="handleClick(scope.row,'不存在')" v-if="scope.row.jyfsFlag=='1'" type="text" size="small">不存在</el-button> + <el-button @click="handleClick(scope.row)" type="text" v-if="listQuery.type=='0' || scope.row.jyfsFlag=='0'" size="small">存在</el-button> + <el-button @click="handleClick(scope.row)" type="text" v-if="listQuery.type=='1'" size="small">追查结果</el-button> </template> </el-table-column> </el-table> @@ -120,32 +134,288 @@ > </el-pagination> </div> - + <el-dialog :title="selfTitle" :visible.sync="selfInspectVisible" :modal-append-to-body="false" :close-on-click-modal="false" width="600px"> + <el-form ref="selfInspectForm" :rules="selfInspectFormRules" :model="selfInspectForm" label-position="right" label-width="80px"> + <el-form-item label="自查人" prop="markUserName"> + <el-input v-model="selfInspectForm.markUserName" class="analyseUnit_input"></el-input> + </el-form-item> + <el-form-item label="自查时间" prop="markDate"> + <el-col :span="11"> + <el-date-picker type="date" placeholder="选择日期" v-model="selfInspectForm.markDate" + style="width: 100%;" value-format="yyyy-MM-dd"> + </el-date-picker> + </el-col> + </el-form-item> + <el-form-item label="备注" prop="remark"> + <el-input v-model="selfInspectForm.remark" type="textarea" rows="5" class="analyseUnit_input"></el-input> + </el-form-item> + </el-form> + <div align="center"> + <el-button type="primary" v-if="listQuery.type == '0'" @click="submitSelfInspect()">确认</el-button> + <el-button @click="selfInspectVisible = false">关闭</el-button> + </div> + </el-dialog> + </div> </template> <script> + import { getPageList, noExistSave,selfCheckNotInfo, revoke, analogy_export_do} from "@/api/sgyhpczl/oneFromanother" + import {initJCBM, initYHLX, initJCLB, initYHJB} from "@/api/sgyhpczl/initSelect"; + export default{ + name: 'index', data(){ return{ listQuery:{ - form:{} + page:1, + limit:10, + type: 0, + form:{}, }, - radio1:'待自查', + currentPage: 1, + pageSize: 10, + recordTotal: 0, + XFDWList:[], + YHLBList:[], + YHJBList:[], + JCLBList:[], + tableData:[], + selectedList:[], + listLoading: false, + selfInspectVisible: false, + selfInspectForm:{ + id: '', + markUserName:'', + markDate:'', + remark:'', + }, + selfTitle: '', + selfInspectFormRules:{ + markUserName: [{ required: true, message: '自查人不能为空', trigger: 'blur' }], + markDate: [{ required: true, message: '自查时间不能为空', trigger: 'blur' }] + }, } }, + mounted() { + this.getPageList(); + this.initJCLB(); + this.initXFDW(); + this.initYHJB(); + this.initYHLB(); + }, methods:{ - sendBath(){ - this.$router.push({ - path:'/manage' + revoke(){ + if (this.selectedList.length > 1 || this.selectedList.length === 0) { + this.$message({type:'warning', message:'请选择一条记录', duration:3000}) + return + } + this.$confirm('确认撤销吗','提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }).then(()=>{ + revoke(this.selectedList[0].id).then((res)=>{ + if (res.data.ok==1) { + this.getPageList(); + this.$notify({ + title: "成功", + message: "撤销成功", + type: "success", + duration: 2000, + }); + }else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) }) }, handleClick(data,val){ - if(val=='存在'){ - this.$router.push({ - path:'/exist' + if(val=='不存在'){ + this.$nextTick(() =>{ + this.$refs["selfInspectForm"].clearValidate() }) + this.selfInspectForm={id:data.id} + this.selfInspectVisible = true + if (this.listQuery.type == '1'){ + let params = { + id: data.id, + type: 0, + } + selfCheckNotInfo(params).then(res=>{ + if (res.data.ok==1){ + this.selfInspectForm=res.data.data[0] + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + } + return } - } + let puType = '0'; + if (this.listQuery.type=='1' && data.jyfsFlag=='0'){ + puType = '1'; + } + this.$router.push({ + path:'/exist', + query: { + data: data, + type: puType + } + }) + }, + initXFDW(){ + initJCBM(1).then(res=>{ + if (res.data.ok==1){ + this.XFDWList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initYHLB(){ + initYHLX().then(res=>{ + if (res.data.ok==1){ + this.YHLBList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initYHJB(){ + initYHJB().then(res=>{ + if (res.data.ok==1){ + this.YHJBList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initJCLB(){ + initJCLB().then(res=>{ + if (res.data.ok==1){ + this.JCLBList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + checkTime(){ + if(this.listQuery.form.check_dateStart!=null && this.listQuery.form.check_dateStart!=''){ + if(this.listQuery.form.check_dateEnd!=null && this.listQuery.form.check_dateEnd!=''){ + }else { + this.$message({type:'error', message:"请选择检查结束时间", duration:3000}) + return + } + + } + if(this.listQuery.form.check_dateEnd!=null && this.listQuery.form.check_dateEnd!=''){ + if(this.listQuery.form.check_dateStart!=null && this.listQuery.form.check_dateStart!=''){ + }else { + this.$message({type:'error', message:"请选择检查开始时间", duration:3000}) + return + } + } + }, + + //搜索 + getPageList(){ + this.listQuery.page=1 + this.checkTime() + this.listLoading = true + getPageList(this.listQuery).then(res=>{ + this.listLoading = false + if (res.data.ok==1) { + this.tableData = res.data.data.items + this.recordTotal=res.data.data.total + }else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + reset(){ + this.listQuery.form={}; + this.getPageList() + }, + //自查切换 + radioChange(val){ + this.listQuery.type = val; + if (val == '0'){ + this.selfTitle = '填写自查结果' + }else { + this.selfTitle = '查看自查结果' + } + this.getPageList() + }, + changeBox(val){ + this.selectedList = [] + val.forEach((item) => { + this.selectedList.push(item) + }) + }, + handleSizeChange(val){ + this.listQuery.limit = val + this.getPageListForPagination(); + }, + handleCurrentChange(val){ + this.listQuery.page = val + this.getPageListForPagination(); + }, + getPageListForPagination(){ + this.checkTime() + getPageList(this.listQuery).then(res=>{ + if (res.data.ok==1) { + this.tableData = res.data.data.items + this.recordTotal=res.data.data.total + }else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + submitSelfInspect(){ + this.$refs["selfInspectForm"].validate((valid) =>{ + if (valid){ + noExistSave(this.selfInspectForm).then((res)=>{ + if (res.data.ok==1) { + this.$message({type:'success', message:"保存成功", duration:3000}); + this.selfInspectVisible = false + }else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + } + }) + }, + exportData() { + this.listLoading = true + var requestData = JSON.parse(JSON.stringify(this.listQuery)); + //删除分页参数 + this.$delete(requestData, 'page') + this.$delete(requestData, 'limit') + analogy_export_do(requestData).then(res => { + this.listLoading = false + var blob = new Blob([res.data]) + var downloadElement = document.createElement('a') + var href = window.URL.createObjectURL(blob) //创建下载的链接 + downloadElement.href = href + downloadElement.download = '举一反三隐患.xlsx' //下载后文件名 + document.body.appendChild(downloadElement) + downloadElement.click() //点击下载 + document.body.removeChild(downloadElement) //下载完成移除元素 + window.URL.revokeObjectURL(href) //释放掉blob对象 + }).catch(err => { + console.log(err) + }) + }, + //日期格式转换 + formatColumnDate(row, column) { + // 获取单元格数据 + let data = row[column.property] + if (data == null) { + return null + } + let dt = new Date(data) + return dt.getFullYear() + '-' + (dt.getMonth() + 1) + '-' + dt.getDate() + ' ' + }, } } </script> @@ -180,4 +450,4 @@ background-color: #034ea2; background-color: #034ea2; } -</style> \ No newline at end of file +</style> diff --git a/src/views/oneFromanotherN/addDanger.vue b/src/views/oneFromanotherN/addDanger.vue new file mode 100644 index 0000000..61c15fc --- /dev/null +++ b/src/views/oneFromanotherN/addDanger.vue @@ -0,0 +1,359 @@ +<template> + <div class="app-container"> + <div style=""> + <Titlename title="录入举一反三页面"></Titlename> + <div class="whole-form"> + <el-form + :model="ruleForm" + :rules="rules" + ref="ruleForm" + label-width="150px" + class="demo-ruleForm" + style="margin: 0 14% 0 16%"> + <el-row> + <el-col :span="9"> + <el-form-item label="检查时间" prop="check_date"> + <el-date-picker + v-model="ruleForm.check_date" + type="date" + value-format="yyyy-MM-dd" + placeholder="选择日期" + style="width: 100%"> + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9"> + <el-form-item label="检查类别" prop="checktype"> + <el-select v-model="ruleForm.checktype" placeholder="请选择" style="width: 100%"> + <el-option + v-for="item in JCLBList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9" > + <el-form-item label="检查单位" prop="check_main_branch"> + <el-input v-model="ruleForm.check_main_branch" style="width:100%"></el-input> +<!-- <el-select v-model="ruleForm.check_main_branch" placeholder="请选择" @change="changeJCDW" style="width: 100%">--> +<!-- <el-option--> +<!-- v-for="item in JCDWList"--> +<!-- :key="item.label"--> +<!-- :label="item.label"--> +<!-- :value="item.label"--> +<!-- >--> +<!-- </el-option>--> +<!-- </el-select>--> + </el-form-item> + </el-col> + </el-row> + + + <el-row style="margin-bottom: 20px"> + <el-col :span="9"> + <el-button type="primary" class="btns" @click="addDanger()">新增</el-button> + </el-col> + </el-row> + + <el-table :data="tableData" style="width: 100%"> + <el-table-column type="index" width="55" align="center" label="序号"></el-table-column> + <el-table-column prop="address" align="center" label="隐患地点"></el-table-column> + <el-table-column prop="ht_content" align="center" label="隐患内容"></el-table-column> + <el-table-column prop="ht_typesub" align="center" label="隐患类别"></el-table-column> + <el-table-column prop="ht_level" align="center" label="隐患级别"></el-table-column> + <el-table-column prop="time" label="操作" align="center" width="140"> + <template slot-scope="scope"> + <div style="display: flex;align-items: center;flex-direction: row;"> + <el-button size="mini" @click="editDanger(scope.row, scope.$index)"> + 编辑 + </el-button> + <el-button size="mini" @click="deleteDanger(scope.row, scope.$index)"> + 删除 + </el-button> + </div> + </template> + </el-table-column> + </el-table> + <el-row style="margin-top: 20px"> + <el-col :span="22"> + <el-form-item style="text-align: center"> + <el-button type="primary" class="btns" @click="submitForm('ruleForm')"> + 保存 + </el-button> + <el-button @click="closeShow">关闭</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> + </div> + + <el-dialog + :title="title" + :visible.sync="dialogVisible" + :close-on-click-modal="false" + width="40%"> + <el-form ref="form" :rules="dangerRules" :model="dangerForm" label-width="100px"> + <el-row> + <el-col :span="9"> + <el-form-item label="隐患地点" prop="address"> + <el-input v-model="dangerForm.address" rows="3" type="textarea" class="multiline"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="隐患内容" prop="ht_content"> + <el-input v-model="dangerForm.ht_content" rows="3" type="textarea" class="multiline"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + + <el-col :span="9"> + <el-form-item label="隐患类别" prop="ht_typesub"> + <el-select v-model="dangerForm.ht_typesub" placeholder="请选择"> + <el-option + v-for="item in YHLXList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="隐患级别" prop="ht_level"> + <el-select v-model="dangerForm.ht_level" placeholder="请选择"> + <el-option + v-for="item in YHJBList" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item style="text-align: center"> + <el-button type="primary" class="btns" @click="submitDanger('form')"> + 保存 + </el-button> + <el-button @click="dialogVisible=false">关闭</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + </el-dialog> + + </div> +</template> + +<script> +import Titlename from "../../components/Titlename/index.vue"; + +import {initJCBM ,initYHLX,initJCLB,initYHJB,initReformStatus} from "@/api/sgyhpczl/initSelect"; +import {saveDanger,initDangerRebound,getDangerInfo,editDanger} from '@/api/sgyhpczl/hiddenDangerRegistration' +import { save } from '@/api/sgyhpczl/oneFromanotherN' + +import {deepClone} from '@/utils' + +export default { + components: { Titlename }, + name: "hiddenDangerList", + data() { + return { + id:'', + rowIndex:-1, + dangerList:[], + dangerForm:{}, + dangerRules:{ + address: [{ required: true, message: '不能为空', trigger: 'blur' },], + ht_content: [{ required: true, message: '不能为空', trigger: 'blur' },], + ht_typesub: [{ required: true, message: '不能为空', trigger: 'blur' },], + ht_level: [{ required: true, message: '不能为空', trigger: 'blur' },], + }, + title:'新增', + dialogVisible:false, + JCLBList:[], + YHLXList:[], + YHJBList:[], + ruleForm: {}, + rules: { + check_date: [{ required: true, message: '不能为空', trigger: 'blur' },], + check_main_branch: [{ required: true, message: '不能为空', trigger: 'change' },], + checktype: [{ required: true, message: '不能为空', trigger: 'blur' },], + }, + tableData: [], + }; + }, + mounted(){ + this.initJCLB() + this.initYHJB() + this.initYHLX() + }, + methods: { + submitDanger(formName){ + this.$refs[formName].validate((valid) => { + if (valid) { + if(this.title=='新增'){ + this.tableData.push(this.dangerForm) + }else { + var arr = this.tableData; + arr.splice(this.rowIndex, 1, this.dangerForm); + this.tableData = arr; + } + this.dialogVisible=false + + } else { + console.log("error submit!!"); + return false; + } + }); + }, + deleteDanger(row, index) { + this.$confirm('确认删除吗', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }) + .then(() => { + var arr = deepClone(this.tableData); + var brr = []; + for (var i = 0; i < arr.length; i++) { + if (i == index) { + } else { + brr.push(arr[i]); + } + } + this.tableData = deepClone(brr); + //this.tableData.splice(index) + + }) + .catch(error => { + }); + + + }, + editDanger(row, index) { + this.dangerForm = deepClone(row); + this.rowIndex = index; + this.dialogVisible = true; + this.title = '编辑'; + }, + + addDanger(){ + this.dangerForm={} + this.title="新增" + this.dialogVisible=true + }, + changeWxy(e){ + for(var i=0;i<this.dangerList.length;i++){ + if(e==this.dangerList[i].id){ + this.dangerForm.DTRisk_level=this.dangerList[i].mriskLevel + this.dangerForm.dangerousSource=this.dangerList[i].mriskPoint + } + } + }, + initReformStatus(){ + initReformStatus().then(res=>{ + if (res.data.ok==1){ + this.statusList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + changeJCDW(val){ + initJCBM(val).then(res=>{ + if (res.data.ok==1){ + this.JCBMList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initYHLX(){ + initYHLX().then(res=>{ + if (res.data.ok==1){ + this.YHLXList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initYHJB(){ + initYHJB().then(res=>{ + if (res.data.ok==1){ + this.YHJBList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initJCLB(){ + initJCLB().then(res=>{ + if (res.data.ok==1){ + this.JCLBList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + + closeShow(){ + this.$router.push({ + path:"/oneFromanotherN" + }) + }, + submitForm(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + if(this.tableData==null || this.tableData.length==0){ + this.$message({type:'error', message:"请添加隐患", duration:2000}) + } + this.ruleForm.items=this.tableData + save(this.ruleForm).then(res=>{ + if (res.data.ok==1){ + this.$message({type:'success', message:"新增成功", duration:3000}) + this.$router.push({ + path:"/oneFromanotherN" + }) + }else { + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + + } else { + console.log("error submit!!"); + return false; + } + }); + }, + }, +}; +</script> + +<style scoped> +.app-container { + padding: 20px; + height: 850px; + overflow-y: auto; +} + +.app-container /deep/ .box { + padding-top: 0; +} + +/* /deep/ .multiline .el-input__inner { + height: 62px; +} */ + .btns{ + background-color: #034ea2; + border: 1px solid #034ea2; + } +</style> diff --git a/src/views/oneFromanotherN/existN.vue b/src/views/oneFromanotherN/existN.vue index 73cfd78..f31425c 100644 --- a/src/views/oneFromanotherN/existN.vue +++ b/src/views/oneFromanotherN/existN.vue @@ -1,249 +1,455 @@ <template> - <div class="app-container"> - <div style=""> - <Titlename title="录入隐患单页面"></Titlename> - <div class="whole-form"> - <el-form - :model="ruleForm" - :rules="rules" - ref="ruleForm" - label-width="150px" - class="demo-ruleForm" - style="margin: 0 14% 0 16%" - > - <el-row> - <el-col :span="9"> - <el-form-item label="检查时间" prop="check_date"> - <el-date-picker - v-model="ruleForm.check_date" - type="date" - value-format="yyyy-MM-dd" - placeholder="选择日期" - style="width: 100%" + <div class="app-container" > + <div v-if="type=='0'" style=""> + <Titlename title="录入隐患单页面"></Titlename> + <div class="whole-form"> + <el-form + :model="ruleForm" + :rules="rules" + ref="ruleForm" + label-width="150px" + class="demo-ruleForm" + style="margin: 0 14% 0 16%" > - </el-date-picker> - </el-form-item> - </el-col> - <el-col :span="9"> - <el-form-item label="检查类别" prop="checktype"> - <el-select v-model="ruleForm.checktype" placeholder="请选择" style="width: 100%"> - <el-option - v-for="item in JCLBList" - :key="item.value" - :label="item.value" - :value="item.value"> - </el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="9" > - <el-form-item label="检查单位" prop="check_main_branch"> - <el-select v-model="ruleForm.check_main_branch" placeholder="请选择" @change="changeJCDW" style="width: 100%"> - <el-option - v-for="item in JCDWList" - :key="item.label" - :label="item.label" - :value="item.label" - > - </el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> - <!-- <el-row> - <el-col :span="9"> - <el-form-item label="检查人员" prop="check_man"> - <el-input v-model="ruleForm.check_man"></el-input> - </el-form-item> - </el-col> - <el-col :span="9" :offset="4"> - <el-form-item label="陪检人员" prop="acc_man"> - <el-input v-model="ruleForm.acc_man"></el-input> - </el-form-item> - </el-col> - </el-row> --> + <el-row> + <el-col :span="9"> + <el-form-item label="检查时间" prop="check_date"> + <el-date-picker + v-model="ruleForm.check_date" + type="date" + value-format="yyyy-MM-dd" + placeholder="选择日期" + style="width: 100%" + > + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="班次" prop="check_class"> + <el-select v-model="ruleForm.check_class" placeholder="请选择" style="width: 100%"> + <el-option + v-for="item in BCList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="检查类别" prop="checktype"> + <el-select v-model="ruleForm.checktype" placeholder="请选择" style="width: 100%"> + <el-option + v-for="item in JCLBList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="检查单位" prop="check_main_branch"> + <el-select v-model="ruleForm.check_main_branch" placeholder="请选择" @change="changeJCDW" style="width: 100%"> + <el-option + v-for="item in JCDWList" + :key="item.label" + :label="item.label" + :value="item.label" + > + </el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="检查部门" prop="check_branch"> + <el-select v-model="ruleForm.check_branch" placeholder="请选择" style="width: 100%"> + <el-option + v-for="item in JCBMList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="检查人员" prop="check_man"> + <el-input v-model="ruleForm.check_man"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="陪检人员" prop="acc_man"> + <el-input v-model="ruleForm.acc_man"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="行走路线"> + <el-input v-model="ruleForm.route" rows="3" type="textarea" class="multiline"></el-input> + </el-form-item> + </el-col> + </el-row> + + <el-row style="margin-bottom: 20px"> + <el-col :span="9"> + <el-button type="primary" class="btns" @click="addDanger">新增隐患</el-button> + </el-col> + </el-row> + + <el-table :data="tableData" style="width: 100%"> + <el-table-column type="index" width="55" align="center" label="序号"></el-table-column> + <el-table-column prop="ht_branch" align="center" label="隐患部门"></el-table-column> + <el-table-column prop="address" align="center" label="地点"></el-table-column> + <el-table-column prop="ht_content" align="center" label="隐患内容"> + <template slot-scope="scope"> + <el-popover trigger="hover" placement="top"> + <p>{{ scope.row.ht_content }}</p> + <div slot="reference" class="name-wrapper">{{ + scope.row.ht_content != null && scope.row.ht_content.length > 10 ? scope.row.ht_content.substring(0, 8) + "...." : scope.row.ht_content + }} + </div> + </el-popover> + </template> + </el-table-column> + <el-table-column prop="measure" align="center" label="整改措施"></el-table-column> + <el-table-column prop="ht_typesub" align="center" label="隐患类别"></el-table-column> + <el-table-column prop="dangerousSource" align="center" label="关联危险源"></el-table-column> + <el-table-column prop="DTRisk_level" align="center" label="风险等级"></el-table-column> + <el-table-column prop="ht_level" align="center" label="隐患级别"></el-table-column> + <el-table-column prop="alter_time" align="center" label="限改时间"></el-table-column> + <el-table-column prop="duty_officer" align="center" label="责任人"></el-table-column> + <el-table-column prop="alter_status" align="center" label="整改情况"></el-table-column> + <el-table-column prop="Review" align="center" label="业务科室"></el-table-column> + <el-table-column prop="time" label="操作" align="center" width="140"> + <template slot-scope="scope"> + <div style="display: flex;align-items: center;flex-direction: row;"> + <el-button + size="mini" + @click="editDanger(scope.row, scope.$index)" + >编辑 + </el-button> + <el-button + size="mini" + @click="deleteDanger(scope.row, scope.$index)" + >删除 + </el-button> + </div> + </template> + </el-table-column> + </el-table> - <!-- <el-row> - <el-col :span="22"> - <el-form-item label="行走路线"> - <el-input v-model="ruleForm.route" rows="3" type="textarea" class="multiline"></el-input> - </el-form-item> - </el-col> - </el-row> --> + <el-row style="margin-top: 20px"> + <el-col :span="22"> + <el-form-item style="text-align: center"> + <el-button type="primary" class="btns" @click="submitForm('ruleForm')" + >保存</el-button + > + <el-button @click="returnIndex">关闭</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> + </div> + <div v-else> + <el-table :data="detailTableData" style="width: 100%" > + <el-table-column type="selection" width="55" align="center"></el-table-column> + <el-table-column prop="number" label="编号" align="center" width="120"></el-table-column> + <el-table-column prop="check_branch" label="检查部门" align="center" width="120"></el-table-column> + <el-table-column prop="check_man" label="检查人" align="center" width="120"></el-table-column> + <el-table-column prop="checktype" label="检查类别" align="center"></el-table-column> + <el-table-column label="隐患项目" align="center"> + <el-table-column prop="check_date" label="检查时间" width="120" align="center"></el-table-column> + <el-table-column prop="address" label="地点" align="center"> </el-table-column> + <el-table-column prop="ht_content" label="内容" align="center"> </el-table-column> + <el-table-column prop="ht_typesub" label="类别" align="center"> </el-table-column> + <el-table-column prop="ht_level" label="级别" align="center"> </el-table-column> + </el-table-column> + <el-table-column label="整改计划" align="center"> + <el-table-column prop="measure" label="整改措施" align="center"> </el-table-column> + <el-table-column prop="ht_branch" label="隐患部门" align="center"> </el-table-column> + <el-table-column prop="duty_officer" label="责任人" align="center"> </el-table-column> + <el-table-column prop="alter_time" label="限改时间" width="120" align="center"></el-table-column> + <el-table-column prop="ht_level" label="级别" align="center"> </el-table-column> + </el-table-column> + <el-table-column label="整改情况" align="center"> + <el-table-column prop="ACCOMPLISHTIME" label="完成时间" width="110px" align="center"> </el-table-column> + <el-table-column prop="CALLBACKRESULT" label="复查结果" align="center"> </el-table-column> + <el-table-column prop="CALLBACKPERSON" label="复查人" align="center"> </el-table-column> + <el-table-column prop="CALLBACKTIME" label="复查时间" width="120" align="center"></el-table-column> + </el-table-column> + <el-table-column label="隐患处理状态" align="center"> + <template slot-scope="scope"> + <span v-if="scope.row.step =='1'">初始状态</span> + <span v-if="scope.row.step =='2'">整改中</span> + <span v-if="scope.row.step =='3'">复查中</span> + <span v-if="scope.row.step =='end'">处理结束</span> + </template> + </el-table-column> + <el-table-column prop="DTRisk_bankId" label="是否关联" align="center"> + <template slot-scope="scope"> + <span v-if="scope.row.DTRisk_bankId==0 || scope.row.DTRisk_bankId=='' || scope.row.DTRisk_bankId==null">未关联</span> + <span v-else>已关联</span> + </template> + </el-table-column> + <el-table-column prop="DTRisk_level" label="风险等级" align="center"> </el-table-column> + <el-table-column prop="warningLevel" label="初始警情" align="center"> </el-table-column> + <el-table-column prop="curWarningLevel" label="当前警情" align="center"> </el-table-column> + </el-table> - <!-- <el-row style="margin-bottom: 20px" v-if="addShow"> - <el-col :span="9"> - <el-button type="primary" class="btns" @click="addDanger">新增隐患</el-button> - </el-col> - </el-row> --> + <el-button style="margin-top: 20px" @click="returnIndex">关闭</el-button> + </div> + <el-dialog + :title="title" + :visible.sync="dialogVisible" + :close-on-click-modal="false" + width="40%"> + <el-form ref="form" :rules="dangerRules" :model="dangerForm" label-width="100px"> + <el-row> + <el-col :span="9"> + <el-form-item label="隐患部门" prop="ht_branch"> + <el-select v-model="dangerForm.ht_branch" placeholder="请选择"> + <el-option + v-for="item in YHBMList" + :key="item.branch_id" + :label="item.branch_name" + :value="item.branch_name"> + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="地点" prop="address"> + <el-input v-model="dangerForm.address" rows="3" type="textarea" class="multiline"></el-input> + </el-form-item> + </el-col> + </el-row> - <el-table :data="tableData" style="width: 100%"> - <el-table-column type="index" width="55" align="center" label="序号"></el-table-column> - <!-- <el-table-column prop="ht_branch" align="center" label="隐患部门"></el-table-column> --> - <el-table-column prop="address" align="center" label="隐患地点"></el-table-column> - <el-table-column prop="ht_content" align="center" label="隐患内容"></el-table-column> - <!-- <el-table-column prop="measure" align="center" label="整改措施"></el-table-column> --> - <el-table-column prop="ht_typesub" align="center" label="隐患类别"></el-table-column> - <!-- <el-table-column prop="dangerousSource" align="center" label="关联危险源"></el-table-column> - <el-table-column prop="DTRisk_level" align="center" label="风险等级"></el-table-column> --> - <el-table-column prop="ht_level" align="center" label="隐患级别"></el-table-column> - <!-- <el-table-column prop="alter_time" align="center" label="限改时间"></el-table-column> - <el-table-column prop="duty_officer" align="center" label="责任人"></el-table-column> - <el-table-column prop="alter_status" align="center" label="整改情况"></el-table-column> - <el-table-column prop="Review" align="center" label="业务科室"></el-table-column> --> - <el-table-column prop="time" label="操作" align="center" width="140"> - <template slot-scope="scope"> - <div style="display: flex;align-items: center;flex-direction: row;"> - <el-button - size="mini" - @click="editDanger(scope.row, scope.$index)" - >添加 - </el-button> - <el-button - size="mini" - v-if="addShow" - @click="deleteDanger(scope.row, scope.$index)" - >删除 - </el-button> - </div> - </template> - </el-table-column> - </el-table> + <el-row> + <el-col :span="9"> + <el-form-item label="隐患内容" prop="ht_content"> + <el-input v-model="dangerForm.ht_content" rows="3" type="textarea" class="multiline"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="整改措施" prop="measure"> + <el-input v-model="dangerForm.measure" rows="3" type="textarea" class="multiline"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="隐患类别" prop="ht_typesub"> + <el-select v-model="dangerForm.ht_typesub" placeholder="请选择"> + <el-option + v-for="item in YHLXList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="关联危险源" prop="DTRisk_bankId"> + <el-select v-model="dangerForm.DTRisk_bankId" placeholder="请选择" @change="changeWxy" filterable> + <el-option + v-for="item in dangerList" + :key="item.id" + :label="item.mriskPoint" + :value="item.id"> + </el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> - - <el-row style="margin-top: 20px"> - <el-col :span="22"> - <el-form-item style="text-align: center"> - <el-button type="primary" class="btns" @click="submitForm('ruleForm')" - >保存</el-button - > - <el-button @click="returnIndex">关闭</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - </div> + <el-row> + <el-col :span="9"> + <el-form-item label="风险等级" prop="DTRisk_level"> + <el-input v-model="dangerForm.DTRisk_level" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="隐患级别" prop="ht_level"> + <el-select v-model="dangerForm.ht_level" placeholder="请选择"> + <el-option + v-for="item in YHJBList" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="限改时间" prop="alter_time"> + <el-date-picker + v-model="dangerForm.alter_time" + type="date" + value-format="yyyy-MM-dd" + placeholder="选择日期" + style="width: 100%" + > + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="责任人" prop="duty_officer"> + <el-input v-model="dangerForm.duty_officer"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="整改情况" prop="alter_status"> + <el-select v-model="dangerForm.alter_status" placeholder="请选择"> + <el-option + v-for="item in statusList" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="业务科室" prop="Review"> + <el-select v-model="dangerForm.Review" style="width: 100%"> + <el-option + v-for="item in YWKSList" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row v-if="dangerForm.alter_status=='重复反弹隐患'"> + <el-col :span="9"> + <el-form-item label="重复反弹隐患" prop="repeatId"> + <el-select v-model="dangerForm.repeatId" placeholder="请选择"> + <el-option + v-for="item in reboundList" + :key="item.id" + :label="item.content" + :value="item.id"> + </el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item style="text-align: center"> + <el-button type="primary" class="btns" @click="submitDanger('form')" + >保存</el-button + > + <el-button @click="dialogVisible=false">关闭</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + </el-dialog> </div> - <el-dialog - :title="title" - :visible.sync="dialogVisible" - :close-on-click-modal="false" - width="40%"> - <el-form ref="form" :rules="dangerRules" :model="dangerForm" label-width="100px"> - <el-row> - <el-col :span="9"> - <el-form-item label="隐患地点" prop="address"> - <el-input v-model="dangerForm.address" rows="3" type="textarea" class="multiline"></el-input> - </el-form-item> - </el-col> - <el-col :span="9" offset="4"> - <el-form-item label="隐患内容" prop="ht_content"> - <el-input v-model="dangerForm.ht_content" rows="3" type="textarea" class="multiline"></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - - <el-col :span="9"> - <el-form-item label="隐患类别" prop="ht_typesub"> - <el-select v-model="dangerForm.ht_typesub" placeholder="请选择"> - <el-option - v-for="item in YHLXList" - :key="item.value" - :label="item.value" - :value="item.value"> - </el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :span="9" :offset="4"> - <el-form-item label="隐患级别" prop="ht_level"> - <el-select v-model="dangerForm.ht_level" placeholder="请选择"> - <el-option - v-for="item in YHJBList" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="22"> - <el-form-item style="text-align: center"> - <el-button type="primary" class="btns" @click="submitDanger('form')" - >保存</el-button - > - <el-button @click="dialogVisible=false">关闭</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - </el-dialog> - - </div> </template> <script> import Titlename from "../../components/Titlename/index.vue"; -import {initJCBM ,initYHLX, initBC ,initJCLB ,initYHBM ,initYHJB,initLlr,initReformStatus,initYwks,initWxy} from "@/api/sgyhpczl/initSelect"; -import {saveDanger,initDangerRebound,getDangerInfo,editDanger} from '@/api/sgyhpczl/hiddenDangerRegistration' +import { + initBC, + initJCBM, + initJCLB, + initLlr, + initReformStatus, + initWxy, + initYHBM, + initYHJB, + initYHLX, + initYwks +} from "@/api/sgyhpczl/initSelect"; +import {getPageList,initDangerRebound,saveDanger} from '@/api/sgyhpczl/hiddenDangerRegistration' import {deepClone} from '@/utils' export default { - components: { Titlename }, - name: "hiddenDangerList", - data() { - return { - addShow:true, - id:'', - rowIndex:-1, - dangerList:[], - dangerForm:{}, - dangerRules:{ - ht_branch: [{ required: true, message: '不能为空', trigger: 'blur' },], - address: [{ required: true, message: '不能为空', trigger: 'blur' },], - ht_content: [{ required: true, message: '不能为空', trigger: 'blur' },], - ht_typesub: [{ required: true, message: '不能为空', trigger: 'blur' },], - DTRisk_bankId: [{ required: true, message: '不能为空', trigger: 'blur' },], - ht_level: [{ required: true, message: '不能为空', trigger: 'blur' },], - alter_time: [{ required: true, message: '不能为空', trigger: 'blur' },], - alter_status: [{ required: true, message: '不能为空', trigger: 'blur' },], - Review: [{ required: true, message: '不能为空', trigger: 'blur' },], - duty_officer:[{ required: true, message: '不能为空', trigger: 'blur' },] - }, - title:'新增', - dialogVisible:false, - BCList:[], - JCLBList:[], - JCDWList:[{label:"众泰煤焦化",value:0},{label:"上级单位",value:1}], - YHBMList:[], - YHLXList:[], - YHJBList:[], - JCBMList:[], - llrList:[], - statusList:[], - YWKSList:[], - reboundList:[], - ruleForm: {}, - rules: { - check_date: [{ required: true, message: '不能为空', trigger: 'blur' },], - check_class: [{ required: true, message: '不能为空', trigger: 'blur' },], - check_main_branch: [{ required: true, message: '不能为空', trigger: 'blur' },], - check_branch: [{ required: true, message: '不能为空', trigger: 'blur' },], - check_man: [{ required: true, message: '不能为空', trigger: 'blur' },], - checktype: [{ required: true, message: '不能为空', trigger: 'blur' },], - }, - tableData: [], - }; - }, + components: { Titlename }, + name: "hiddenDangerList", + data() { + return { + type: '0', + id:'', + rowIndex:-1, + dangerList:[], + dangerForm:{}, + dangerRules:{ + ht_branch: [{ required: true, message: '不能为空', trigger: 'blur' },], + address: [{ required: true, message: '不能为空', trigger: 'blur' },], + ht_content: [{ required: true, message: '不能为空', trigger: 'blur' },], + ht_typesub: [{ required: true, message: '不能为空', trigger: 'blur' },], + measure: [{ required: true, message: '不能为空', trigger: 'blur' },], + DTRisk_bankId: [{ required: true, message: '不能为空', trigger: 'blur' },], + ht_level: [{ required: true, message: '不能为空', trigger: 'blur' },], + alter_time: [{ required: true, message: '不能为空', trigger: 'blur' },], + alter_status: [{ required: true, message: '不能为空', trigger: 'blur' },], + Review: [{ required: true, message: '不能为空', trigger: 'blur' },], + duty_officer:[{ required: true, message: '不能为空', trigger: 'blur' },] + }, + title:'新增', + dialogVisible:false, + BCList:[], + JCLBList:[], + JCDWList:[{label:"众泰煤焦化",value:0},{label:"上级单位",value:1}], + YHBMList:[], + YHLXList:[], + YHJBList:[], + JCBMList:[], + llrList:[], + statusList:[], + YWKSList:[], + reboundList:[], + ruleForm: {}, + rules: { + check_date: [{ required: true, message: '不能为空', trigger: 'blur' },], + check_class: [{ required: true, message: '不能为空', trigger: 'blur' },], + check_main_branch: [{ required: true, message: '不能为空', trigger: 'blur' },], + check_branch: [{ required: true, message: '不能为空', trigger: 'blur' },], + check_man: [{ required: true, message: '不能为空', trigger: 'blur' },], + checktype: [{ required: true, message: '不能为空', trigger: 'blur' },], + }, + tableData: [], + paramsData: {},//上个页面参数 + listQuery:{ + page:1, + limit:10, + form:{}, + }, + currentPage: 1, + pageSize: 10, + recordTotal: 0, + detailTableData:[],//隐患详情列表 + beforeData:{}, //上个页面信息 + beforeFlag:true,//上个页面信息保存标志 + }; + }, + mounted(){ this.initBC() this.initJCLB() @@ -255,272 +461,305 @@ this.initYWKS() this.initWXY() this.initDangerRebound() - this.id = this.$route.query.id; - if( this.id!=null && this.id!=''){ - this.initInfo(); - this.addShow=false + this.type = this.$route.query.type; + if (this.type === '0'){ + this.initInfo(this.$route.query.data); + }else { + this.listQuery.form.jyfsId = this.$route.query.data.id + this.getPageList(); } }, - methods: { - async initInfo(){ - var res=await getDangerInfo(this.id) - if (res.data.ok==1){ - this.ruleForm=res.data.data - this.changeJCDW(res.data.data.check_main_branch) - var obj=deepClone(res.data.data) - this.tableData.push(obj) + methods: { + initInfo(data){ + this.paramsData = this.$route.query.data; + this.ruleForm.jyfsId = data.id; + this.dangerForm.address = data.address; + this.dangerForm.ht_content = data.ht_content; + // this.tableData[0] = { + // address: data.address, + // ht_content: data.ht_content, + // ht_level: data.ht_level, + // }; + }, - } - }, - initDangerRebound(){ - initDangerRebound().then(res=>{ - if (res.data.ok==1){ - this.reboundList=res.data.data - } else{ - this.$message({type:'error', message:res.data.msg, duration:3000}) - } - }) - }, - submitDanger(formName){ - this.$refs[formName].validate((valid) => { - if (valid) { - if(this.title=='新增'){ - this.tableData.push(this.dangerForm) - }else { - var arr = this.tableData; - arr.splice(this.rowIndex, 1, this.dangerForm); - this.tableData = arr; - } - this.dialogVisible=false - - } else { - console.log("error submit!!"); - return false; - } - }); - }, - deleteDanger(row, index) { - - - this.$confirm('确认删除吗', '提示', { - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning' - }) - .then(() => { - var arr = deepClone(this.tableData); - var brr = []; - for (var i = 0; i < arr.length; i++) { - if (i == index) { - } else { - brr.push(arr[i]); - } - } - this.tableData = deepClone(brr); - //this.tableData.splice(index) - - }) - .catch(error => { - }); - - - }, - editDanger(row, index) { - this.dangerForm = deepClone(row); - this.rowIndex = index; - this.dialogVisible = true; - this.title = '编辑'; - }, - - addDanger(){ - this.dangerForm={} - this.title="新增" - this.dialogVisible=true - }, - changeWxy(e){ - for(var i=0;i<this.dangerList.length;i++){ - if(e==this.dangerList[i].id){ - this.dangerForm.DTRisk_level=this.dangerList[i].mriskLevel - this.dangerForm.dangerousSource=this.dangerList[i].mriskPoint - } - } - }, - initWXY(){ - var param={ - page: 1, - limit: 1000 - } - initWxy(param).then(res=>{ - if (res.data.ok==1){ - this.dangerList=res.data.data.items - } else{ - this.$message({type:'error', message:res.data.msg, duration:3000}) - } - }) - }, - initYWKS(){ - initYwks().then(res=>{ - if (res.data.ok==1){ - this.YWKSList=res.data.data - } else{ - this.$message({type:'error', message:res.data.msg, duration:3000}) - } - }) - }, - initYHBM(){ - initYHBM().then(res=>{ - if (res.data.ok==1){ - this.YHBMList=res.data.data - } else{ - this.$message({type:'error', message:res.data.msg, duration:3000}) - } - }) - }, - initLlr(){ - initLlr().then(res=>{ - if (res.data.ok==1){ - this.llrList=res.data.data - } else{ - this.$message({type:'error', message:res.data.msg, duration:3000}) - } - }) - }, - initReformStatus(){ - initReformStatus().then(res=>{ - if (res.data.ok==1){ - this.statusList=res.data.data - } else{ - this.$message({type:'error', message:res.data.msg, duration:3000}) - } - }) - }, - changeJCDW(val){ - initJCBM(val).then(res=>{ - if (res.data.ok==1){ - this.JCBMList=res.data.data - } else{ - this.$message({type:'error', message:res.data.msg, duration:3000}) - } - }) - }, - initYHLX(){ - initYHLX().then(res=>{ - if (res.data.ok==1){ - this.YHLXList=res.data.data - } else{ - this.$message({type:'error', message:res.data.msg, duration:3000}) - } - }) - }, - initYHJB(){ - initYHJB().then(res=>{ - if (res.data.ok==1){ - this.YHJBList=res.data.data - } else{ - this.$message({type:'error', message:res.data.msg, duration:3000}) - } - }) - }, - initBC(){ - initBC().then(res=>{ - if (res.data.ok==1){ - this.BCList=res.data.data - } else{ - this.$message({type:'error', message:res.data.msg, duration:3000}) - } - }) - }, - initJCLB(){ - initJCLB().then(res=>{ - if (res.data.ok==1){ - this.JCLBList=res.data.data - } else{ - this.$message({type:'error', message:res.data.msg, duration:3000}) - } - }) - }, - - - returnIndex(){ - this.$router.push({ - path:"/hiddenDangerRegistration" - }) - }, - submitForm(formName) { - this.$refs[formName].validate((valid) => { - if (valid) { - if(this.tableData==null || this.tableData.length==0){ - this.$message({type:'error', message:"请添加隐患", duration:2000}) - } - this.ruleForm.items=this.tableData - if(this.addShow){ - saveDanger(this.ruleForm).then(res=>{ - if (res.data.ok==1){ - this.$message({type:'success', message:"新增成功", duration:3000}) - this.$router.push({ - path:"/hiddenDangerRegistration" - }) + // async initInfo(){ + // var res=await getDangerInfo(this.id) + // if (res.data.ok==1){ + // this.ruleForm=res.data.data + // this.changeJCDW(res.data.data.check_main_branch) + // var obj=deepClone(res.data.data) + // this.tableData.push(obj) + // } + // }, + initDangerRebound(){ + initDangerRebound().then(res=>{ + if (res.data.ok==1){ + this.reboundList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + submitDanger(formName){ + this.$refs[formName].validate((valid) => { + if (valid) { + if(this.title=='新增'){ + this.beforeFlag = false; + this.tableData.push(this.dangerForm) + console.log(this.tableData) }else { - this.$message({type:'error', message:res.data.msg, duration:3000}) + var arr = this.tableData; + arr.splice(this.rowIndex, 1, this.dangerForm); + this.tableData = arr; } + this.dialogVisible=false + + } else { + console.log("error submit!!"); + return false; + } + }); + }, + getPageList(){ + this.listQuery.page=1 + getPageList(this.listQuery).then(res=>{ + if (res.data.ok==1) { + this.detailTableData = res.data.data.items + this.recordTotal=res.data.data.total + }else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + deleteDanger(row, index) { + this.$confirm('确认删除吗', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }) + .then(() => { + var arr = deepClone(this.tableData); + var brr = []; + for (var i = 0; i < arr.length; i++) { + if (i == index) { + } else { + brr.push(arr[i]); + } + } + this.tableData = deepClone(brr); + //this.tableData.splice(index) + }) + .catch(error => { + }); + + + }, + editDanger(row, index) { + this.dangerForm = deepClone(row); + this.rowIndex = index; + this.dialogVisible = true; + this.title = '编辑'; + }, + + addDanger(){ + if (!this.beforeFlag){ + this.dangerForm={} + } + this.title="新增" + this.dialogVisible=true + }, + changeWxy(e){ + for(var i=0;i<this.dangerList.length;i++){ + if(e==this.dangerList[i].id){ + this.dangerForm.DTRisk_level=this.dangerList[i].mriskLevel + this.dangerForm.dangerousSource=this.dangerList[i].mriskPoint + } + } + }, + initWXY(){ + var param={ + page: 1, + limit: 1000 + } + initWxy(param).then(res=>{ + if (res.data.ok==1){ + this.dangerList=res.data.data.items + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initYWKS(){ + initYwks().then(res=>{ + if (res.data.ok==1){ + this.YWKSList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initYHBM(){ + initYHBM().then(res=>{ + if (res.data.ok==1){ + this.YHBMList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initLlr(){ + initLlr().then(res=>{ + if (res.data.ok==1){ + this.llrList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initReformStatus(){ + initReformStatus().then(res=>{ + if (res.data.ok==1){ + this.statusList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + changeJCDW(val){ + initJCBM(val).then(res=>{ + if (res.data.ok==1){ + this.JCBMList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initYHLX(){ + initYHLX().then(res=>{ + if (res.data.ok==1){ + this.YHLXList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initYHJB(){ + initYHJB().then(res=>{ + if (res.data.ok==1){ + this.YHJBList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initBC(){ + initBC().then(res=>{ + if (res.data.ok==1){ + this.BCList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initJCLB(){ + initJCLB().then(res=>{ + if (res.data.ok==1){ + this.JCLBList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + + + returnIndex(){ + this.$router.push({ + path:"/oneFromanotherN" + }) + }, + judge(obj){ + console.log(obj) + if (obj != null || ('ht_branch' in obj) || ('address' in obj) || ('ht_typesub' in obj) || ('dangerousSource' in obj) + || ('alter_time' in obj) || ('duty_officer' in obj) || ('alter_status' in obj) || ('Review' in obj) || ('DTRisk_bankId' in obj)){ + return true; }else { - var param=deepClone(this.ruleForm) - var obj=deepClone(this.tableData[0]) - param.ht_branch=obj.ht_branch - param.address=obj.address - param.ht_content=obj.ht_content - param.measure=obj.measure - param.ht_typesub=obj.ht_typesub - param.DTRisk_bankId=obj.DTRisk_bankId - param.DTRisk_level=obj.mriskLevel - param.dangerousSource=obj.mriskPoint - param.ht_level=obj.ht_level - param.alter_time=obj.alter_time - param.duty_officer=obj.duty_officer - param.alter_status=obj.alter_status - param.Review=obj.Review - param.repeatId=obj.repeatId - editDanger(param).then(res=>{ - if (res.data.ok==1){ - this.$message({type:'success', message:"编辑成功", duration:3000}) - this.$router.push({ - path:"/hiddenDangerRegistration" - }) - }else { - this.$message({type:'error', message:res.data.msg, duration:3000}) - } - }) + return false; } + }, + submitForm(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + this.ruleForm.items=this.tableData + // if(this.addShow){ + console.log(this.ruleForm) + saveDanger(this.ruleForm).then(res=>{ + if (res.data.ok==1){ + this.$message({type:'success', message:"保存成功", duration:3000}) + this.$router.push({ + path:"/oneFromanotherN" + }) + }else { + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + // }else { + // var param=deepClone(this.ruleForm) + // var obj=deepClone(this.tableData[0]) + // param.ht_branch=obj.ht_branch + // param.address=obj.address + // param.ht_content=obj.ht_content + // param.measure=obj.measure + // param.ht_typesub=obj.ht_typesub + // param.DTRisk_bankId=obj.DTRisk_bankId + // param.DTRisk_level=obj.mriskLevel + // param.dangerousSource=obj.mriskPoint + // param.ht_level=obj.ht_level + // param.alter_time=obj.alter_time + // param.duty_officer=obj.duty_officer + // param.alter_status=obj.alter_status + // param.Review=obj.Review + // param.repeatId=obj.repeatId + // editDanger(param).then(res=>{ + // if (res.data.ok==1){ + // this.$message({type:'success', message:"编辑成功", duration:3000}) + // this.$router.push({ + // path:"/hiddenDangerRegistration" + // }) + // }else { + // this.$message({type:'error', message:res.data.msg, duration:3000}) + // } + // }) + // } - } else { - console.log("error submit!!"); - return false; - } - }); + } else { + console.log("error submit!!"); + return false; + } + }); + }, }, - }, }; </script> <style scoped> .app-container { - padding: 20px; - height: 850px; - overflow-y: auto; + padding: 20px; + height: 850px; + overflow-y: auto; } .app-container /deep/ .box { - padding-top: 0; + padding-top: 0; } /* /deep/ .multiline .el-input__inner { height: 62px; } */ - .btns{ - background-color: #034ea2; - border: 1px solid #034ea2; - } +.btns{ + background-color: #034ea2; + border: 1px solid #034ea2; +} </style> diff --git a/src/views/oneFromanotherN/index.vue b/src/views/oneFromanotherN/index.vue index 71cb8e6..1e454d1 100644 --- a/src/views/oneFromanotherN/index.vue +++ b/src/views/oneFromanotherN/index.vue @@ -1,28 +1,29 @@ <template> <div class="app-container"> - <el-form ref="form" :inline="true" class="inquire" :model="listQuery" label-width="80px"> - <el-form-item label="下发单位"> - <el-select v-model="listQuery.form.ht_typesub" placeholder="请选择"> - <el-option - v-for="item in YHLXList" - :key="item.value" - :label="item.value" - :value="item.value"> - </el-option> - </el-select> - </el-form-item> + <el-form ref="form" :inline="true" class="inquire" :model="listQuery.form" label-width="80px"> <el-form-item label="隐患单位"> - <el-input v-model="listQuery.form.ht_branch" style="width:202px"></el-input> + <el-input v-model="listQuery.form.check_main_branch" style="width:202px"></el-input> +<!-- <el-select v-model="listQuery.form.check_main_branch" placeholder="请选择">--> +<!-- <el-option--> +<!-- v-for="item in XFDWList"--> +<!-- :key="item.value"--> +<!-- :label="item.value"--> +<!-- :value="item.value">--> +<!-- </el-option>--> +<!-- </el-select>--> </el-form-item> - <el-form-item label="隐患类别"> - <el-select v-model="listQuery.form.ht_typesub" placeholder="请选择"> + <el-form-item label="检查类别"> + <el-select v-model="listQuery.form.checktype" placeholder="请选择"> <el-option - v-for="item in YHLXList" + v-for="item in JCLBList" :key="item.value" :label="item.value" :value="item.value"> </el-option> </el-select> + </el-form-item> + <el-form-item label="被检单位"> + <el-input v-model="listQuery.form.ht_community" style="width:202px"></el-input> </el-form-item> <el-form-item label="隐患级别"> <el-select v-model="listQuery.form.ht_level" placeholder="请选择"> @@ -34,21 +35,24 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="隐患地点"> - <el-input v-model="listQuery.form.address" style="width:202px" placeholder="请输入内容"></el-input> - </el-form-item> - <el-form-item label="检查类别"> + <el-form-item label="隐患类别"> <el-select v-model="listQuery.form.ht_typesub" placeholder="请选择"> <el-option - v-for="item in YHLXList" + v-for="item in YHLBList" :key="item.value" :label="item.value" :value="item.value"> </el-option> </el-select> </el-form-item> + <el-form-item label="隐患地点"> + <el-input v-model="listQuery.form.address" style="width:202px" placeholder="请输入内容"></el-input> + </el-form-item> <el-form-item label="隐患内容"> <el-input v-model="listQuery.form.ht_content" style="width:202px" placeholder="请输入内容"></el-input> + </el-form-item> + <el-form-item label="发送单位" v-if="listQuery.type=='1'"> + <el-input v-model="listQuery.form.workGroupName" style="width:202px" placeholder="请输入内容"></el-input> </el-form-item> <el-form-item label="检查时间"> <el-col :span="11"> @@ -65,93 +69,125 @@ <el-button type="primary" class="btns" size="small" icon="el-icon-search" @click="getPageList()">查询 </el-button> <el-button type="primary" class="btns" size="small" @click="reset()">重置</el-button> - <el-button type="primary" class="btns" size="small" icon="el-icon-upload2" @click="exportData">导出excel - </el-button> </el-form-item> </el-form> <el-row class="title-center"> <el-col :span="10"> - <el-radio-group v-model="radio1"> - <el-radio-button label="待发送">待发送</el-radio-button> - <el-radio-button label="已发送">已发送</el-radio-button> - </el-radio-group> - <el-button class="btns" type="primary" size="small" v-if="table1" @click="handoff(1)">进入自查(3)</el-button> + <el-radio-group v-if="table1" v-model="listQuery.type" @change="typeChange"> + <el-radio-button label="0">待发送</el-radio-button> + <el-radio-button label="1">已发送</el-radio-button> + </el-radio-group> + <el-radio-group v-if="table2" v-model="listQuery.sendType" @change="sendTypeChange"> + <el-radio-button label="0">待自查</el-radio-button> + <el-radio-button label="1">已自查</el-radio-button> + </el-radio-group> + <el-button class="btns" type="primary" size="small" v-if="table1" @click="handoff(1)">进入自查({{selfTotal}})</el-button> <el-button class="btns" type="primary" size="small" v-if="table2" @click="handoff(2)">返回填写</el-button> </el-col> <div v-if="table1"> - <el-col :span="14" style="text-align:right;" v-if="radio1=='待发送'"> - <el-button class="btns" type="primary" size="small" icon="el-icon-upload2" >发送</el-button> - <el-button class="btns" type="primary" size="small" icon="el-icon-plus" @click="sendBath()">添加</el-button> - <el-button size="small" >批量删除</el-button> + <el-col :span="14" style="text-align:right;" v-if="listQuery.type==0"> + <el-button class="btns" type="primary" size="small" icon="el-icon-upload2" @click="openSend()">发送</el-button> + <el-button class="btns" type="primary" size="small" icon="el-icon-plus" @click="addDanger()">添加</el-button> + <el-button size="small" @click="deleteBatch()" >批量删除</el-button> </el-col> - <el-col :span="14" style="text-align:right;" v-if="radio1=='已发送'"> - <el-button class="btns" type="primary" size="small" >收回</el-button> + <el-col :span="14" style="text-align:right;" v-if="listQuery.type==1"> + <el-button class="btns" type="primary" size="small" @click="tackBack()">收回</el-button> </el-col> </div> </el-row> <div v-if="table1"> - <el-table ref="dataTable" v-if="radio1=='待发送'" :data="tableData" style="width: 100%" @selection-change="handleSelectionChange"> - <el-table-column type="selection" width="55" align="center"></el-table-column> - <el-table-column prop="check_date" label="检查时间" width="120" align="center"> - <template slot-scope="scope"> - <label>{{ formatDate(scope.row.check_date)}}</label><br/> - <label>{{ scope.row.check_class}}</label> - </template> + <el-table ref="dataTable" + v-if="listQuery.type==0" + v-loading="loading" + :data="tableData" + style="width: 100%" + @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center"></el-table-column> + <el-table-column prop="check_date" label="检查时间" :formatter="formatColumnDate" width="120" align="center"> +<!-- <template slot-scope="scope">--> +<!-- <label>{{ formatDate(scope.row.check_date)}}</label><br/>--> +<!-- <label>{{ scope.row.check_class}}</label>--> +<!-- </template>--> </el-table-column> - <el-table-column prop="check_branch" label="检查单位" align="center"></el-table-column> + <el-table-column prop="check_main_branch" label="检查单位" align="center"></el-table-column> <el-table-column prop="checktype" label="检查类别" align="center"></el-table-column> <!-- <el-table-column prop="measure" label="被检单位" align="center"></el-table-column> --> - <el-table-column prop="date" label="隐患类别" align="center"></el-table-column> - <el-table-column prop="DTRisk_level" label="隐患级别" align="center"></el-table-column> - <el-table-column prop="warningLevel" label="隐患地点" align="center"></el-table-column> - <el-table-column prop="curWarningLevel" label="隐患内容" width="200" align="center"></el-table-column> + <el-table-column prop="ht_typesub" label="隐患类别" align="center"></el-table-column> + <el-table-column prop="ht_level" label="隐患级别" align="center"></el-table-column> + <el-table-column prop="address" label="隐患地点" align="center"></el-table-column> + <el-table-column prop="ht_content" label="隐患内容" width="200" align="center"> + <template slot-scope="scope"> + <el-popover trigger="hover" placement="top"> + <p>{{ scope.row.ht_content }}</p> + <div slot="reference" class="name-wrapper">{{ + scope.row.ht_content != null && scope.row.ht_content.length > 10 ? scope.row.ht_content.substring(0, 8) + "...." : scope.row.ht_content + }} + </div> + </el-popover> + </template> + </el-table-column> <!-- <el-table-column prop="curWarningLevel" label="下发单位" align="center"></el-table-column> --> <el-table-column prop="date" label="基本操作" align="center"> <template slot-scope="scope"> - <el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button> - <el-button @click="handleClick(scope.row)" type="text" size="small">删除</el-button> + <el-button @click="editDanger(scope.row)" type="text" size="small">编辑</el-button> + <el-button @click="deleteDanger(scope.row)" type="text" size="small">删除</el-button> </template> </el-table-column> </el-table> - <el-table ref="dataTable" v-if="radio1=='已发送'" :data="tableData" style="width: 100%" @selection-change="handleSelectionChange"> + <el-table ref="dataTable" v-if="listQuery.type==1" :data="tableData" style="width: 100%" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55" align="center"></el-table-column> - <el-table-column prop="check_date" label="检查时间" width="120" align="center"> - <template slot-scope="scope"> - <label>{{ formatDate(scope.row.check_date)}}</label><br/> - <label>{{ scope.row.check_class}}</label> - </template> + <el-table-column prop="check_date" label="检查时间" :formatter="formatColumnDate" width="120" align="center"> +<!-- <template slot-scope="scope">--> +<!-- <label>{{ formatDate(scope.row.check_date)}}</label><br/>--> +<!-- <label>{{ scope.row.check_class}}</label>--> +<!-- </template>--> </el-table-column> - <el-table-column prop="check_branch" label="检查单位" align="center"></el-table-column> + <el-table-column prop="check_main_branch" label="检查单位" align="center"></el-table-column> <el-table-column prop="checktype" label="检查类别" align="center"></el-table-column> - <el-table-column prop="measure" label="被检单位" align="center"></el-table-column> - <el-table-column prop="date" label="隐患类别" align="center"></el-table-column> - <el-table-column prop="DTRisk_level" label="隐患级别" align="center"></el-table-column> - <el-table-column prop="warningLevel" label="隐患地点" align="center"></el-table-column> - <el-table-column prop="curWarningLevel" label="隐患内容" width="200" align="center"></el-table-column> - <el-table-column prop="curWarningLevel" label="发送单位" align="center"></el-table-column> - <el-table-column prop="date" label="未自查单位" align="center"></el-table-column> + <el-table-column prop="ht_community" label="被检单位" align="center"></el-table-column> + <el-table-column prop="ht_typesub" label="隐患类别" align="center"></el-table-column> + <el-table-column prop="ht_level" label="隐患级别" align="center"></el-table-column> + <el-table-column prop="address" label="隐患地点" align="center"></el-table-column> + <el-table-column prop="ht_content" label="隐患内容" width="200" align="center"> + <template slot-scope="scope"> + <el-popover trigger="hover" placement="top"> + <p>{{ scope.row.ht_content }}</p> + <div slot="reference" class="name-wrapper">{{ + scope.row.ht_content != null && scope.row.ht_content.length > 10 ? scope.row.ht_content.substring(0, 8) + "...." : scope.row.ht_content + }} + </div> + </el-popover> + </template> + </el-table-column> + <el-table-column prop="workGroupName" label="发送单位" align="center"></el-table-column> + <el-table-column prop="state" label="未自查单位" align="center"></el-table-column> </el-table> </div> - <el-table ref="dataTable" v-if="table2" :data="tableData" style="width: 100%" @selection-change="handleSelectionChange"> + <el-table + ref="dataTable" + v-if="table2" + :data="tableData" style="width: 100%" + @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55" align="center"></el-table-column> - <el-table-column prop="check_date" label="检查时间" width="120" align="center"> - <template slot-scope="scope"> - <label>{{ formatDate(scope.row.check_date)}}</label><br/> - <label>{{ scope.row.check_class}}</label> - </template> + <el-table-column prop="check_date" label="检查时间" :formatter="formatColumnDate" width="120" align="center"> +<!-- <template slot-scope="scope">--> +<!-- <label>{{ formatDate(scope.row.check_date)}}</label><br/>--> +<!-- <label>{{ scope.row.check_class}}</label>--> +<!-- </template>--> </el-table-column> - <el-table-column prop="check_branch" label="检查单位" align="center"></el-table-column> + <el-table-column prop="check_main_branch" label="检查单位" align="center"></el-table-column> <el-table-column prop="checktype" label="检查类别" align="center"></el-table-column> - <el-table-column prop="measure" label="被检单位" align="center"></el-table-column> - <el-table-column prop="date" label="隐患类别" align="center"></el-table-column> - <el-table-column prop="DTRisk_level" label="隐患级别" align="center"></el-table-column> - <el-table-column prop="warningLevel" label="隐患地点" align="center"></el-table-column> - <el-table-column prop="curWarningLevel" label="内容" width="200" align="center"></el-table-column> - <el-table-column prop="curWarningLevel" label="发送单位" align="center"></el-table-column> + <el-table-column prop="ht_community" label="被检单位" align="center"></el-table-column> + <el-table-column prop="ht_typesub" label="隐患类别" align="center"></el-table-column> + <el-table-column prop="ht_level" label="隐患级别" align="center"></el-table-column> + <el-table-column prop="address" label="隐患地点" align="center"></el-table-column> + <el-table-column prop="ht_content" label="内容" width="200" align="center"></el-table-column> + <el-table-column prop="workGroupName" label="发送单位" align="center"></el-table-column> <el-table-column prop="date" label="自查结果" align="center"> <template slot-scope="scope"> - <el-button @click="handleClick(scope.row)" type="text" size="small">不存在</el-button> - <el-button @click="handleClick(scope.row)" type="text" size="small">存在</el-button> + <el-button @click="handleClick(scope.row,'不存在')" type="text" size="small">不存在</el-button> + <el-button @click="handleClick(scope.row)" type="text" v-if="listQuery.sendType=='0'" size="small">存在</el-button> + <el-button @click="handleClick(scope.row)" type="text" v-if="listQuery.sendType=='1'" size="small">追查结果</el-button> </template> </el-table-column> </el-table> @@ -168,44 +204,559 @@ > </el-pagination> </div> - + + <!-- 编辑弹窗 --> + <el-dialog + title="编辑" + :visible.sync="dialogVisible" + :close-on-click-modal="false" + width="40%"> + <el-form ref="form" :rules="dangerRules" :model="dangerForm" label-width="100px"> + <el-row> + <el-col :span="9"> + <el-form-item label="检查时间" prop="check_date"> + <el-date-picker + v-model="dangerForm.check_date" + type="date" + value-format="yyyy-MM-dd" + placeholder="选择日期" + style="width: 100%" + > + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="检查类别" prop="checktype"> + <el-select v-model="dangerForm.checktype" placeholder="请选择"> + <el-option + v-for="item in JCLBList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9" > + <el-form-item label="检查单位" prop="check_main_branch"> + <el-input v-model="dangerForm.check_main_branch" class="multiline"></el-input> + </el-form-item> + </el-col> + </el-row> + + <el-row> + <el-col :span="9"> + <el-form-item label="地点" prop="address"> + <el-input v-model="dangerForm.address" rows="3" type="textarea" class="multiline"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="隐患内容" prop="ht_content"> + <el-input v-model="dangerForm.ht_content" rows="3" type="textarea" class="multiline"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9" > + <el-form-item label="隐患类别" prop="ht_typesub"> + <el-select v-model="dangerForm.ht_typesub" placeholder="请选择"> + <el-option + v-for="item in YHLBList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="隐患级别" prop="ht_level"> + <el-select v-model="dangerForm.ht_level" placeholder="请选择"> + <el-option + v-for="item in YHJBList" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item style="text-align: center"> + <el-button type="primary" class="btns" @click="submitDanger('form')">保存</el-button> + <el-button @click="dialogVisible=false">关闭</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + </el-dialog> + + <!-- 部门弹窗 --> + <el-dialog + title="责任单位" + :visible.sync="bmDialogVisible" + :close-on-click-modal="false" + width="40%"> + <el-form> + <el-row> + <el-checkbox style="width: 80px;height: 30px" + v-for="item in YHBMList" + v-model="checked" + :label="item.branch_id" + :key="item.branch_name"> + {{item.branch_name}} + </el-checkbox> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item style="text-align: center;"> + <el-button class="btn" size="small" type="primary" @click="submitForm()"> + 保存 + </el-button> + <el-button size="small" @click="bmDialogVisible = false">关闭</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + </el-dialog> + + <!-- 不存在弹窗--> + <el-dialog :title="selfTitle" :visible.sync="selfInspectVisible" :modal-append-to-body="false" :close-on-click-modal="false" width="600px"> + <el-form ref="selfInspectForm" :rules="selfInspectFormRules" :model="selfInspectForm" label-position="right" label-width="80px"> + <el-form-item label="自查人" prop="markUserName"> + <el-input v-model="selfInspectForm.markUserName" class="analyseUnit_input"></el-input> + </el-form-item> + <el-form-item label="自查时间" prop="markDate"> + <el-col :span="11"> + <el-date-picker type="date" placeholder="选择日期" v-model="selfInspectForm.markDate" + style="width: 100%;" value-format="yyyy-MM-dd"> + </el-date-picker> + </el-col> + </el-form-item> + <el-form-item label="备注" prop="remark"> + <el-input v-model="selfInspectForm.remark" type="textarea" rows="5" class="analyseUnit_input"></el-input> + </el-form-item> + </el-form> + <div align="center"> + <el-button type="primary" v-if="listQuery.sendType == '0'" @click="submitSelfInspect()">确认</el-button> + <el-button @click="selfInspectVisible = false">关闭</el-button> + </div> + </el-dialog> + </div> </template> <script> +import { getPageList, edit, del, send, revoke} from "@/api/sgyhpczl/oneFromanotherN" +import {noExistSave,selfCheckNotInfo} from "@/api/sgyhpczl/oneFromanother" +import {initJCBM, initYHLX, initJCLB, initYHJB,initYHBM} from "@/api/sgyhpczl/initSelect"; +import {deepClone} from '@/utils' + + export default{ data(){ return{ listQuery:{ - form:{} + page:1, + limit:10, + type: 0, + sendType: 0, + form:{}, }, + selfTotal: 0, radio1:'待发送', table1:true, - table2:false + table2:false, + currentPage: 1, + pageSize: 10, + recordTotal: 0, + YHBMList: [], + bmDialogVisible: false, + checked:[], + requestData:{},//发送提交参数 + XFDWList:[], + YHLBList:[], + YHJBList:[], + JCLBList:[], + tableData:[], + selectedList:[], + loading:false, + listLoading: false, + selfInspectVisible: false, + selfInspectForm:{ + id: '', + markUserName:'', + markDate:'', + remark:'', + }, + selfTitle: '', + selfInspectFormRules:{ + markUserName: [{ required: true, message: '自查人不能为空', trigger: 'blur' }], + markDate: [{ required: true, message: '自查时间不能为空', trigger: 'blur' }] + }, + dialogVisible:false, + dangerForm:{}, + dangerRules:{ + check_date: [{ required: true, message: '不能为空', trigger: 'blur' },], + check_main_branch: [{ required: true, message: '不能为空', trigger: 'blur' },], + checktype: [{ required: true, message: '不能为空', trigger: 'blur' },], + }, + } }, + mounted() { + this.getPageList(); + this.getSelfTotal(); + this.initYHBM(); + this.initJCLB(); + this.initXFDW(); + this.initYHJB(); + this.initYHLB(); + }, methods:{ - sendBath(){ + addDanger(){ this.$router.push({ - path:'/existN' + path:'/addDanger', }) }, handleClick(data,val){ - if(val=='存在'){ - this.$router.push({ - path:'/exist' + if(val=='不存在'){ + this.$nextTick(() =>{ + this.$refs["selfInspectForm"].clearValidate() }) + this.selfInspectForm={id:data.id} + this.selfInspectVisible = true + if (this.listQuery.sendType == '1'){ + let params = { + id: data.id, + type: 1, + } + selfCheckNotInfo(params).then(res=>{ + if (res.data.ok==1){ + this.selfInspectForm=res.data.data[0] + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + } + return } + let puType = '0'; + this.$router.push({ + path:'/existN', + query: { + data: data, + type: puType + } + }) + }, + //不存在提交 + submitSelfInspect(){ + this.$refs["selfInspectForm"].validate((valid) =>{ + if (valid){ + noExistSave(this.selfInspectForm).then((res)=>{ + if (res.data.ok==1) { + this.$message({type:'success', message:"保存成功", duration:3000}); + this.selfInspectVisible = false + }else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + } + }) }, handoff(index){ if(index==1){ this.table1=false this.table2=true + this.listQuery.type = 2 + this.listQuery.sendType = 0 + this.getPageList() }else{ + this.listQuery.type = 0 + this.getPageList() + this.getSelfTotal(); this.table1=true this.table2=false } + }, + initYHBM() { + initYHBM().then(res => { + if (res.data.ok == 1) { + this.YHBMList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initXFDW(){ + initJCBM(1).then(res=>{ + if (res.data.ok==1){ + this.XFDWList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initYHLB(){ + initYHLX().then(res=>{ + if (res.data.ok==1){ + this.YHLBList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initYHJB(){ + initYHJB().then(res=>{ + if (res.data.ok==1){ + this.YHJBList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initJCLB(){ + initJCLB().then(res=>{ + if (res.data.ok==1){ + this.JCLBList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + checkTime(){ + if(this.listQuery.form.check_dateStart!=null && this.listQuery.form.check_dateStart!=''){ + if(this.listQuery.form.check_dateEnd!=null && this.listQuery.form.check_dateEnd!=''){ + }else { + this.$message({type:'error', message:"请选择检查结束时间", duration:3000}) + return + } + + } + }, + //搜索 + getPageList(){ + this.listQuery.page=1 + this.checkTime() + this.loading=true + getPageList(this.listQuery).then(res=>{ + this.loading=false + if (res.data.ok==1) { + this.tableData = res.data.data.items + this.recordTotal=res.data.data.total + }else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + //获取待自查数量 + getSelfTotal(){ + if (this.listQuery.type != '2'){ + let query = { + page: 1, + sendType: 0, + type: 2, + form:{}, + }; + getPageList(query).then(res=>{ + if (res.data.ok==1) { + this.selfTotal=res.data.data.total + }else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + } + }, + //重置 + reset(){ + this.listQuery.form={}; + this.getPageList() + }, + handleSizeChange(val){ + this.listQuery.limit = val + this.getPageListForPagination(); + }, + handleCurrentChange(val){ + this.listQuery.page = val + this.getPageListForPagination(); + }, + getPageListForPagination(){ + this.checkTime() + getPageList(this.listQuery).then(res=>{ + if (res.data.ok==1) { + this.tableData = res.data.data.items + this.recordTotal=res.data.data.total + }else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + typeChange(val){ + this.listQuery.type = val; + this.getPageList() + }, + sendTypeChange(val){ + this.listQuery.sendType = val; + this.getPageList() + }, + handleSelectionChange(val){ + this.selectedList = [] + val.forEach((item) => { + this.selectedList.push(item) + }) + }, + //日期格式转换 + formatColumnDate(row, column) { + // 获取单元格数据 + let data = row[column.property] + if (data == null) { + return null + } + let dt = new Date(data) + return dt.getFullYear() + '-' + (dt.getMonth() + 1) + '-' + dt.getDate() + ' ' + }, + editDanger(row, index) { + this.dangerForm = deepClone(row); + this.rowIndex = index; + this.dialogVisible = true; + }, + //编辑提交 + submitDanger(formName){ + this.$refs[formName].validate((valid) => { + if (valid) { + edit(this.dangerForm).then(res=>{ + if (res.data.ok==1) { + this.dialogVisible=false + this.$message({type:'success', message:res.data.msg, duration:3000}) + this.getPageList() + }else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + } else { + console.log("error submit!!"); + return false; + } + }); + }, + deleteBatch() { + if (this.selectedList == null || this.selectedList.length == 0) { + this.$message({type: 'warning', message: '至少选中一条数据', duration: 3000}) + return + } + var ids = this.selectedList.map((obj) => { + return obj.id + }).join(",") + this.$confirm('确认删除吗', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + del(ids).then(() => { + this.getPageList() + this.$notify({ + title: "成功", + message: "删除成功", + type: "success", + duration: 2000, + }); + }); + }) + .catch(error => { + }); + }, + deleteDanger(row) { + this.$confirm('确认删除吗', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + console.log(row.id) + del(row.id).then(() => { + this.getPageList() + this.$notify({ + title: "成功", + message: "删除成功", + type: "success", + duration: 2000, + }); + }); + }).catch(error => { + }); + }, + //发送提交 + submitForm() { + if (this.checked.length == 0) { + this.$message({ + type: 'warning', + message: '请勾选需要发送的部门!' + }); + return; + } + this.requestData.branchIds = this.checked.join(";"); + send(this.requestData).then(res => { + if (res.data.ok) { + this.$message({ + type: 'success', + message: res.data.msg + }); + this.bmDialogVisible = false; + this.getPageList(); + } else { + this.$message({ + type: 'error', + message: res.data.msg + }); + } + }) + }, + openSend() { + if (this.selectedList.length != 1) { + this.$message({ + type: 'warning', + message: '请选择一条数据!' + }); + return false; + } else { + this.requestData.id = this.selectedList[0].id; + this.bmDialogVisible = true; + } + }, + tackBack(){ + if (this.selectedList.length != 1) { + this.$message({ + type: 'warning', + message: '请选择一条数据!' + }); + return false; + }else { + this.$confirm('确认收回吗', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + let data = { + id: this.selectedList[0].id + } + revoke(data).then(() => { + this.getPageList() + this.$notify({ + title: "成功", + message: "收回成功", + type: "success", + duration: 2000, + }); + }); + }).catch(error => { + }); + } } + } } </script> @@ -240,4 +791,4 @@ background-color: #034ea2; background-color: #034ea2; } -</style> \ No newline at end of file +</style> diff --git a/src/views/safetyHazardAccount/Dualbase.vue b/src/views/safetyHazardAccount/Dualbase.vue new file mode 100644 index 0000000..36e8cf4 --- /dev/null +++ b/src/views/safetyHazardAccount/Dualbase.vue @@ -0,0 +1,760 @@ +<template> + <div class="app-container"> + <div style=""> + <Titlename title="双基考核"></Titlename> + <div class="whole-form"> + <el-form + :model="ruleForm" + :rules="rules" + ref="ruleForm" + label-width="150px" + class="demo-ruleForm" + style="margin: 0 10% 0 10%" + > + <el-row> + <el-col :span="9"> + <el-form-item label="年月" prop="check_date"> + <el-date-picker + v-model="ruleForm.check_date" + type="date" + value-format="yyyy-MM-dd" + placeholder="选择日期" + style="width: 100%" + > + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="3"> + <el-form-item label="考核对象" prop="check_class"> + <el-select + v-model="ruleForm.check_class" + placeholder="请选择" + style="width: 100%" + > + <el-option + v-for="item in BCList" + :key="item.value" + :label="item.value" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="3"> + <span + style=" + font-size: 14px; + text-align: center; + padding: 0px 8px; + line-height: 36px; + " + >查看双击考核标准</span + > + </el-col> + </el-row> + <!-- <el-row> + <el-col :span="9"> + <el-form-item label="检查类别" prop="checktype"> + <el-select v-model="ruleForm.checktype" placeholder="请选择" style="width: 100%"> + <el-option + v-for="item in JCLBList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="检查单位" prop="check_main_branch"> + <el-select v-model="ruleForm.check_main_branch" placeholder="请选择" @change="changeJCDW" style="width: 100%"> + <el-option + v-for="item in JCDWList" + :key="item.label" + :label="item.label" + :value="item.label" + > + </el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="深入现场情况" prop="check_branch"> + <el-select v-model="ruleForm.check_branch" placeholder="请选择" style="width: 100%"> + <el-option + v-for="item in JCBMList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="深入现场人员" prop="check_man"> + <el-input v-model="ruleForm.check_man"></el-input> + </el-form-item> + </el-col> + </el-row> --> + + <el-row> + <el-col :span="9"> + <el-form-item label="扣分" prop="check_man"> + <el-input v-model="ruleForm.check_man"></el-input> + </el-form-item> + </el-col> + </el-row> + + <el-row> + <el-col :span="21"> + <el-form-item label="双击考核标准"> + <el-input + v-model="ruleForm.route" + rows="3" + type="textarea" + class="multiline" + ></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="21"> + <el-form-item label="扣分原因"> + <el-input + v-model="ruleForm.route" + rows="3" + type="textarea" + class="multiline" + ></el-input> + </el-form-item> + </el-col> + </el-row> + + <el-row class="title-center" style="margin-bottom: 20px" v-if="addShow"> + <el-col :span="14"> + <el-radio-group v-model="radio1"> + <el-radio-button label="2022年06月">2022年06月</el-radio-button> + <el-radio-button label="2022年05月">2022年05月</el-radio-button> + <el-radio-button label="2022年04月">2022年04月</el-radio-button> + <el-radio-button label="2022年03月">2022年03月</el-radio-button> + <el-radio-button label="2022年02月">2022年02月</el-radio-button> + <el-radio-button label="2022年01月">2022年01月</el-radio-button> + </el-radio-group> + </el-col> + <el-col :span="6"> + <el-row> + <el-col :span="6"><span style="font-size:14px;font-weight: bold;line-height:36px;color:#606266;">请选择年月</span></el-col> + <el-col :span="18"> + <el-date-picker + v-model="ruleForm.check_date" + type="date" + value-format="yyyy-MM-dd" + placeholder="选择日期" + style="width: 100%" + > + </el-date-picker> + </el-col> + </el-row> + </el-col> + <el-col :span="4" style="text-align:right"> + <el-button type="primary" class="btns" size="small" @click="addDanger" + >编辑</el-button + > + <el-button type="primary" class="btns" size="small" @click="jump()" + >本单位结果</el-button + > + </el-col> + </el-row> + + <el-row> + <el-table :data="tableData" style="width: 100%"> + <el-table-column + type="index" + width="55" + align="center" + label="序号" + ></el-table-column> + <!-- <el-table-column prop="ht_branch" align="center" label="隐患部门"></el-table-column> --> + <el-table-column + prop="address" + align="center" + label="考核对象" + ></el-table-column> + <el-table-column + prop="ht_content" + align="center" + label="双击考核标准" + ></el-table-column> + <el-table-column + prop="measure" + align="center" + label="扣分" + ></el-table-column> + <el-table-column + prop="ht_typesub" + align="center" + label="扣分原因" + ></el-table-column> + <el-table-column + prop="dangerousSource" + align="center" + label="创建日期" + ></el-table-column> + <el-table-column prop="time" label="操作" align="center" width="140"> + <template slot-scope="scope"> + <div style="display: flex;align-items: center;flex-direction: row;"> + <el-button + size="mini" + @click="editDanger(scope.row, scope.$index)" + >编辑 + </el-button> + <el-button + size="mini" + v-if="addShow" + @click="deleteDanger(scope.row, scope.$index)" + >删除 + </el-button> + </div> + </template> + </el-table-column> + </el-table> + </el-row> + + <el-row style="margin-top: 20px"> + <el-col :span="22"> + <el-form-item style="text-align: center"> + <el-button + type="primary" + class="btns" + @click="submitForm('ruleForm')" + >保存</el-button + > + <el-button @click="returnIndex">关闭</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> + </div> + + <el-dialog + :title="title" + :visible.sync="dialogVisible" + :close-on-click-modal="false" + width="40%" + > + <el-form + ref="form" + :rules="dangerRules" + :model="dangerForm" + label-width="110px" + > + <el-row> + <el-col :span="9"> + <el-form-item label="考核对象" prop="ht_typesub"> + <el-input v-model="dangerForm.duty_officer"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="扣分" prop="DTRisk_bankId"> + <el-input v-model="dangerForm.duty_officer"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="创建日期" prop="alter_time"> + <el-date-picker + v-model="dangerForm.alter_time" + type="date" + value-format="yyyy-MM-dd" + placeholder="选择日期" + style="width: 100%" + > + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + </el-col> + </el-row> + + <el-row> + <el-col :span="9"> + <el-form-item label="双基考核标准" prop="ht_content"> + <el-input + v-model="dangerForm.ht_content" + rows="3" + type="textarea" + class="multiline" + ></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="扣分原因" prop="measure"> + <el-input + v-model="dangerForm.measure" + rows="3" + type="textarea" + class="multiline" + ></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item style="text-align: center"> + <el-button + type="primary" + class="btns" + @click="submitDanger('form')" + >保存</el-button + > + <el-button @click="dialogVisible = false">关闭</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + </el-dialog> + </div> +</template> + +<script> +import Titlename from "../../components/Titlename/index.vue"; + +import { + initJCBM, + initYHLX, + initBC, + initJCLB, + initYHBM, + initYHJB, + initLlr, + initReformStatus, + initYwks, + initWxy, +} from "@/api/sgyhpczl/initSelect"; +import { + saveDanger, + initDangerRebound, + getDangerInfo, + editDanger, +} from "@/api/sgyhpczl/hiddenDangerRegistration"; +import { deepClone } from "@/utils"; + +export default { + components: { Titlename }, + name: "hiddenDangerList", + data() { + return { + radio1:"2022年06月", + addShow: true, + id: "", + rowIndex: -1, + dangerList: [], + dangerForm: {}, + dangerRules: { + ht_branch: [{ required: true, message: "不能为空", trigger: "blur" }], + address: [{ required: true, message: "不能为空", trigger: "blur" }], + ht_content: [{ required: true, message: "不能为空", trigger: "blur" }], + ht_typesub: [{ required: true, message: "不能为空", trigger: "blur" }], + DTRisk_bankId: [ + { required: true, message: "不能为空", trigger: "blur" }, + ], + ht_level: [{ required: true, message: "不能为空", trigger: "blur" }], + alter_time: [{ required: true, message: "不能为空", trigger: "blur" }], + alter_status: [ + { required: true, message: "不能为空", trigger: "blur" }, + ], + Review: [{ required: true, message: "不能为空", trigger: "blur" }], + duty_officer: [ + { required: true, message: "不能为空", trigger: "blur" }, + ], + }, + title: "新增", + dialogVisible: false, + BCList: [], + JCLBList: [], + JCDWList: [ + { label: "众泰煤焦化", value: 0 }, + { label: "上级单位", value: 1 }, + ], + YHBMList: [], + YHLXList: [], + YHJBList: [], + JCBMList: [], + llrList: [], + statusList: [], + YWKSList: [], + reboundList: [], + ruleForm: {}, + rules: { + check_date: [{ required: true, message: "不能为空", trigger: "blur" }], + check_class: [{ required: true, message: "不能为空", trigger: "blur" }], + check_main_branch: [ + { required: true, message: "不能为空", trigger: "blur" }, + ], + check_branch: [ + { required: true, message: "不能为空", trigger: "blur" }, + ], + check_man: [{ required: true, message: "不能为空", trigger: "blur" }], + checktype: [{ required: true, message: "不能为空", trigger: "blur" }], + }, + tableData: [], + }; + }, + mounted() { + this.initBC(); + this.initJCLB(); + this.initYHJB(); + this.initYHLX(); + //this.initLlr() + this.initReformStatus(); + this.initYHBM(); + this.initYWKS(); + this.initWXY(); + this.initDangerRebound(); + this.id = this.$route.query.id; + if (this.id != null && this.id != "") { + this.initInfo(); + this.addShow = false; + } + }, + methods: { + async initInfo() { + var res = await getDangerInfo(this.id); + if (res.data.ok == 1) { + this.ruleForm = res.data.data; + this.changeJCDW(res.data.data.check_main_branch); + var obj = deepClone(res.data.data); + this.tableData.push(obj); + } + }, + initDangerRebound() { + initDangerRebound().then((res) => { + if (res.data.ok == 1) { + this.reboundList = res.data.data; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + submitDanger(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + if (this.title == "新增") { + this.tableData.push(this.dangerForm); + } else { + var arr = this.tableData; + arr.splice(this.rowIndex, 1, this.dangerForm); + this.tableData = arr; + } + this.dialogVisible = false; + } else { + console.log("error submit!!"); + return false; + } + }); + }, + deleteDanger(row, index) { + this.$confirm("确认删除吗", "提示", { + confirmButtonText: "确认", + cancelButtonText: "取消", + type: "warning", + }) + .then(() => { + var arr = deepClone(this.tableData); + var brr = []; + for (var i = 0; i < arr.length; i++) { + if (i == index) { + } else { + brr.push(arr[i]); + } + } + this.tableData = deepClone(brr); + //this.tableData.splice(index) + }) + .catch((error) => {}); + }, + editDanger(row, index) { + this.dangerForm = deepClone(row); + this.rowIndex = index; + this.dialogVisible = true; + this.title = "编辑"; + }, + + addDanger() { + this.dangerForm = {}; + this.title = "新增"; + this.dialogVisible = true; + }, + changeWxy(e) { + for (var i = 0; i < this.dangerList.length; i++) { + if (e == this.dangerList[i].id) { + this.dangerForm.DTRisk_level = this.dangerList[i].mriskLevel; + this.dangerForm.dangerousSource = this.dangerList[i].mriskPoint; + } + } + }, + initWXY() { + var param = { + page: 1, + limit: 1000, + }; + initWxy(param).then((res) => { + if (res.data.ok == 1) { + this.dangerList = res.data.data.items; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + initYWKS() { + initYwks().then((res) => { + if (res.data.ok == 1) { + this.YWKSList = res.data.data; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + initYHBM() { + initYHBM().then((res) => { + if (res.data.ok == 1) { + this.YHBMList = res.data.data; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + initLlr() { + initLlr().then((res) => { + if (res.data.ok == 1) { + this.llrList = res.data.data; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + initReformStatus() { + initReformStatus().then((res) => { + if (res.data.ok == 1) { + this.statusList = res.data.data; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + changeJCDW(val) { + initJCBM(val).then((res) => { + if (res.data.ok == 1) { + this.JCBMList = res.data.data; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + initYHLX() { + initYHLX().then((res) => { + if (res.data.ok == 1) { + this.YHLXList = res.data.data; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + initYHJB() { + initYHJB().then((res) => { + if (res.data.ok == 1) { + this.YHJBList = res.data.data; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + initBC() { + initBC().then((res) => { + if (res.data.ok == 1) { + this.BCList = res.data.data; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + initJCLB() { + initJCLB().then((res) => { + if (res.data.ok == 1) { + this.JCLBList = res.data.data; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + + returnIndex() { + this.$router.push({ + path: "/hiddenDangerRegistration", + }); + }, + submitForm(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + if (this.tableData == null || this.tableData.length == 0) { + this.$message({ + type: "error", + message: "请添加隐患", + duration: 2000, + }); + } + this.ruleForm.items = this.tableData; + if (this.addShow) { + saveDanger(this.ruleForm).then((res) => { + if (res.data.ok == 1) { + this.$message({ + type: "success", + message: "新增成功", + duration: 3000, + }); + this.$router.push({ + path: "/hiddenDangerRegistration", + }); + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + } else { + var param = deepClone(this.ruleForm); + var obj = deepClone(this.tableData[0]); + param.ht_branch = obj.ht_branch; + param.address = obj.address; + param.ht_content = obj.ht_content; + param.measure = obj.measure; + param.ht_typesub = obj.ht_typesub; + param.DTRisk_bankId = obj.DTRisk_bankId; + param.DTRisk_level = obj.mriskLevel; + param.dangerousSource = obj.mriskPoint; + param.ht_level = obj.ht_level; + param.alter_time = obj.alter_time; + param.duty_officer = obj.duty_officer; + param.alter_status = obj.alter_status; + param.Review = obj.Review; + param.repeatId = obj.repeatId; + editDanger(param).then((res) => { + if (res.data.ok == 1) { + this.$message({ + type: "success", + message: "编辑成功", + duration: 3000, + }); + this.$router.push({ + path: "/hiddenDangerRegistration", + }); + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + } + } else { + console.log("error submit!!"); + return false; + } + }); + }, + jump(){ + this.$router.push({ + path:"/DualbaseLost" + }) + } + }, +}; +</script> + +<style scoped> +.app-container { + padding: 20px; + height: 850px; + overflow-y: auto; +} + +.app-container /deep/ .box { + padding-top: 0; +} + +/* /deep/ .multiline .el-input__inner { + height: 62px; +} */ +.btns { + background-color: #034ea2; + border: 1px solid #034ea2; +} + .title-center /deep/ .el-radio-button:first-child .el-radio-button__inner { + border: none; +} + +.title-center /deep/ .el-radio-button__inner { + border: none; + border-radius: 0px; +} + +.title-center /deep/ .el-radio-button__orig-radio:checked + .el-radio-button__inner { + background-color: #034ea2; + background-color: #034ea2; +} +.title-center /deep/ .el-radio-button--medium .el-radio-button__inner { + padding: 11px 20px; +} +</style> \ No newline at end of file diff --git a/src/views/safetyHazardAccount/DualbaseLost.vue b/src/views/safetyHazardAccount/DualbaseLost.vue new file mode 100644 index 0000000..44010aa --- /dev/null +++ b/src/views/safetyHazardAccount/DualbaseLost.vue @@ -0,0 +1,554 @@ +<template> + <div class="app-container"> + <div style=""> + <Titlename title="双基考核"></Titlename> + <div class="whole-form"> + <el-form + :model="ruleForm" + :rules="rules" + ref="ruleForm" + label-width="150px" + class="demo-ruleForm" + style="margin: 0 10% 0 10%" + > + <el-row class="title-center" style="margin-bottom: 20px" v-if="addShow"> + <el-col :span="14"> + <el-radio-group v-model="radio1"> + <el-radio-button label="2022年06月">2022年06月</el-radio-button> + <el-radio-button label="2022年05月">2022年05月</el-radio-button> + <el-radio-button label="2022年04月">2022年04月</el-radio-button> + <el-radio-button label="2022年03月">2022年03月</el-radio-button> + <el-radio-button label="2022年02月">2022年02月</el-radio-button> + <el-radio-button label="2022年01月">2022年01月</el-radio-button> + </el-radio-group> + </el-col> + <el-col :span="6"> + <el-row> + <el-col :span="6"><span style="font-size:14px;font-weight: bold;line-height:36px;color:#606266;">请选择年月</span></el-col> + <el-col :span="18"> + <el-date-picker + v-model="ruleForm.check_date" + type="date" + value-format="yyyy-MM-dd" + placeholder="选择日期" + style="width: 100%" + > + </el-date-picker> + </el-col> + </el-row> + </el-col> + <!-- <el-col :span="4" style="text-align:right"> + <el-button type="primary" class="btns" size="small" @click="addDanger" + >编辑</el-button + > + <el-button type="primary" class="btns" size="small" @click="addDanger" + >本单位结果</el-button + > + </el-col> --> + </el-row> + + <el-row> + <el-table :data="tableData" style="width: 100%"> + <el-table-column + type="index" + width="55" + align="center" + label="序号" + ></el-table-column> + <!-- <el-table-column prop="ht_branch" align="center" label="隐患部门"></el-table-column> --> + <el-table-column + prop="address" + align="center" + label="考核对象" + ></el-table-column> + <el-table-column + prop="ht_content" + align="center" + label="双击考核标准" + ></el-table-column> + <el-table-column + prop="measure" + align="center" + label="扣分" + ></el-table-column> + <el-table-column + prop="ht_typesub" + align="center" + label="扣分原因" + ></el-table-column> + <el-table-column + prop="dangerousSource" + align="center" + label="创建日期" + ></el-table-column> + <el-table-column prop="time" label="操作" align="center" width="140"> + <template slot-scope="scope"> + <div style="display: flex;align-items: center;flex-direction: row;"> + <el-button + size="mini" + @click="editDanger(scope.row, scope.$index)" + >编辑 + </el-button> + <el-button + size="mini" + v-if="addShow" + @click="deleteDanger(scope.row, scope.$index)" + >删除 + </el-button> + </div> + </template> + </el-table-column> + </el-table> + </el-row> + + <!-- <el-row style="margin-top: 20px"> + <el-col :span="22"> + <el-form-item style="text-align: center"> + <el-button + type="primary" + class="btns" + @click="submitForm('ruleForm')" + >保存</el-button + > + <el-button @click="returnIndex">关闭</el-button> + </el-form-item> + </el-col> + </el-row> --> + </el-form> + </div> + </div> + </div> +</template> + +<script> +import Titlename from "../../components/Titlename/index.vue"; + +import { + initJCBM, + initYHLX, + initBC, + initJCLB, + initYHBM, + initYHJB, + initLlr, + initReformStatus, + initYwks, + initWxy, +} from "@/api/sgyhpczl/initSelect"; +import { + saveDanger, + initDangerRebound, + getDangerInfo, + editDanger, +} from "@/api/sgyhpczl/hiddenDangerRegistration"; +import { deepClone } from "@/utils"; + +export default { + components: { Titlename }, + name: "hiddenDangerList", + data() { + return { + radio1:"2022年06月", + addShow: true, + id: "", + rowIndex: -1, + dangerList: [], + dangerForm: {}, + dangerRules: { + ht_branch: [{ required: true, message: "不能为空", trigger: "blur" }], + address: [{ required: true, message: "不能为空", trigger: "blur" }], + ht_content: [{ required: true, message: "不能为空", trigger: "blur" }], + ht_typesub: [{ required: true, message: "不能为空", trigger: "blur" }], + DTRisk_bankId: [ + { required: true, message: "不能为空", trigger: "blur" }, + ], + ht_level: [{ required: true, message: "不能为空", trigger: "blur" }], + alter_time: [{ required: true, message: "不能为空", trigger: "blur" }], + alter_status: [ + { required: true, message: "不能为空", trigger: "blur" }, + ], + Review: [{ required: true, message: "不能为空", trigger: "blur" }], + duty_officer: [ + { required: true, message: "不能为空", trigger: "blur" }, + ], + }, + title: "新增", + dialogVisible: false, + BCList: [], + JCLBList: [], + JCDWList: [ + { label: "众泰煤焦化", value: 0 }, + { label: "上级单位", value: 1 }, + ], + YHBMList: [], + YHLXList: [], + YHJBList: [], + JCBMList: [], + llrList: [], + statusList: [], + YWKSList: [], + reboundList: [], + ruleForm: {}, + rules: { + check_date: [{ required: true, message: "不能为空", trigger: "blur" }], + check_class: [{ required: true, message: "不能为空", trigger: "blur" }], + check_main_branch: [ + { required: true, message: "不能为空", trigger: "blur" }, + ], + check_branch: [ + { required: true, message: "不能为空", trigger: "blur" }, + ], + check_man: [{ required: true, message: "不能为空", trigger: "blur" }], + checktype: [{ required: true, message: "不能为空", trigger: "blur" }], + }, + tableData: [], + }; + }, + mounted() { + this.initBC(); + this.initJCLB(); + this.initYHJB(); + this.initYHLX(); + //this.initLlr() + this.initReformStatus(); + this.initYHBM(); + this.initYWKS(); + this.initWXY(); + this.initDangerRebound(); + this.id = this.$route.query.id; + if (this.id != null && this.id != "") { + this.initInfo(); + this.addShow = false; + } + }, + methods: { + async initInfo() { + var res = await getDangerInfo(this.id); + if (res.data.ok == 1) { + this.ruleForm = res.data.data; + this.changeJCDW(res.data.data.check_main_branch); + var obj = deepClone(res.data.data); + this.tableData.push(obj); + } + }, + initDangerRebound() { + initDangerRebound().then((res) => { + if (res.data.ok == 1) { + this.reboundList = res.data.data; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + submitDanger(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + if (this.title == "新增") { + this.tableData.push(this.dangerForm); + } else { + var arr = this.tableData; + arr.splice(this.rowIndex, 1, this.dangerForm); + this.tableData = arr; + } + this.dialogVisible = false; + } else { + console.log("error submit!!"); + return false; + } + }); + }, + deleteDanger(row, index) { + this.$confirm("确认删除吗", "提示", { + confirmButtonText: "确认", + cancelButtonText: "取消", + type: "warning", + }) + .then(() => { + var arr = deepClone(this.tableData); + var brr = []; + for (var i = 0; i < arr.length; i++) { + if (i == index) { + } else { + brr.push(arr[i]); + } + } + this.tableData = deepClone(brr); + //this.tableData.splice(index) + }) + .catch((error) => {}); + }, + editDanger(row, index) { + this.dangerForm = deepClone(row); + this.rowIndex = index; + this.dialogVisible = true; + this.title = "编辑"; + }, + + addDanger() { + this.dangerForm = {}; + this.title = "新增"; + this.dialogVisible = true; + }, + changeWxy(e) { + for (var i = 0; i < this.dangerList.length; i++) { + if (e == this.dangerList[i].id) { + this.dangerForm.DTRisk_level = this.dangerList[i].mriskLevel; + this.dangerForm.dangerousSource = this.dangerList[i].mriskPoint; + } + } + }, + initWXY() { + var param = { + page: 1, + limit: 1000, + }; + initWxy(param).then((res) => { + if (res.data.ok == 1) { + this.dangerList = res.data.data.items; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + initYWKS() { + initYwks().then((res) => { + if (res.data.ok == 1) { + this.YWKSList = res.data.data; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + initYHBM() { + initYHBM().then((res) => { + if (res.data.ok == 1) { + this.YHBMList = res.data.data; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + initLlr() { + initLlr().then((res) => { + if (res.data.ok == 1) { + this.llrList = res.data.data; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + initReformStatus() { + initReformStatus().then((res) => { + if (res.data.ok == 1) { + this.statusList = res.data.data; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + changeJCDW(val) { + initJCBM(val).then((res) => { + if (res.data.ok == 1) { + this.JCBMList = res.data.data; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + initYHLX() { + initYHLX().then((res) => { + if (res.data.ok == 1) { + this.YHLXList = res.data.data; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + initYHJB() { + initYHJB().then((res) => { + if (res.data.ok == 1) { + this.YHJBList = res.data.data; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + initBC() { + initBC().then((res) => { + if (res.data.ok == 1) { + this.BCList = res.data.data; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + initJCLB() { + initJCLB().then((res) => { + if (res.data.ok == 1) { + this.JCLBList = res.data.data; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + + returnIndex() { + this.$router.push({ + path: "/hiddenDangerRegistration", + }); + }, + submitForm(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + if (this.tableData == null || this.tableData.length == 0) { + this.$message({ + type: "error", + message: "请添加隐患", + duration: 2000, + }); + } + this.ruleForm.items = this.tableData; + if (this.addShow) { + saveDanger(this.ruleForm).then((res) => { + if (res.data.ok == 1) { + this.$message({ + type: "success", + message: "新增成功", + duration: 3000, + }); + this.$router.push({ + path: "/hiddenDangerRegistration", + }); + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + } else { + var param = deepClone(this.ruleForm); + var obj = deepClone(this.tableData[0]); + param.ht_branch = obj.ht_branch; + param.address = obj.address; + param.ht_content = obj.ht_content; + param.measure = obj.measure; + param.ht_typesub = obj.ht_typesub; + param.DTRisk_bankId = obj.DTRisk_bankId; + param.DTRisk_level = obj.mriskLevel; + param.dangerousSource = obj.mriskPoint; + param.ht_level = obj.ht_level; + param.alter_time = obj.alter_time; + param.duty_officer = obj.duty_officer; + param.alter_status = obj.alter_status; + param.Review = obj.Review; + param.repeatId = obj.repeatId; + editDanger(param).then((res) => { + if (res.data.ok == 1) { + this.$message({ + type: "success", + message: "编辑成功", + duration: 3000, + }); + this.$router.push({ + path: "/hiddenDangerRegistration", + }); + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + } + } else { + console.log("error submit!!"); + return false; + } + }); + }, + }, +}; +</script> + +<style scoped> +.app-container { + padding: 20px; + height: 850px; + overflow-y: auto; +} + +.app-container /deep/ .box { + padding-top: 0; +} + +/* /deep/ .multiline .el-input__inner { + height: 62px; +} */ +.btns { + background-color: #034ea2; + border: 1px solid #034ea2; +} + .title-center /deep/ .el-radio-button:first-child .el-radio-button__inner { + border: none; +} + +.title-center /deep/ .el-radio-button__inner { + border: none; + border-radius: 0px; +} + +.title-center /deep/ .el-radio-button__orig-radio:checked + .el-radio-button__inner { + background-color: #034ea2; + background-color: #034ea2; +} +.title-center /deep/ .el-radio-button--medium .el-radio-button__inner { + padding: 11px 20px; +} +</style> \ No newline at end of file diff --git a/src/views/safetyHazardAccount/accountSend.vue b/src/views/safetyHazardAccount/accountSend.vue new file mode 100644 index 0000000..44e62eb --- /dev/null +++ b/src/views/safetyHazardAccount/accountSend.vue @@ -0,0 +1,382 @@ +<template> + <div class="app-container"> + <div> + <Titlename title="发送隐患单"></Titlename> + <div class="whole-form"> + <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="150px" class="demo-ruleForm" + style="margin: 0 14% 0 16%;"> + <el-row> + <el-col :span="9"> + <el-form-item label="隐患编号" prop="number"> + <el-input v-model="ruleForm.number" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="检查单位" prop="check_main_branch"> + <el-input v-model="ruleForm.check_main_branch" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="检查人" prop="check_man"> + <el-input v-model="ruleForm.check_man" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="陪检人员" prop="acc_man"> + <el-input v-model="ruleForm.acc_man" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="检查时间" prop="check_date"> + <el-date-picker + v-model="ruleForm.check_date" + type="date" + :disabled="true" + placeholder="选择日期" + style="width: 100%"> + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="班次" prop="check_class"> + <el-input v-model="ruleForm.check_class" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="跟班、带班情况" prop="name"> + <el-input v-model="ruleForm.name" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="跟班、带班人员" prop="name"> + <el-input v-model="ruleForm.name" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="行走路线" prop="route"> + <el-input type="textarea" v-model="ruleForm.route" class="multiline" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="隐患单位" prop="ht_community"> + <el-input v-model="ruleForm.ht_community" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="隐患部门" prop="ht_branch"> + <el-input v-model="ruleForm.ht_branch" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="隐患地点" prop="address"> + <el-input type="textarea" v-model="ruleForm.address" class="multiline" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="隐患内容" prop="ht_content"> + <el-input type="textarea" v-model="ruleForm.ht_content" class="multiline" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="隐患类别" prop="ht_typesub"> + <el-input v-model="ruleForm.ht_typesub" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="隐患级别" prop="ht_level"> + <el-input v-model="ruleForm.ht_level" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="整改措施" prop="measure"> + <el-input v-model="ruleForm.measure" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="所需资金" prop="name"> + <el-input v-model="ruleForm.name" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="限改时间" prop="alter_time"> + <el-date-picker + v-model="ruleForm.alter_time" + type="date" + :disabled="true" + placeholder="选择日期" + style="width: 100%"> + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="责任人" prop="duty_officer"> + <el-input v-model="ruleForm.duty_officer" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="完成时间" prop="name"> + <!--<el-input v-model="ruleForm.name"></el-input>--> + <el-date-picker + v-model="value1" + type="date" + :disabled="true" + placeholder="选择日期" + style="width: 100%"> + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="整改完成情况" prop="alter_status"> + <el-input v-model="ruleForm.alter_status" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="复查时间" prop="name"> + <!--<el-input v-model="ruleForm.name"></el-input>--> + <el-date-picker + v-model="value1" + type="date" + :disabled="true" + placeholder="选择日期" + style="width: 100%"> + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="复查人" prop="name"> + <el-input v-model="ruleForm.name" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="复查结果" prop="name"> + <el-input v-model="ruleForm.name" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="整改次数" prop="name"> + <el-input v-model="ruleForm.name" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="危险源" prop="dangerousSource"> + <el-input type="textarea" v-model="ruleForm.dangerousSource" class="multiline" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="风险等级" prop="DTRisk_level"> + <el-input v-model="ruleForm.DTRisk_level" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="业务科室" prop="Review"> + <el-input v-model="ruleForm.Review" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="附件" prop="DTRisk_level"> + <el-input v-model="ruleForm.DTRisk_level" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="流程信息" prop="name"> + <!-- <el-input v-model="ruleForm.name" class="multiline" :disabled="true"></el-input>--> + <el-table + :data="tableData" + border + style="width: 100%"> + <el-table-column + prop="date" + label="步骤" + align="center" + width="60"> + </el-table-column> + <el-table-column + prop="name" + label="操作人" + align="center" + width="138"> + </el-table-column> + <el-table-column + prop="province" + label="处理时间" + align="center" + width="200"> + </el-table-column> + <el-table-column + prop="city" + label="审批意见" + align="center" + width="260"> + </el-table-column> + <el-table-column + prop="address" + label="流程信息" + align="center" + width="188"> + </el-table-column> + </el-table> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item style="text-align: center;"> + <el-button class="btn" size="small" type="primary" @click="close()" + >关闭</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> + </div> + + </div> +</template> + +<script> +import Titlename from "../../components/Titlename/index.vue"; +import {getDangerInfo,next_step_do} from '@/api/sgyhpczl/hiddenDangerRegistration' +import {deepClone} from '@/utils' + +export default { + components: {Titlename}, + name: "superiorsSend", + data() { + return { + id:'', + ruleForm: {}, + rules: { + reviewTime: { required: true, message: '请填写复查时间', trigger: 'blur' }, + rechecker: { required: true, message: '请填写复查人', trigger: 'blur' }, + reviewResults: { required: true, message: '请填写复查结果', trigger: 'blur' }, + desc1: { required: true, message: '复查不通过时请在备注说明原因!', trigger: 'blur' }, + }, + tableData: [], + fileList: [], + }; + }, + mounted(){ + this.id = this.$route.query.id; + if( this.id!=null && this.id!=''){ + this.initInfo(); + } + }, + methods: { + async initInfo(){ + var res=await getDangerInfo(this.id) + if (res.data.ok==1){ + this.ruleForm=res.data.data + this.ruleForm.next='发送到'+res.data.data.ht_community+res.data.data.ht_branch + + } + }, + submitForm(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + var param={ + id:this.id, + step: "1", + dealContent: this.ruleForm.dealContent + } + next_step_do(param).then(res=>{ + if (res.data.ok==1){ + this.$message({type:'success', message:"fas成功", duration:3000}) + this.close() + }else { + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + } else { + console.log('error submit!!'); + return false; + } + }); + }, + handleRemove(file, fileList) { + console.log(file, fileList); + }, + handlePreview(file) { + console.log(file); + }, + beforeUpload(file) { + var FileExt = file.name.replace(/.+\./, ""); + if (['jpg','png','bmp','gif','jpeg'].indexOf(FileExt.toLowerCase()) === -1){ + this.$message({ + type: 'warning', + message: '请上传后缀名为jpg、png、bmp、gif、jpeg的图片!' + }); + return false; + } + }, + close(){ + this.$router.push({ + path:"/hiddenDangerRegistration" + }) + } + } +} +</script> + +<style scoped> +.app-container { + padding: 20px; + height: 850px; + overflow-y: auto; +} + +/deep/ .box { + padding-top: 0; +} + +/deep/ .multiline .el-input__inner { + height: 62px; +} +/deep/ .textarea .el-textarea__inner{ + height: 80px; + max-height: 80px; + overflow-y: auto +} +/deep/ .textarea2 .el-textarea__inner{ + height: 100px; + max-height: 100px; + overflow-y: auto +} +.btn{ + background-color: #034ea2; + border: 1px solid #034ea2; +} +</style> diff --git a/src/views/safetyHazardAccount/hazardSource.vue b/src/views/safetyHazardAccount/hazardSource.vue new file mode 100644 index 0000000..ede87f1 --- /dev/null +++ b/src/views/safetyHazardAccount/hazardSource.vue @@ -0,0 +1,276 @@ +<template> + <div class="whole"> + <div class="left-tree"> + <el-tree + :data="data" + node-key="id" + default-expand-all + @node-drag-start="handleDragStart" + @node-drag-enter="handleDragEnter" + @node-drag-leave="handleDragLeave" + @node-drag-over="handleDragOver" + @node-drag-end="handleDragEnd" + @node-drop="handleDrop" + :allow-drop="allowDrop" + :allow-drag="allowDrag"> + <span slot-scope="{ node, data }" class="slot-t-node"> + <template> + <i + v-if="data.ChildItems&&data.ChildItems.length" + :class="{ + 'el-icon-folder': !node.expanded, // 节点收缩时的图标 + 'el-icon-folder-opened': node.expanded, // 节点展开时的图标 + }" + style="color: #409eff;" + /> + <i v-else class="el-icon-folder-add" style="color: #EC933A;" /> + <span>{{ node.label }}</span> + </template> + </span> + </el-tree> + </div> + <div class="right-table"> + <el-form :inline="true" :model="formInline" class="demo-form-inline"> + <el-checkbox-group v-model="checkList"> + <el-checkbox style="margin-right: 50px"> + <el-form-item label="事故来源"> + <el-input v-model="formInline.user"></el-input> + </el-form-item> + </el-checkbox> + <el-checkbox style="margin-right: 50px"> + <el-form-item label="事故类型"> + <el-input v-model="formInline.user"></el-input> + </el-form-item> + </el-checkbox> + <el-form-item label="主要危险源" style="margin-right: 50px"> + <el-input v-model="formInline.user"></el-input> + </el-form-item> + </el-checkbox-group> + <el-form-item> + <button class="btn" @click="onSubmit">查询</button> + <button class="btn" @click="onSubmit">确定</button> + </el-form-item> + </el-form> + <el-table + :data="tableData" + ref="multipleTable" + border + @selection-change="handleSelectionChange" + style="width: 100%"> + <el-table-column + type="selection" + width="55"> + </el-table-column> + <el-table-column + prop="date" + label="风险点" + width="180"> + </el-table-column> + <el-table-column + prop="name" + label="主要危险源" + width="180"> + </el-table-column> + <el-table-column + prop="address" + label="事故类型"> + </el-table-column> + <el-table-column + prop="address" + label="风险等级"> + </el-table-column> + <el-table-column + prop="address" + label="管控措施"> + </el-table-column> + <el-table-column + prop="address" + label="管控层级"> + </el-table-column> + <el-table-column + prop="address" + label="责任单位"> + </el-table-column> + <el-table-column + prop="address" + label="责任人"> + </el-table-column> + </el-table> + <div style="text-align:right"> + <el-pagination + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + :current-page="currentPage4" + :page-sizes="[100, 200, 300, 400]" + :page-size="100" + layout="total, sizes, prev, pager, next, jumper" + :total="400"> + </el-pagination> + </div> + </div> + </div> +</template> + +<script> +export default { + name: "hazardSource", + data() { + return { + data: [{ + id: 1, + label: '危险源等级', + icon:'el-icon-folder', + children: [{ + id: 2, + label: '低风险', + icon:'el-icon-folder', + }, + { + id: 3, + label: '一般风险', + icon:'el-icon-success', + }, + { + id: 4, + label: '较大风险', + icon:'el-icon-success', + }, + { + id: 5, + label: '重大风险', + icon:'el-icon-success', + }] + }], + formInline: { + user: '', + region: '' + }, + checkList: ['选中且禁用','复选框 A'], + tableData: [{ + date: '2016-05-02', + name: '王小虎', + address: '上海市普陀区金沙江路 1518 弄' + }, { + date: '2016-05-04', + name: '王小虎', + address: '上海市普陀区金沙江路 1517 弄' + }, { + date: '2016-05-01', + name: '王小虎', + address: '上海市普陀区金沙江路 1519 弄' + }, { + date: '2016-05-03', + name: '王小虎', + address: '上海市普陀区金沙江路 1516 弄' + }], + multipleSelection: [], + currentPage4: 4 + }; + }, + mounted(){ + this.getAllColumns() + }, + methods: { + handleDragStart(node, ev) { + console.log('drag start', node); + }, + handleDragEnter(draggingNode, dropNode, ev) { + console.log('tree drag enter: ', dropNode.label); + }, + handleDragLeave(draggingNode, dropNode, ev) { + console.log('tree drag leave: ', dropNode.label); + }, + handleDragOver(draggingNode, dropNode, ev) { + console.log('tree drag over: ', dropNode.label); + }, + handleDragEnd(draggingNode, dropNode, dropType, ev) { + console.log('tree drag end: ', dropNode && dropNode.label, dropType); + }, + handleDrop(draggingNode, dropNode, dropType, ev) { + console.log('tree drop: ', dropNode.label, dropType); + }, + allowDrop(draggingNode, dropNode, type) { + if (dropNode.data.label === '二级 3-1') { + return type !== 'inner'; + } else { + return true; + } + }, + allowDrag(draggingNode) { + return draggingNode.data.label.indexOf('三级 3-2-2') === -1; + }, + // 获取表格数据进行渲染 + getAllColumns() { + var data = this.$route.query + }, + handleChange(file, fileList) { + this.fileList = fileList.slice(-3); + }, + onSubmit() { + console.log('submit!'); + }, + handleSelectionChange(val) { + this.multipleSelection = val; + }, + // 页码 + handleSizeChange(val) { + console.log(`每页 ${val} 条`); + }, + handleCurrentChange(val) { + console.log(`当前页: ${val}`); + } + } +} +</script> + +<style scoped> +.whole{ + display: flex; +} +.left-tree{ + width: 15%; +} +.left-tree .el-tree{ + background: #f0f6e4; + height: 400px; + overflow-y: scroll; + border: 1px solid #000; +} +/deep/ .is-leaf{ + background: transparent !important; + width: 5px; + height: 5px; + background-size: 100%; + margin-right: 5px; +} +/deep/ .el-icon-caret-right:before{ + content: ''; +} +.right-table{ + width: 85%; + padding-left: 20px; +} +.demo-form-inline /deep/ .el-checkbox__inner{ + top: 9px; +} +.demo-form-inline{ + display: flex; + flex-direction: row; + align-items: center; + justify-content: start; + background: #FFFFFF; + padding: 15px 10px 0px 10px; + margin-bottom: 20px; +} +.btn{ + background: url(../../assets/btn.gif) no-repeat; + width: 76px; + height: 26px; + line-height: 26px; + font-size: 14px; + border: none; + color: #fff; + cursor: pointer; + overflow: visible; +} +</style> diff --git a/src/views/safetyHazardAccount/index.vue b/src/views/safetyHazardAccount/index.vue index 34cd1a0..c40cfa9 100644 --- a/src/views/safetyHazardAccount/index.vue +++ b/src/views/safetyHazardAccount/index.vue @@ -1,13 +1,771 @@ <template> + <div class="app-container"> + <el-form ref="form" :inline="true" class="inquire" :model="form" label-width="100px"> + <el-form-item label="编号"> + <el-input v-model="listQuery.form.number" style="width:202px" placeholder="请输入内容"></el-input> + </el-form-item> + <el-form-item label="检查单位"> + <el-select v-model="listQuery.form.check_main_branch" placeholder="请选择" @change="changeJCDW"> + <el-option + v-for="item in JCDWList" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="检查部门"> + <el-select v-model="listQuery.form.check_branch" placeholder="请选择"> + <el-option + v-for="item in JCBMList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="检查人"> + <el-input v-model="listQuery.form.check_man" style="width:202px" placeholder="请输入内容"></el-input> + </el-form-item> + <el-form-item label="隐患单位"> + <el-input v-model="listQuery.form.ht_community" style="width:202px" :disabled="true"></el-input> + <!--<el-select v-model="listQuery.form.ht_community" placeholder="请选择" @change="changeYHDW"> + <el-option + v-for="item in JCDWList" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select>--> + </el-form-item> + <el-form-item label="隐患部门"> + <el-select v-model="listQuery.form.ht_branch" placeholder="请选择"> + <el-option + v-for="item in YHBMList" + :key="item.branch_name" + :label="item.branch_name" + :value="item.branch_name"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="隐患类别"> + <el-select v-model="listQuery.form.ht_typesub" placeholder="请选择"> + <el-option + v-for="item in YHLXList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="隐患级别"> + <el-select v-model="listQuery.form.ht_level" placeholder="请选择"> + <el-option + v-for="item in YHJBList" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="检查类别"> + <el-select v-model="listQuery.form.checktype" placeholder="请选择"> + <el-option + v-for="item in JCLBList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="隐患地点"> + <el-input v-model="listQuery.form.address" style="width:202px" placeholder="请输入内容"></el-input> + </el-form-item> + <el-form-item label="隐患内容"> + <el-input v-model="listQuery.form.ht_content" style="width:202px" placeholder="请输入内容"></el-input> + </el-form-item> + <el-form-item label="班次"> + <el-select v-model="listQuery.form.check_class" placeholder="请选择"> + <el-option + v-for="item in BCList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="风险等级"> + <el-select v-model="listQuery.form.DTRisk_level" placeholder="请选择"> + <el-option + v-for="item in levelList" + :key="item.name" + :label="item.name" + :value="item.name"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="录入单位"> + <el-select v-model="listQuery.form.createBy" placeholder="请选择"> + <el-option + v-for="item in llrList" + :key="item.id" + :label="item.realName" + :value="item.id"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="深入现场情况"> + <el-select v-model="listQuery.form.class_situation" placeholder="请选择"> + <el-option + v-for="item in llrList" + :key="item.id" + :label="item.realName" + :value="item.id"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="是否关联"> + <el-select v-model="listQuery.form.DTRisk_bankId" placeholder="请选择"> + <el-option + v-for="item in reList" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="复查单位"> + <el-select v-model="listQuery.form.callback_branch" placeholder="请选择"> + <el-option + v-for="item in YHBMList" + :key="item.branch_id" + :label="item.branch_name" + :value="item.branch_name"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="检查时间"> + <el-col :span="11"> + <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.check_dateStart" + style="width: 100%;" value-format="yyyy-MM-dd"></el-date-picker> + </el-col> + <el-col style="text-align:center" :span="2">-</el-col> + <el-col :span="11"> + <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.check_dateEnd" + style="width: 100%;" value-format="yyyy-MM-dd"></el-date-picker> + </el-col> + </el-form-item> + <el-form-item label="限改时间"> + <el-col :span="11"> + <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.alter_timeStart" + value-format="yyyy-MM-dd" style="width: 100%;"></el-date-picker> + </el-col> + <el-col style="text-align:center" :span="2">-</el-col> + <el-col :span="11"> + <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.alter_timeEnd" + value-format="yyyy-MM-dd" style="width: 100%;"></el-date-picker> + </el-col> + </el-form-item> + <el-form-item style="text-align:center;padding:0 50px"> + <el-button type="primary" class="btns" size="small" icon="el-icon-search" @click="getPageList()">查询 + </el-button> + <el-button type="primary" class="btns" size="small" @click="reset()">重置</el-button> + <el-button type="primary" class="btns" size="small" icon="el-icon-upload2" @click="exportData">导出excel</el-button> + </el-form-item> + </el-form> + <el-row class="title-center"> + <el-col :span="12"> + <el-radio-group v-model="YHType"> + <el-radio-button label="1">超期整改</el-radio-button> + <el-radio-button label="2">到期未整改</el-radio-button> + <el-radio-button label="3">二次整改</el-radio-button> + <el-radio-button label="4">正在整改</el-radio-button> + <el-radio-button label="5">正在复查</el-radio-button> + <el-radio-button label="6">整改完成</el-radio-button> + <el-radio-button label="0">全部隐患</el-radio-button> + </el-radio-group> + </el-col> + <el-col :span="12" style="text-align:right;" v-if="YHType=='0'"> + <el-button type="primary" class="btns" size="small" @click="supervision('1')">督查督办</el-button> + <el-button type="primary" class="btns" size="small" @click="supervision('2')">举一反三</el-button> + <!-- <el-button type="primary" class="btns" size="small" @click="base()">双基考核</el-button>--> + <el-button type="primary" class="btns" size="small" @click='deleteBatch'>删除</el-button> + </el-col> + </el-row> + <el-table :data="tableData" ref="pageTable" style="width: 100%" @selection-change="changeBox" v-loading="loading"> + <el-table-column type="selection" width="55" align="center"></el-table-column> + <el-table-column prop="number" label="编号" align="center" width="120"> + <template slot-scope="scope"> + <div class="blue-font-color" @click="showDetails(scope.row)">{{ scope.row.number }}</div> + </template> + </el-table-column> + <el-table-column prop="check_branch" label="检查部门" align="center" width="120"></el-table-column> + <el-table-column prop="check_man" label="检查人" align="center" width="120"></el-table-column> + <el-table-column prop="checktype" label="检查类别" align="center"></el-table-column> + <el-table-column label="隐患项目" align="center"> + <el-table-column prop="check_date" label="检查时间" width="120" align="center"> + <template slot-scope="scope"> + <label>{{ formatDate(scope.row.check_date) }}</label><br/> + <label>{{ scope.row.check_class }}</label> + </template> + </el-table-column> + <el-table-column prop="address" label="地点" align="center"> + <template slot-scope="scope"> + <el-popover trigger="hover" placement="top"> + <p>{{ scope.row.address }}</p> + <div slot="reference" class="name-wrapper">{{ + scope.row.address != null && scope.row.address.length > 10 ? scope.row.address.substring(0, 8) + "...." : scope.row.address + }} + </div> + </el-popover> + </template> + </el-table-column> + <el-table-column prop="ht_content" label="内容" width="150" align="center"> + <template slot-scope="scope"> + <el-popover trigger="hover" placement="top"> + <p>{{ scope.row.ht_content }}</p> + <div slot="reference" class="name-wrapper">{{ + scope.row.ht_content != null && scope.row.ht_content.length > 10 ? scope.row.ht_content.substring(0, 8) + "...." : scope.row.ht_content + }} + </div> + </el-popover> + </template> + </el-table-column> + <el-table-column prop="ht_typesub" label="类别" align="center"></el-table-column> + <el-table-column prop="ht_level" label="级别" align="center"></el-table-column> + </el-table-column> + <el-table-column label="整改计划" align="center"> + <el-table-column prop="measure" label="整改措施" width="150" align="center"> + <template slot-scope="scope"> + <el-popover trigger="hover" placement="top"> + <p>{{ scope.row.measure }}</p> + <div slot="reference" class="name-wrapper">{{ + scope.row.measure != null && scope.row.measure.length > 10 ? scope.row.measure.substring(0, 8) + "...." : scope.row.measure + }} + </div> + </el-popover> + </template> + </el-table-column> + <el-table-column prop="ht_branch" label="隐患部门" align="center"></el-table-column> + <el-table-column prop="duty_officer" label="责任人" align="center"></el-table-column> + <el-table-column prop="alter_time" label="限改时间" width="120" :formatter="formatColumnDate" align="center"></el-table-column> + <!-- <el-table-column prop="ht_level" label="级别" align="center"> </el-table-column> --> + </el-table-column> + <el-table-column label="整改情况" align="center"> + <el-table-column prop="ACCOMPLISHTIME" label="完成时间" width="110px" :formatter="formatColumnDate" align="center"></el-table-column> + <el-table-column prop="CALLBACKRESULT" label="复查结果" align="center"></el-table-column> + <el-table-column prop="CALLBACKPERSON" label="复查人" align="center"></el-table-column> + <el-table-column prop="CALLBACKTIME" label="复查时间" width="120" :formatter="formatColumnDate" align="center"></el-table-column> + </el-table-column> + <el-table-column label="隐患处理状态" align="center"> + <template slot-scope="scope"> + <span v-if="scope.row.step =='1'">初始状态</span> + <span v-if="scope.row.step =='2'">整改中</span> + <span v-if="scope.row.step =='3'">复查中</span> + <span v-if="scope.row.step =='end'">处理结束</span> + </template> + </el-table-column> + <el-table-column prop="DTRisk_bankId" label="是否关联" align="center"> + <template slot-scope="scope"> + <span style ="color: red" + v-if="scope.row.DTRisk_bankId==0 || scope.row.DTRisk_bankId=='' || scope.row.DTRisk_bankId==null">未关联</span> + <span v-else>已关联</span> + </template> + </el-table-column> + <el-table-column prop="DTRisk_level" label="风险等级" align="center"></el-table-column> + <el-table-column prop="warningLevel" label="初始警情" align="center"></el-table-column> + <el-table-column prop="curWarningLevel" label="当前警情" align="center"></el-table-column> + <!-- <el-table-column prop="date" label="流程操作" align="center" fixed="right"> + <template slot-scope="scope"> + <el-button @click="handleClick(scope.row)" type="text" size="small">点击发送</el-button> + </template> + </el-table-column> --> + <el-table-column prop="date" label="操作" align="center" fixed="right"> + <template slot-scope="scope"> + <el-button @click="updateClick(scope.row)" type="text" size="small">编辑</el-button> + <el-button @click="deleteClick(scope.row)" type="text" size="small">删除</el-button> + </template> + </el-table-column> + </el-table> + <div style="text-align: right"> + <el-pagination + v-show="recordTotal > 0" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + :current-page="currentPage" + :page-sizes="[10, 20, 30, 50]" + :page-size="pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="recordTotal" + > + </el-pagination> + </div> + + <!--批量复查弹窗--> + <el-dialog + :title="titleStr" + :visible.sync="dialogVisible" + :close-on-click-modal="false" + width="40%" + > + <el-form> + <el-row> + <el-checkbox style="width: 80px;height: 30px" :key="item.branch_id" v-for="item in YHBMList" + v-model="checked" + :label="item.branch_id">{{ + item.branch_name + }} + </el-checkbox> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item style="text-align: center;"> + <el-button class="btn" size="small" type="primary" @click="submitForm()"> + 保存 + </el-button> + <el-button size="small" @click="close()">关闭</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + </el-dialog> + + </div> </template> - <script> +import {getPageList, inspect_do, draw_inferences_do} from "@/api/sgyhpczl/safetyHazardAccount"; +import {delDanger} from "@/api/sgyhpczl/hiddenDangerRegistration"; +import {danger_export_do} from "@/api/sgyhpczl/hiddenDangerRectification"; + + +import {initJCBM, initYHLX, initBC, initJCLB, initYHBM, initYHJB, initLlr} from "@/api/sgyhpczl/initSelect"; + export default { - name: "index" -} + data() { + return { + titleStr:"", + dialogVisible: false, + checked: [], + YHType: '0', + selectedList: [], + reList: [{label: "未关联", value: 0}], + llrList: [], + options: [], + form: {}, + buttonType: "", + JCDWList: [{label: "众泰煤焦化", value: 0}, {label: "上级单位", value: 1}], + JCBMList: [], + YHLXList: [], + BCList: [], + JCLBList: [], + YHBMList: [], + YHJBList: [], + tableData: [], + requestData: {}, + levelList:[{id:1,name:'低风险'},{id:2,name:'一般风险'},{id:3,name:'较大风险'},{id:4,name:'重大风险'}], + loading:false, + listQuery: { + page: 1, + limit: 10, + form: { + ht_community: "众泰煤焦化" + }, + }, + currentPage: 1, + pageSize: 10, + recordTotal: 0, + }; + }, + watch: { + "YHType": function (newVal, oldVal) { + if (newVal) { + this.listQuery.type = parseInt(newVal); + this.getPageList(); + } + }, + "dialogVisible": function (newVal, oldVal) { + this.checked = []; + } + }, + mounted() { + this.getPageList() + this.initYHLX() + this.initYHJB() + this.initBC() + this.initJCLB() + this.initLlr() + this.initYHBM() + }, + methods: { + close() { + this.dialogVisible = false; + }, + deleteBatch() { + if (this.selectedList == null || this.selectedList.length == 0) { + this.$message({type: 'warning', message: '至少选中一条数据', duration: 3000}) + return + } + var ids = this.selectedList.map((obj) => { + return obj.id + }).join(",") + this.$confirm('确认删除吗', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }) + .then(() => { + delDanger(ids).then(() => { + this.getPageList() + this.$notify({ + title: "成功", + message: "删除成功", + type: "success", + duration: 2000, + }); + }); + }) + .catch(error => { + }); + }, + changeBox(val) { + this.selectedList = [] + val.forEach((item) => { + this.selectedList.push(item) + }) + }, + initLlr() { + initLlr().then(res => { + if (res.data.ok == 1) { + this.llrList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initYHBM() { + initYHBM().then(res => { + if (res.data.ok == 1) { + this.YHBMList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + changeJCDW(val) { + initJCBM(val).then(res => { + if (res.data.ok == 1) { + this.JCBMList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + checkTime() { + if (this.listQuery.form.check_dateStart != null && this.listQuery.form.check_dateStart != '') { + if (this.listQuery.form.check_dateEnd != null && this.listQuery.form.check_dateEnd != '') { + } else { + this.$message({type: 'error', message: "请选择检查结束时间", duration: 3000}) + return + } + + } + if (this.listQuery.form.check_dateEnd != null && this.listQuery.form.check_dateEnd != '') { + if (this.listQuery.form.check_dateStart != null && this.listQuery.form.check_dateStart != '') { + } else { + this.$message({type: 'error', message: "请选择检查开始时间", duration: 3000}) + return + } + } + if (this.listQuery.form.alter_timeStart != null && this.listQuery.form.alter_timeStart != '') { + if (this.listQuery.form.alter_timeEnd != null && this.listQuery.form.alter_timeEnd != '') { + } else { + this.$message({type: 'error', message: "请选择限改结束时间", duration: 3000}) + return + } + + } + if (this.listQuery.form.alter_timeEnd != null && this.listQuery.form.alter_timeEnd != '') { + if (this.listQuery.form.alter_timeStart != null && this.listQuery.form.alter_timeStart != '') { + } else { + this.$message({type: 'error', message: "请选择改开始时间", duration: 3000}) + return + } + } + }, + getPageList() { + this.listQuery.page = 1 + this.checkTime() + this.loading = true; + getPageList(this.listQuery).then(res => { + this.loading = false; + if (res.data.ok == 1) { + this.tableData = res.data.data.items + this.recordTotal = res.data.data.total + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + reset() { + this.listQuery.form = {ht_community: "众泰煤焦化"} + this.getPageList() + }, + handleSizeChange(val) { + this.listQuery.limit = val + this.getPageListForPagination(); + }, + handleCurrentChange(val) { + this.listQuery.page = val + this.getPageListForPagination(); + }, + getPageListForPagination() { + this.checkTime() + getPageList(this.listQuery).then(res => { + if (res.data.ok == 1) { + this.tableData = res.data.data.items + this.recordTotal = res.data.data.total + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initYHLX() { + initYHLX().then(res => { + if (res.data.ok == 1) { + this.YHLXList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initYHJB() { + initYHJB().then(res => { + if (res.data.ok == 1) { + this.YHJBList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initBC() { + initBC().then(res => { + if (res.data.ok == 1) { + this.BCList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initJCLB() { + initJCLB().then(res => { + if (res.data.ok == 1) { + this.JCLBList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + updateClick(row) { + this.$router.push({ + path: "/hiddenDangerAdd?id=" + row.id + "&route=safetyHazardAccount" + }) + }, + jump() { + this.$router.push({ + path: "/hiddenDangerAdd" + }) + }, + // 发送隐患单跳转 + handleClick(row) { + this.$router.push({ + path: "/hiddenDangerList?id=" + row.id, + }) + }, + //方法区 + formatDate(data) { + // 获取单元格数据 + if (data == null) { + return null + } + let dt = new Date(data) + return dt.getFullYear() + '-' + (dt.getMonth() + 1) + '-' + dt.getDate() + }, + //方法区 + formatColumnDate(row, column) { + // 获取单元格数据 + let data = row[column.property] + if (data == null) { + return null + } + let dt = new Date(data) + return dt.getFullYear() + '-' + (dt.getMonth() + 1) + '-' + dt.getDate() + ' ' + }, + deleteClick(row) { + this.$confirm('确认删除吗', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }) + .then(() => { + delDanger(row.id).then(() => { + this.getPageList() + this.$notify({ + title: "成功", + message: "删除成功", + type: "success", + duration: 2000, + }); + }); + }) + .catch(error => { + }); + }, + base() { + this.$router.push({ + path: "/Dualbase" + }) + }, + supervision(type) { + if(type == '1'){ + this.titleStr = "督查督办"; + }else{ + this.titleStr = "举一反三"; + } + var selectDataList = this.$refs.pageTable.selection; + this.buttonType = type; + if (selectDataList.length != 1) { + this.$message({ + type: 'warning', + message: '请选择一条数据!' + }); + return false; + } else { + this.requestData.id = selectDataList[0].id; + this.dialogVisible = true; + + } + }, + submitForm() { + if (this.checked.length == 0) { + this.$message({ + type: 'warning', + message: '请勾选需要发送的部门!' + }); + return; + } + this.requestData.branchIds = this.checked.join(";"); + if (this.buttonType == '1') { + inspect_do(this.requestData).then(res => { + if (res.data.ok) { + this.$message({ + type: 'success', + message: res.data.msg + }); + this.dialogVisible = false; + this.getPageList(); + } else { + this.$message({ + type: 'error', + message: res.data.msg + }); + } + }) + } else { + var checkData = this.YHBMList.filter(n => { + return this.checked.indexOf(n.branch_id) != -1; + }) + var branchNames = ""; + checkData.forEach(n => { + branchNames += n.branch_name + ";"; + }) + this.requestData.branchNames = branchNames; + draw_inferences_do(this.requestData).then(res => { + if (res.data.ok) { + this.$message({ + type: 'success', + message: res.data.msg + }); + this.dialogVisible = false; + this.getPageList(); + } else { + this.$message({ + type: 'error', + message: res.data.msg + }); + } + }) + } + }, + showDetails(row){ + this.$router.push({ + path: "/dangerDetails", + query:{"id":row.id,"route":"/safetyHazardAccount"} + }) + }, + exportData() { + this.listLoading = true + var requestData = JSON.parse(JSON.stringify(this.listQuery)); + requestData.export_type = 6; + //删除分页参数 + this.$delete(requestData, 'page') + this.$delete(requestData, 'limit') + danger_export_do(requestData).then(res => { + this.listLoading = false + var blob = new Blob([res.data]) + var downloadElement = document.createElement('a') + var href = window.URL.createObjectURL(blob) //创建下载的链接 + downloadElement.href = href + downloadElement.download = '安全隐患台账.xlsx' //下载后文件名 + document.body.appendChild(downloadElement) + downloadElement.click() //点击下载 + document.body.removeChild(downloadElement) //下载完成移除元素 + window.URL.revokeObjectURL(href) //释放掉blob对象 + }).catch(err => { + console.log(err) + }) + }, + } +}; </script> - <style scoped> +.inquire { + display: flex; + justify-content: left; + flex-wrap: wrap; +} +.inquire .el-form-item { + padding: 0 30px; +} + +.title-center { + padding: 20px 0; +} + +.btns { + background-color: #034ea2; + border: 1px solid #034ea2; +} + +.title-center /deep/ .el-radio-button:first-child .el-radio-button__inner { + border: none; +} + +.title-center /deep/ .el-radio-button__inner { + border: none; + border-radius: 0px; +} + +.title-center /deep/ .el-radio-button__orig-radio:checked + .el-radio-button__inner { + background-color: #034ea2; + background-color: #034ea2; +} + +.blue-font-color:hover{ + cursor: pointer; + color: blue; +} </style> + diff --git a/src/views/safetyHazardAccount/inferOtherThings.vue b/src/views/safetyHazardAccount/inferOtherThings.vue new file mode 100644 index 0000000..1fa2401 --- /dev/null +++ b/src/views/safetyHazardAccount/inferOtherThings.vue @@ -0,0 +1,108 @@ +<template> + <div> + <el-button type="text" @click="dialogVisible = true">点击打开 Dialog</el-button> + <el-dialog + title="责任单位" + :visible.sync="dialogVisible" + width="37%" + :before-close="handleClose"> + <el-checkbox-group v-model="checkList"> + <el-checkbox label="安全环保部"></el-checkbox> + <el-checkbox label="生产技术部 "></el-checkbox> + <el-checkbox label="机电部"></el-checkbox> + <el-checkbox label="企管部"></el-checkbox> + <el-checkbox label="消防保卫部"></el-checkbox> + + <el-checkbox label="质检中心"></el-checkbox> + <el-checkbox label="市场开发部"></el-checkbox> + <el-checkbox label="综合办公室"></el-checkbox> + <el-checkbox label="工程部 "></el-checkbox> + <el-checkbox label="财务部"></el-checkbox> + + <el-checkbox label="党群工作部"></el-checkbox> + <el-checkbox label="纪检监察部"></el-checkbox> + <el-checkbox label="化产一车间"></el-checkbox> + <el-checkbox label="炼焦一车间"></el-checkbox> + <el-checkbox label="原料一车间"></el-checkbox> + + <el-checkbox label="选煤厂"></el-checkbox> + <el-checkbox label="电仪车间"></el-checkbox> + <el-checkbox label="众和机电"></el-checkbox> + <el-checkbox label="原料二车间"></el-checkbox> + <el-checkbox label="化产二车间"></el-checkbox> + + <el-checkbox label="炼焦二车间"></el-checkbox> + <el-checkbox label="甲醇厂"></el-checkbox> + <el-checkbox label="干熄焦"></el-checkbox> + </el-checkbox-group> + <span slot="footer" class="dialog-footer"> + <el-button class="btn" type="primary" @click="dialogVisible = false">确 定</el-button> + </span> + </el-dialog> + </div> +</template> + +<script> +export default { + name: "inferOtherThings", + data() { + return { + dialogVisible: false, + checkList: [] + }; + }, + methods: { + handleClose(done) { + this.$confirm('确认关闭?') + .then(_ => { + done(); + }) + .catch(_ => {}); + } + } +} +</script> + +<style scoped> +/deep/ .el-dialog__header{ + text-align: center; + padding: 50px 50px 20px 50px; +} +/deep/ .el-dialog__header .el-dialog__title { + font-size: 12px; + font-weight: bold; +} +/deep/ .el-dialog__body{ + text-align: center; + padding: 30px 50px 30px 50px; +} +/deep/ .el-checkbox-group{ + display: flex; + flex-direction: row; + flex-wrap: wrap; + align-items: center; +} +/deep/ .el-checkbox{ + width: 120px; + text-align: left; + line-height: 25px; +} +/deep/ .el-dialog__footer{ + text-align: center; +} +.btn{ + background: url(../../assets/btn.gif) no-repeat; + width: 76px; + height: 26px; + line-height: 26px; + font-size: 14px; + border: none; + color: #fff; + cursor: pointer; + overflow: visible; + padding: 0; +} +/deep/ .el-checkbox__inner{ + border: 1px solid #000000; +} +</style> diff --git a/src/views/safetyHazardAccount/safetyedit.vue b/src/views/safetyHazardAccount/safetyedit.vue new file mode 100644 index 0000000..cc18391 --- /dev/null +++ b/src/views/safetyHazardAccount/safetyedit.vue @@ -0,0 +1,653 @@ +<template> + <div class="app-container"> + <div style=""> + <Titlename title="隐患单修改页面"></Titlename> + <div class="whole-form"> + <el-form + :model="ruleForm" + :rules="rules" + ref="ruleForm" + label-width="150px" + class="demo-ruleForm" + style="margin: 0 14% 0 16%" + > + <el-row> + <el-col :span="9"> + <el-form-item label="隐患编号" prop="check_date"> + <el-input v-model="ruleForm.check_man"></el-input> + </el-form-item> + </el-col> + </el-row> + + <el-row> + <el-col :span="9"> + <el-form-item label="检查时间" prop="check_date"> + <el-date-picker + v-model="ruleForm.check_date" + type="date" + value-format="yyyy-MM-dd" + placeholder="选择日期" + style="width: 100%" + > + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="班次" prop="check_class"> + <el-select v-model="ruleForm.check_class" placeholder="请选择" style="width: 100%"> + <el-option + v-for="item in BCList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="检查类别" prop="checktype"> + <el-select v-model="ruleForm.checktype" placeholder="请选择" style="width: 100%"> + <el-option + v-for="item in JCLBList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="检查单位" prop="check_main_branch"> + <el-select v-model="ruleForm.check_main_branch" placeholder="请选择" @change="changeJCDW" style="width: 100%"> + <el-option + v-for="item in JCDWList" + :key="item.label" + :label="item.label" + :value="item.label" + > + </el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="深入现场情况" prop="check_branch"> + <el-select v-model="ruleForm.check_branch" placeholder="请选择" style="width: 100%"> + <el-option + v-for="item in JCBMList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="深入现场人员" prop="check_man"> + <el-input v-model="ruleForm.check_man"></el-input> + </el-form-item> + </el-col> + </el-row> + + <el-row> + <el-col :span="9"> + <el-form-item label="检查人员" prop="check_man"> + <el-input v-model="ruleForm.check_man"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="陪检人员" prop="acc_man"> + <el-input v-model="ruleForm.acc_man"></el-input> + </el-form-item> + </el-col> + </el-row> + + + <el-row> + <el-col :span="22"> + <el-form-item label="行走路线"> + <el-input v-model="ruleForm.route" rows="3" type="textarea" class="multiline"></el-input> + </el-form-item> + </el-col> + </el-row> + + <el-row style="margin-bottom: 20px" v-if="addShow"> + <el-col :span="9"> + <el-button type="primary" class="btns" @click="addDanger">新增隐患</el-button> + </el-col> + </el-row> + + <el-row> + <el-table :data="tableData" style="width: 100%"> + <el-table-column type="index" width="55" align="center" label="序号"></el-table-column> + <!-- <el-table-column prop="ht_branch" align="center" label="隐患部门"></el-table-column> --> + <el-table-column prop="address" align="center" label="地点"></el-table-column> + <el-table-column prop="ht_content" align="center" label="隐患内容"></el-table-column> + <el-table-column prop="measure" align="center" label="整改措施"></el-table-column> + <el-table-column prop="ht_typesub" align="center" label="隐患类别"></el-table-column> + <el-table-column prop="dangerousSource" align="center" label="关联危险源"></el-table-column> + <el-table-column prop="DTRisk_level" align="center" label="风险等级"></el-table-column> + <el-table-column prop="ht_level" align="center" label="隐患级别"></el-table-column> + <el-table-column prop="alter_time" align="center" label="限改时间"></el-table-column> + <el-table-column prop="duty_officer" align="center" label="责任人"></el-table-column> + <el-table-column prop="alter_status" align="center" label="完成时间"></el-table-column> + <el-table-column prop="Review" align="center" label="复查时间"></el-table-column> + <el-table-column prop="Review" align="center" label="复查人"></el-table-column> + <el-table-column prop="Review" align="center" label="复查结果"></el-table-column> + <!-- <el-table-column prop="time" label="操作" align="center" width="140"> + <template slot-scope="scope"> + <div style="display: flex;align-items: center;flex-direction: row;"> + <el-button + size="mini" + @click="editDanger(scope.row, scope.$index)" + >编辑 + </el-button> + <el-button + size="mini" + v-if="addShow" + @click="deleteDanger(scope.row, scope.$index)" + >删除 + </el-button> + </div> + </template> + </el-table-column> --> + </el-table> + </el-row> + + + <el-row style="margin-top: 20px"> + <el-col :span="22"> + <el-form-item style="text-align: center"> + <el-button type="primary" class="btns" @click="submitForm('ruleForm')" + >保存</el-button + > + <el-button @click="returnIndex">关闭</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> + </div> + + <el-dialog + :title="title" + :visible.sync="dialogVisible" + :close-on-click-modal="false" + width="40%"> + <el-form ref="form" :rules="dangerRules" :model="dangerForm" label-width="100px"> + <el-row> + <el-col :span="9"> + <el-form-item label="复查结果" prop="ht_branch"> + <el-input v-model="dangerForm.address" rows="3" type="textarea" class="multiline"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="地点" prop="address"> + <el-input v-model="dangerForm.address" rows="3" type="textarea" class="multiline"></el-input> + </el-form-item> + </el-col> + </el-row> + + <el-row> + <el-col :span="9"> + <el-form-item label="隐患内容" prop="ht_content"> + <el-input v-model="dangerForm.ht_content" rows="3" type="textarea" class="multiline"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="整改措施" prop="measure"> + <el-input v-model="dangerForm.measure" rows="3" type="textarea" class="multiline"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="隐患类别" prop="ht_typesub"> + <el-select v-model="dangerForm.ht_typesub" placeholder="请选择"> + <el-option + v-for="item in YHLXList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="关联危险源" prop="DTRisk_bankId"> + <el-select v-model="dangerForm.DTRisk_bankId" placeholder="请选择" @change="changeWxy" filterable> + <el-option + v-for="item in dangerList" + :key="item.id" + :label="item.mriskPoint" + :value="item.id"> + </el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + + <el-row> + <el-col :span="9"> + <el-form-item label="风险等级" prop="DTRisk_level"> + <el-input v-model="dangerForm.DTRisk_level" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="隐患级别" prop="ht_level"> + <el-select v-model="dangerForm.ht_level" placeholder="请选择"> + <el-option + v-for="item in YHJBList" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="限改时间" prop="alter_time"> + <el-date-picker + v-model="dangerForm.alter_time" + type="date" + value-format="yyyy-MM-dd" + placeholder="选择日期" + style="width: 100%" + > + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="责任人" prop="duty_officer"> + <el-input v-model="dangerForm.duty_officer"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="完成时间" prop="alter_time"> + <el-date-picker + v-model="dangerForm.alter_time" + type="date" + value-format="yyyy-MM-dd" + placeholder="选择日期" + style="width: 100%" + > + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="复查时间" prop="alter_time"> + <el-date-picker + v-model="dangerForm.alter_time" + type="date" + value-format="yyyy-MM-dd" + placeholder="选择日期" + style="width: 100%" + > + </el-date-picker> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="复查人" prop="repeatId"> + <el-input v-model="dangerForm.duty_officer"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item style="text-align: center"> + <el-button type="primary" class="btns" @click="submitDanger('form')" + >保存</el-button + > + <el-button @click="dialogVisible=false">关闭</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + </el-dialog> + + </div> +</template> + +<script> +import Titlename from "../../components/Titlename/index.vue"; + +import {initJCBM ,initYHLX, initBC ,initJCLB ,initYHBM ,initYHJB,initLlr,initReformStatus,initYwks,initWxy} from "@/api/sgyhpczl/initSelect"; +import {saveDanger,initDangerRebound,getDangerInfo,editDanger} from '@/api/sgyhpczl/hiddenDangerRegistration' +import {deepClone} from '@/utils' + +export default { + components: { Titlename }, + name: "hiddenDangerList", + data() { + return { + addShow:true, + id:'', + rowIndex:-1, + dangerList:[], + dangerForm:{}, + dangerRules:{ + ht_branch: [{ required: true, message: '不能为空', trigger: 'blur' },], + address: [{ required: true, message: '不能为空', trigger: 'blur' },], + ht_content: [{ required: true, message: '不能为空', trigger: 'blur' },], + ht_typesub: [{ required: true, message: '不能为空', trigger: 'blur' },], + DTRisk_bankId: [{ required: true, message: '不能为空', trigger: 'blur' },], + ht_level: [{ required: true, message: '不能为空', trigger: 'blur' },], + alter_time: [{ required: true, message: '不能为空', trigger: 'blur' },], + alter_status: [{ required: true, message: '不能为空', trigger: 'blur' },], + Review: [{ required: true, message: '不能为空', trigger: 'blur' },], + duty_officer:[{ required: true, message: '不能为空', trigger: 'blur' },] + }, + title:'新增', + dialogVisible:false, + BCList:[], + JCLBList:[], + JCDWList:[{label:"众泰煤焦化",value:0},{label:"上级单位",value:1}], + YHBMList:[], + YHLXList:[], + YHJBList:[], + JCBMList:[], + llrList:[], + statusList:[], + YWKSList:[], + reboundList:[], + ruleForm: {}, + rules: { + check_date: [{ required: true, message: '不能为空', trigger: 'blur' },], + check_class: [{ required: true, message: '不能为空', trigger: 'blur' },], + check_main_branch: [{ required: true, message: '不能为空', trigger: 'blur' },], + check_branch: [{ required: true, message: '不能为空', trigger: 'blur' },], + check_man: [{ required: true, message: '不能为空', trigger: 'blur' },], + checktype: [{ required: true, message: '不能为空', trigger: 'blur' },], + }, + tableData: [], + }; + }, + mounted(){ + this.initBC() + this.initJCLB() + this.initYHJB() + this.initYHLX() + //this.initLlr() + this.initReformStatus() + this.initYHBM() + this.initYWKS() + this.initWXY() + this.initDangerRebound() + this.id = this.$route.query.id; + if( this.id!=null && this.id!=''){ + this.initInfo(); + this.addShow=false + } + }, + methods: { + async initInfo(){ + var res=await getDangerInfo(this.id) + if (res.data.ok==1){ + this.ruleForm=res.data.data + this.changeJCDW(res.data.data.check_main_branch) + var obj=deepClone(res.data.data) + this.tableData.push(obj) + + } + }, + initDangerRebound(){ + initDangerRebound().then(res=>{ + if (res.data.ok==1){ + this.reboundList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + submitDanger(formName){ + this.$refs[formName].validate((valid) => { + if (valid) { + if(this.title=='新增'){ + this.tableData.push(this.dangerForm) + }else { + var arr = this.tableData; + arr.splice(this.rowIndex, 1, this.dangerForm); + this.tableData = arr; + } + this.dialogVisible=false + + } else { + console.log("error submit!!"); + return false; + } + }); + }, + deleteDanger(row, index) { + + + this.$confirm('确认删除吗', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }) + .then(() => { + var arr = deepClone(this.tableData); + var brr = []; + for (var i = 0; i < arr.length; i++) { + if (i == index) { + } else { + brr.push(arr[i]); + } + } + this.tableData = deepClone(brr); + //this.tableData.splice(index) + + }) + .catch(error => { + }); + + + }, + editDanger(row, index) { + this.dangerForm = deepClone(row); + this.rowIndex = index; + this.dialogVisible = true; + this.title = '编辑'; + }, + + addDanger(){ + this.dangerForm={} + this.title="新增" + this.dialogVisible=true + }, + changeWxy(e){ + for(var i=0;i<this.dangerList.length;i++){ + if(e==this.dangerList[i].id){ + this.dangerForm.DTRisk_level=this.dangerList[i].mriskLevel + this.dangerForm.dangerousSource=this.dangerList[i].mriskPoint + } + } + }, + initWXY(){ + var param={ + page: 1, + limit: 1000 + } + initWxy(param).then(res=>{ + if (res.data.ok==1){ + this.dangerList=res.data.data.items + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initYWKS(){ + initYwks().then(res=>{ + if (res.data.ok==1){ + this.YWKSList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initYHBM(){ + initYHBM().then(res=>{ + if (res.data.ok==1){ + this.YHBMList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initLlr(){ + initLlr().then(res=>{ + if (res.data.ok==1){ + this.llrList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initReformStatus(){ + initReformStatus().then(res=>{ + if (res.data.ok==1){ + this.statusList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + changeJCDW(val){ + initJCBM(val).then(res=>{ + if (res.data.ok==1){ + this.JCBMList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initYHLX(){ + initYHLX().then(res=>{ + if (res.data.ok==1){ + this.YHLXList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initYHJB(){ + initYHJB().then(res=>{ + if (res.data.ok==1){ + this.YHJBList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initBC(){ + initBC().then(res=>{ + if (res.data.ok==1){ + this.BCList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + initJCLB(){ + initJCLB().then(res=>{ + if (res.data.ok==1){ + this.JCLBList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + + + returnIndex(){ + this.$router.push({ + path:"/hiddenDangerRegistration" + }) + }, + submitForm(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + if(this.tableData==null || this.tableData.length==0){ + this.$message({type:'error', message:"请添加隐患", duration:2000}) + } + this.ruleForm.items=this.tableData + if(this.addShow){ + saveDanger(this.ruleForm).then(res=>{ + if (res.data.ok==1){ + this.$message({type:'success', message:"新增成功", duration:3000}) + this.$router.push({ + path:"/hiddenDangerRegistration" + }) + }else { + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }else { + var param=deepClone(this.ruleForm) + var obj=deepClone(this.tableData[0]) + param.ht_branch=obj.ht_branch + param.address=obj.address + param.ht_content=obj.ht_content + param.measure=obj.measure + param.ht_typesub=obj.ht_typesub + param.DTRisk_bankId=obj.DTRisk_bankId + param.DTRisk_level=obj.mriskLevel + param.dangerousSource=obj.mriskPoint + param.ht_level=obj.ht_level + param.alter_time=obj.alter_time + param.duty_officer=obj.duty_officer + param.alter_status=obj.alter_status + param.Review=obj.Review + param.repeatId=obj.repeatId + editDanger(param).then(res=>{ + if (res.data.ok==1){ + this.$message({type:'success', message:"编辑成功", duration:3000}) + this.$router.push({ + path:"/hiddenDangerRegistration" + }) + }else { + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + } + + + + } else { + console.log("error submit!!"); + return false; + } + }); + }, + }, +}; +</script> + +<style scoped> +.app-container { + padding: 20px; + height: 850px; + overflow-y: auto; +} + +.app-container /deep/ .box { + padding-top: 0; +} + +/* /deep/ .multiline .el-input__inner { + height: 62px; +} */ + .btns{ + background-color: #034ea2; + border: 1px solid #034ea2; + } +</style> diff --git a/src/views/safetyHazardAccount/superiorsSend.vue b/src/views/safetyHazardAccount/superiorsSend.vue deleted file mode 100644 index 3da5aed..0000000 --- a/src/views/safetyHazardAccount/superiorsSend.vue +++ /dev/null @@ -1,13 +0,0 @@ -<template> - -</template> - -<script> -export default { - name: "superiorsSend" -} -</script> - -<style scoped> - -</style> diff --git a/src/views/safetyHazardAccount/supervision.vue b/src/views/safetyHazardAccount/supervision.vue new file mode 100644 index 0000000..1e1d86f --- /dev/null +++ b/src/views/safetyHazardAccount/supervision.vue @@ -0,0 +1,108 @@ +<template> + <div> + <el-button type="text" @click="dialogVisible = true">点击打开 Dialog</el-button> + <el-dialog + title="督查督办" + :visible.sync="dialogVisible" + width="37%" + :before-close="handleClose"> + <el-checkbox-group v-model="checkList"> + <el-checkbox label="安全环保部"></el-checkbox> + <el-checkbox label="生产技术部 "></el-checkbox> + <el-checkbox label="机电部"></el-checkbox> + <el-checkbox label="企管部"></el-checkbox> + <el-checkbox label="消防保卫部"></el-checkbox> + + <el-checkbox label="质检中心"></el-checkbox> + <el-checkbox label="市场开发部"></el-checkbox> + <el-checkbox label="综合办公室"></el-checkbox> + <el-checkbox label="工程部 "></el-checkbox> + <el-checkbox label="财务部"></el-checkbox> + + <el-checkbox label="党群工作部"></el-checkbox> + <el-checkbox label="纪检监察部"></el-checkbox> + <el-checkbox label="化产一车间"></el-checkbox> + <el-checkbox label="炼焦一车间"></el-checkbox> + <el-checkbox label="原料一车间"></el-checkbox> + + <el-checkbox label="选煤厂"></el-checkbox> + <el-checkbox label="电仪车间"></el-checkbox> + <el-checkbox label="众和机电"></el-checkbox> + <el-checkbox label="原料二车间"></el-checkbox> + <el-checkbox label="化产二车间"></el-checkbox> + + <el-checkbox label="炼焦二车间"></el-checkbox> + <el-checkbox label="甲醇厂"></el-checkbox> + <el-checkbox label="干熄焦"></el-checkbox> + </el-checkbox-group> + <span slot="footer" class="dialog-footer"> + <el-button class="btn" type="primary" @click="dialogVisible = false">确 定</el-button> + </span> + </el-dialog> + </div> +</template> + +<script> +export default { + name: "supervision", + data() { + return { + dialogVisible: false, + checkList: [] + }; + }, + methods: { + handleClose(done) { + this.$confirm('确认关闭?') + .then(_ => { + done(); + }) + .catch(_ => {}); + } + } +} +</script> + +<style scoped> +/deep/ .el-dialog__header{ + text-align: center; + padding: 50px 50px 20px 50px; +} +/deep/ .el-dialog__header .el-dialog__title { + font-size: 12px; + font-weight: bold; +} +/deep/ .el-dialog__body{ + text-align: center; + padding: 30px 50px 30px 50px; +} +/deep/ .el-checkbox-group{ + display: flex; + flex-direction: row; + flex-wrap: wrap; + align-items: center; +} +/deep/ .el-checkbox{ + width: 120px; + text-align: left; + line-height: 25px; +} +/deep/ .el-dialog__footer{ + text-align: center; +} +.btn{ + background: url(../../assets/btn.gif) no-repeat; + width: 76px; + height: 26px; + line-height: 26px; + font-size: 14px; + border: none; + color: #fff; + cursor: pointer; + overflow: visible; + padding: 0; +} +/deep/ .el-checkbox__inner{ + border: 1px solid #000000; +} +</style> diff --git a/src/views/summaryPotentialSafetyHzards/index.vue b/src/views/summaryPotentialSafetyHzards/index.vue index 34cd1a0..43c0d9a 100644 --- a/src/views/summaryPotentialSafetyHzards/index.vue +++ b/src/views/summaryPotentialSafetyHzards/index.vue @@ -1,13 +1,498 @@ <template> + <div> + <div class="whole_top"> + <el-form ref="form" :inline="true" :model="form" label-width="100px"> + <div class="top"> + <div class="select"> + <el-form-item> + <el-select v-model="form.ht_branch" multiple placeholder="请选择隐患部门" style="color: red"> + <el-option + v-for="item in YHBMList" + :key="item.branch_name" + :label="item.branch_name" + :value="item.branch_name"> + </el-option> + </el-select> + </el-form-item> + <el-form-item> + <el-select v-model="form.ht_typesub" multiple placeholder="请选择隐患专业" style="color: red"> + <el-option + v-for="item in YHLXList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item> + <el-select v-model="form.ht_level" multiple placeholder="请选择隐患级别" style="color: red"> + <el-option + v-for="item in YHJBList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item> + <el-select v-model="form.checktype" multiple placeholder="请选择检查类型" style="color: red"> + <el-option + v-for="item in JCLBList" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item> + <el-select v-model="form.ht_community" multiple placeholder="请选择上级检查单位" + style="color: red"> + <el-option + v-for="item in SJLBList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item> + <el-select v-model="form.check_branch" multiple placeholder="请选择本部检查单位" + style="color: red"> + <el-option + v-for="item in JCBMList" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </div> + <el-row> + <el-form-item label="统计类别"> + <el-radio-group v-model="form.x_axis" style="padding: 0px 0;"> + <el-radio label="ht_branch">按隐患部门</el-radio> + <el-radio label="ht_typesub">按专业</el-radio> + <el-radio label="ht_level">按级别</el-radio> + <el-radio label="checktype">按检查类别</el-radio> + <el-radio label="ht_community">按检查单位(上级单位)</el-radio> + <el-radio label="check_branch">按检查单位(本部单位)</el-radio> + </el-radio-group> + </el-form-item> + </el-row> + <el-row> + <el-form-item label="汇总类别"> + <el-radio-group v-model="form.y_axis"> + <el-radio label="ht_branch">按隐患部门</el-radio> + <el-radio label="ht_typesub">按专业</el-radio> + <el-radio label="ht_level">按级别</el-radio> + <el-radio label="checktype">按检查类别</el-radio> + <el-radio label="ht_community">按检查单位(上级单位)</el-radio> + <el-radio label="check_branch">按检查单位(本部单位)</el-radio> + </el-radio-group> + </el-form-item> + </el-row> + </div> + <div class="center" style="text-align: center;padding-top: 10px;"> + <el-form-item label="检查时间:"> + <el-date-picker + v-model="time" + type="daterange" + range-separator="至" + value-format="yyyy-MM-dd" + start-placeholder="开始日期" + end-placeholder="结束日期"> + </el-date-picker> + </el-form-item> + <el-form-item> + <el-button class="btn" size="small" type="primary" @click="queryData" + >汇总 + </el-button> + <el-button class="btn" size="small" type="primary" @click="exportData()" + >导出Excel + </el-button> + </el-form-item> + </div> + </el-form> + <el-table id="out-table" + :data="tableData" + v-loading="loading" + style="width: 100%"> + <el-table-column align="center" label="众泰煤焦化-安全隐患台帐"> + <el-table-column + prop="y_label" + label="隐患部门\隐患专业" + align="center"> + </el-table-column> + <el-table-column + v-for="item in tableData[0].items" + :key="item.x_label" + :label="item.x_label" + align="center"> + <template slot-scope="scope"> + <span @click="showYHList(scope.row,item)" class="clickSpan"> + {{ getRowNum(scope.row, item.x_label) }} + </span> + </template> + </el-table-column> + </el-table-column> + </el-table> + <div style="color: #c5021a;margin-top: 20px;"> + <div>温馨提示:</div> + <div>点选可查询隐患详情。</div> + </div> + </div> + </div> </template> <script> + +import { + initJCBM, + initYHLX, + initBC, + initJCLB, + initYHBM, + initYHJB, + initLlr, + initReformStatus +} from "@/api/sgyhpczl/initSelect"; + +import {danger_summary} from "@/api/sgyhpczl/summaryPotentialSafetyHzards"; +import FileSaver from "file-saver"; +import XLSX from "xlsx"; + export default { - name: "index" + name: "index", + data() { + return { + options: [{ + value: '选项1', + label: '安全环保部' + }, { + value: '选项2', + label: '生产技术部' + }, { + value: '选项3', + label: '企管部' + }, { + value: '选项4', + label: '消防保卫部' + }, { + value: '选项5', + label: '质检中心' + }], + value1: [], + value2: [], + value3: [], + value4: [], + value5: [], + value6: [], + radio: 3, + TJType: "ht_typesub", + HZType: "ht_branch", + time: [], + tableData: [ + {} + ], + form: { + x_axis: "ht_typesub", + y_axis: "ht_branch" + }, + JCDWList: [{label: "众泰煤焦化", value: 0}, {label: "上级单位", value: 1}], + JCBMList: [], + YHLXList: [], + BCList: [], + JCLBList: [], + SJLBList: [], + YHBMList: [], + YHJBList: [], + YHZTList: [], + loading: false, + searchData:{}, + startDate: "", + endDate: "", + } + }, + mounted() { + this.initYHLX() + this.initYHJB() + this.initBC() + this.initJCLB() + this.initLlr() + this.initYHBM() + this.initYHZT() + this.initJCBM() + this.initSJJCBM() + let startDate = this.getCurrentMonthFirst(); + let endDate = this.getCurrentMonthLast(); + this.time.push(startDate, endDate); + this.queryData(); + + }, + methods: { + initYHLX() { + initYHLX().then(res => { + if (res.data.ok == 1) { + this.YHLXList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initYHJB() { + initYHJB().then(res => { + if (res.data.ok == 1) { + this.YHJBList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initYHZT() { + initReformStatus().then(res => { + if (res.data.ok == 1) { + this.YHZTList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initBC() { + initBC().then(res => { + if (res.data.ok == 1) { + this.BCList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initJCLB() { + initJCLB().then(res => { + if (res.data.ok == 1) { + this.JCLBList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initLlr() { + initLlr().then(res => { + if (res.data.ok == 1) { + this.llrList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initYHBM() { + initYHBM().then(res => { + if (res.data.ok == 1) { + this.YHBMList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initJCBM() { + initJCBM(0).then(res => { + if (res.data.ok == 1) { + this.JCBMList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initSJJCBM() { + initJCBM(1).then(res => { + if (res.data.ok == 1) { + this.SJLBList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + queryData() { + let requestData = {}; + let selectData = [] + for (const queryElement in this.form) { + if (queryElement != "x_axis" && queryElement != "y_axis") { + if (this.form[queryElement] != null && this.form[queryElement] != '') { + let searchCloumn = { + "field": queryElement, + "value": this.form[queryElement].join(','), + "type": "IN" + } + selectData.push(searchCloumn); + } + } else { + requestData[queryElement] = this.form[queryElement]; + } + } + let timeSearchCloumn = { + "field": "check_date", + "value": this.time[0] + "至" + this.time[1], + "type": "DAT" + } + selectData.push(timeSearchCloumn) + requestData.query_condition = selectData; + this.searchData = requestData; + console.log(this.searchData) + this.loading = true; + danger_summary(requestData).then(res => { + this.loading = false; + if (res.data.ok == 1) { + this.tableData = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + getCurrentMonthFirst() { + var date = new Date(); + date.setDate(1); + var month = parseInt(date.getMonth() + 1); + var day = date.getDate(); + if (month < 10) { + month = '0' + month + } + if (day < 10) { + day = '0' + day + } + + return date.getFullYear() + '-' + month + '-' + day; + }, + getCurrentMonthLast() { + var date = new Date(); + var currentMonth = date.getMonth(); + var nextMonth = ++currentMonth; + var nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1); + var oneDay = 1000 * 60 * 60 * 24; + var lastTime = new Date(nextMonthFirstDay - oneDay); + var month = parseInt(lastTime.getMonth() + 1); + var day = lastTime.getDate(); + if (month < 10) { + month = '0' + month + } + if (day < 10) { + day = '0' + day + } + return date.getFullYear() + '-' + month + '-' + day; + }, + getRowNum(row, str) { + var data = row.items.find(n => n.x_label == str); + return data.value + }, + + showYHList(row, item) { + var searchData = this.searchData; + searchData.x_label = item.x_label; + searchData.y_label = row.y_label; + this.$router.push({ + path: "/summaryList", + query: {"searchData": searchData} + }) + }, + exportData() { + var xlsxParam = {raw: true}; + /* 从表生成工作簿对象 */ + var wb = XLSX.utils.table_to_book( + document.querySelector("#out-table"), + xlsxParam + ); + /* 获取二进制字符串作为输出 */ + var wbout = XLSX.write(wb, { + bookType: "xlsx", + bookSST: true, + type: "array", + }); + try { + FileSaver.saveAs( + //Blob 对象表示一个不可变、原始数据的类文件对象。 + //Blob 表示的不一定是JavaScript原生格式的数据。 + //File 接口基于Blob,继承了 blob 的功能并将其扩展使其支持用户系统上的文件。 + //返回一个新创建的 Blob 对象,其内容由参数中给定的数组串联组成。 + new Blob([wbout], {type: "application/octet-stream"}), + //设置导出文件名称 + "安全隐患汇总.xlsx" + ); + } catch (e) { + if (typeof console !== "undefined") console.log(e, wbout); + } + return wbout; + } + + } } </script> <style scoped> +.top { + padding: 10px 5px; + background: #e4edf4; +} +/*下拉框图标隐藏*/ +.whole_top .select /deep/ .el-input__suffix-inner .is-reverse { + display: none; +} + +.whole_top .select /deep/ .el-input__suffix-inner .el-icon-arrow-up { + display: none; +} + +/*设下拉框颜色*/ +.select /deep/ .el-input__inner { + border: 1px solid #c5dbec; + font-weight: bold; + background: #dfeffc; + /*.el-icon-circle-close*/ +} + +.whole_top .select /deep/ .el-select .el-input__inner:focus { + color: #e6860b; +} + +.select /deep/ .is-focus .el-select__tags-text { + color: #000000; +} + +/*下拉框选值之后的样式*/ +.select /deep/ .el-tag.el-tag--info { + background-color: transparent;; + border-color: transparent; + font-weight: bold; + color: #e6860b; +} + +/*placeholder颜色修改*/ +.whole_top ::-webkit-input-placeholder { + color: #000000; +} + +.whole_top :-moz-placeholder { + color: #000000; +} + +.whole_top ::-moz-placeholder { + color: #000000; +} + +.whole_top :-ms-input-placeholder { + color: #000000; +} + +/*日期*/ +/deep/ .el-date-editor .el-range-separator { + width: auto; +} + +.clickSpan:hover { + cursor: pointer; +} + +.btn { + background-color: #034ea2; + border: 1px solid #034ea2; +} </style> diff --git a/src/views/summaryPotentialSafetyHzards/summaryForm.vue b/src/views/summaryPotentialSafetyHzards/summaryForm.vue new file mode 100644 index 0000000..6402749 --- /dev/null +++ b/src/views/summaryPotentialSafetyHzards/summaryForm.vue @@ -0,0 +1,386 @@ +<template> + <div class="app-container"> + <div> + <Titlename title="发送隐患单"></Titlename> + <div class="whole-form"> + <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="150px" class="demo-ruleForm" + style="margin: 0 14% 0 16%;"> + <el-row> + <el-col :span="9"> + <el-form-item label="隐患编号" prop="number"> + <el-input v-model="ruleForm.number" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="检查单位" prop="check_main_branch"> + <el-input v-model="ruleForm.check_main_branch" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="检查人" prop="check_man"> + <el-input v-model="ruleForm.check_man" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="陪检人员" prop="acc_man"> + <el-input v-model="ruleForm.acc_man" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="检查时间" prop="check_date"> + <el-date-picker + v-model="ruleForm.check_date" + type="date" + :disabled="true" + placeholder="选择日期" + style="width: 100%"> + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="班次" prop="check_class"> + <el-input v-model="ruleForm.check_class" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="跟班、带班情况" prop="name"> + <el-input v-model="ruleForm.name" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="跟班、带班人员" prop="name"> + <el-input v-model="ruleForm.name" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="行走路线" prop="route"> + <el-input type="textarea" v-model="ruleForm.route" class="multiline" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="隐患单位" prop="ht_community"> + <el-input v-model="ruleForm.ht_community" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="隐患部门" prop="ht_branch"> + <el-input v-model="ruleForm.ht_branch" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="隐患地点" prop="address"> + <el-input type="textarea" v-model="ruleForm.address" class="multiline" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="隐患内容" prop="ht_content"> + <el-input type="textarea" v-model="ruleForm.ht_content" class="multiline" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="隐患类别" prop="ht_typesub"> + <el-input v-model="ruleForm.ht_typesub" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="隐患级别" prop="ht_level"> + <el-input v-model="ruleForm.ht_level" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="整改措施" prop="measure"> + <el-input v-model="ruleForm.measure" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="所需资金" prop="name"> + <el-input v-model="ruleForm.name" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="限改时间" prop="alter_time"> + <el-date-picker + v-model="ruleForm.alter_time" + type="date" + :disabled="true" + placeholder="选择日期" + style="width: 100%"> + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="责任人" prop="duty_officer"> + <el-input v-model="ruleForm.duty_officer" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="完成时间" prop="name"> + <!--<el-input v-model="ruleForm.name"></el-input>--> + <el-date-picker + v-model="value1" + type="date" + :disabled="true" + placeholder="选择日期" + style="width: 100%"> + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="整改完成情况" prop="alter_status"> + <el-input v-model="ruleForm.alter_status" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="复查时间" prop="name"> + <!--<el-input v-model="ruleForm.name"></el-input>--> + <el-date-picker + v-model="value1" + type="date" + :disabled="true" + placeholder="选择日期" + style="width: 100%"> + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="复查人" prop="name"> + <el-input v-model="ruleForm.name" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="复查结果" prop="name"> + <el-input v-model="ruleForm.name" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="整改次数" prop="name"> + <el-input v-model="ruleForm.name" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="危险源" prop="dangerousSource"> + <el-input type="textarea" v-model="ruleForm.dangerousSource" class="multiline" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="风险等级" prop="DTRisk_level"> + <el-input v-model="ruleForm.DTRisk_level" :disabled="true"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="业务科室" prop="Review"> + <el-input v-model="ruleForm.Review" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="附件" prop="DTRisk_level"> + <el-input v-model="ruleForm.DTRisk_level" :disabled="true"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item label="流程信息" prop="name"> + <!-- <el-input v-model="ruleForm.name" class="multiline" :disabled="true"></el-input>--> + <el-table + :data="tableData" + border + style="width: 100%"> + <el-table-column + prop="date" + label="步骤" + align="center" + width="60"> + </el-table-column> + <el-table-column + prop="name" + label="操作人" + align="center" + width="138"> + </el-table-column> + <el-table-column + prop="province" + label="处理时间" + align="center" + width="200"> + </el-table-column> + <el-table-column + prop="city" + label="审批意见" + align="center" + width="260"> + </el-table-column> + <el-table-column + prop="address" + label="流程信息" + align="center" + width="188"> + </el-table-column> + </el-table> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item style="text-align: center;"> + <el-button class="btn" size="small" type="primary" @click="close()" + >关闭</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> + </div> + + </div> +</template> + +<script> + import Titlename from "../../components/Titlename/index.vue"; + import {getDangerInfo,next_step_do} from '@/api/sgyhpczl/hiddenDangerRegistration' + import {deepClone} from '@/utils' + export default { + components: {Titlename}, + name: "hiddenDangerList", + data() { + return { + id:'', + ruleForm: {}, + rules: { + reviewTime: { required: true, message: '请填写复查时间', trigger: 'blur' }, + rechecker: { required: true, message: '请填写复查人', trigger: 'blur' }, + reviewResults: { required: true, message: '请填写复查结果', trigger: 'blur' }, + desc1: { required: true, message: '复查不通过时请在备注说明原因!', trigger: 'blur' }, + }, + tableData: [], + fileList: [], + }; + }, + mounted(){ + this.id = this.$route.query.id; + if( this.id!=null && this.id!=''){ + this.initInfo(); + } + }, + methods: { + async initInfo(){ + var res=await getDangerInfo(this.id) + if (res.data.ok==1){ + this.ruleForm=res.data.data + this.ruleForm.next='发送到'+res.data.data.ht_community+res.data.data.ht_branch + + } + }, + submitForm(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + var param={ + id:this.id, + step: "1", + dealContent: this.ruleForm.dealContent + } + next_step_do(param).then(res=>{ + if (res.data.ok==1){ + this.$message({type:'success', message:"fas成功", duration:3000}) + this.close() + }else { + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + } else { + console.log('error submit!!'); + return false; + } + }); + }, + handleRemove(file, fileList) { + console.log(file, fileList); + }, + handlePreview(file) { + console.log(file); + }, + beforeUpload(file) { + var FileExt = file.name.replace(/.+\./, ""); + if (['jpg','png','bmp','gif','jpeg'].indexOf(FileExt.toLowerCase()) === -1){ + this.$message({ + type: 'warning', + message: '请上传后缀名为jpg、png、bmp、gif、jpeg的图片!' + }); + return false; + } + }, + close(){ + this.$router.push({ + path:"/hiddenDangerRegistration" + }) + } + } + } +</script> + +<style scoped> + .app-container { + padding: 20px; + height: 850px; + overflow-y: auto; + } + + /deep/ .box { + padding-top: 0; + } + + /deep/ .multiline .el-input__inner { + height: 62px; + } + /deep/ .textarea .el-textarea__inner{ + height: 80px; + max-height: 80px; + overflow-y: auto + } + /deep/ .textarea2 .el-textarea__inner{ + height: 100px; + max-height: 100px; + overflow-y: auto + } + .btn{ + background-color: #034ea2; + border: 1px solid #034ea2; + } + /*.el-button:hover {*/ + /* background: #66b1ff;*/ + /* border-color: #66b1ff;*/ + /* color: #FFF;*/ + /*}*/ +</style> diff --git a/src/views/summaryPotentialSafetyHzards/summaryList.vue b/src/views/summaryPotentialSafetyHzards/summaryList.vue new file mode 100644 index 0000000..6baa8dc --- /dev/null +++ b/src/views/summaryPotentialSafetyHzards/summaryList.vue @@ -0,0 +1,377 @@ +<template> + <div class="app-container"> + + <el-table :data="tableData" style="width: 100%" @selection-change="changeBox"> + <el-table-column type="selection" width="55" align="center"></el-table-column> + <el-table-column prop="ht_community" label="单位" align="center" width="120"></el-table-column> + <el-table-column prop="number" label="编号" align="center" width="120"> + <template slot-scope="scope"> + <div class="blue-font-color" @click="showDetails(scope.row)">{{ scope.row.number }}</div> + </template> + </el-table-column> + <el-table-column prop="check_branch" label="检查部门" align="center" width="120"></el-table-column> + <el-table-column prop="check_man" label="检查人" align="center" width="120"></el-table-column> + <!-- <el-table-column prop="checktype" label="检查类别" align="center"></el-table-column> --> + <el-table-column label="隐患项目" align="center"> + <el-table-column prop="check_date" label="检查时间" width="120" align="center"> + <template slot-scope="scope"> + <label>{{ formatDate(scope.row.check_date) }}</label><br/> + <label>{{ scope.row.check_class }}</label> + </template> + </el-table-column> + <el-table-column prop="address" label="地点" align="center"> + <template slot-scope="scope"> + <el-popover trigger="hover" placement="top"> + <p>{{ scope.row.address }}</p> + <div slot="reference" class="name-wrapper">{{ + scope.row.address != null && scope.row.address.length > 10 ? scope.row.address.substring(0, 8) + "...." : scope.row.address + }} + </div> + </el-popover> + </template> + </el-table-column> + <el-table-column prop="ht_content" label="内容" align="center"> + <template slot-scope="scope"> + <el-popover trigger="hover" placement="top"> + <p>{{ scope.row.ht_content }}</p> + <div slot="reference" class="name-wrapper">{{ + scope.row.ht_content != null && scope.row.ht_content.length > 10 ? scope.row.ht_content.substring(0, 8) + "...." : scope.row.ht_content + }} + </div> + </el-popover> + </template> + </el-table-column> + <el-table-column prop="ht_typesub" label="类别" align="center"></el-table-column> + <el-table-column prop="ht_level" label="级别" width="100" align="center"></el-table-column> + </el-table-column> + <el-table-column label="整改计划" align="center"> + <el-table-column prop="measure" label="整改措施" width="150" align="center"></el-table-column> + <el-table-column prop="ht_branch" label="责任单位" align="center"></el-table-column> + <el-table-column prop="duty_officer" label="责任人" align="center"></el-table-column> + <el-table-column prop="alter_time" label="限改时间" width="120" :formatter="formatColumnDate" + align="center"></el-table-column> + <!-- <el-table-column prop="ht_level" label="级别" align="center"> </el-table-column> --> + </el-table-column> + <el-table-column label="整改情况" align="center"> + <el-table-column prop="ACCOMPLISHTIME" label="完成时间" width="110px" :formatter="formatColumnDate" + align="center"></el-table-column> + <el-table-column prop="CALLBACKRESULT" label="复查结果" align="center"></el-table-column> + <el-table-column prop="CALLBACKPERSON" label="复查人" align="center"></el-table-column> + <el-table-column prop="CALLBACKTIME" label="复查时间" width="120" :formatter="formatColumnDate" + align="center"></el-table-column> + </el-table-column> + <el-table-column label="隐患处理状态" align="center"> + <template slot-scope="scope"> + <span v-if="scope.row.step =='1'">初始状态</span> + <span v-if="scope.row.step =='2'">整改中</span> + <span v-if="scope.row.step =='3'">复查中</span> + <span v-if="scope.row.step =='end'">处理结束</span> + </template> + </el-table-column> + <el-table-column prop="DTRisk_bankId" label="是否关联" align="center"> + <template slot-scope="scope"> + <span style="color: red" + v-if="scope.row.DTRisk_bankId==0 || scope.row.DTRisk_bankId=='' || scope.row.DTRisk_bankId==null">未关联</span> + <span v-else>已关联</span> + </template> + </el-table-column> + <el-table-column prop="DTRisk_level" label="风险等级" align="center"></el-table-column> + <el-table-column prop="warningLevel" label="初始警情" align="center"></el-table-column> + <el-table-column prop="curWarningLevel" label="当前警情" align="center"></el-table-column> + <!-- <el-table-column prop="date" label="流程操作" align="center" fixed="right"> + <template slot-scope="scope"> + <el-button @click="handleClick(scope.row)" type="text" size="small">点击发送</el-button> + </template> + </el-table-column> --> + <!-- <el-table-column prop="date" label="操作" align="center" fixed="right"> + <template slot-scope="scope"> + <el-button @click="updateClick(scope.row)" type="text" size="small">编辑</el-button> + <el-button @click="deleteClick(scope.row)" type="text" size="small">删除</el-button> + </template> + </el-table-column> --> + </el-table> + <div style="text-align: right"> + <el-pagination + v-show="recordTotal > 0" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + :current-page="currentPage" + :page-sizes="[10, 20, 30, 50]" + :page-size="pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="recordTotal" + > + </el-pagination> + </div> + <div class="btn"> + <el-button size="small" @click="close()">关闭</el-button> + </div> + </div> +</template> +<script> +import {getPageList} from "@/api/sgyhpczl/summaryPotentialSafetyHzards.js"; +import {initJCBM, initYHLX, initBC, initJCLB, initYHBM, initYHJB, initLlr} from "@/api/sgyhpczl/initSelect"; + +export default { + data() { + return { + radio1: '超期整改', + selectedList: [], + reList: [{label: "未关联", value: 0}], + llrList: [], + options: [], + form: {}, + + JCDWList: [{label: "众泰煤焦化", value: 0}, {label: "上级单位", value: 1}], + JCBMList: [], + YHLXList: [], + BCList: [], + JCLBList: [], + YHBMList: [], + YHJBList: [], + tableData: [], + listQuery: { + + + page: 1, + limit: 10, + type: 0, + form: { + // ht_community:"众泰煤焦化" + }, + }, + currentPage: 1, + pageSize: 10, + recordTotal: 0, + }; + }, + mounted() { + if (this.$route.query.searchData.query_condition != null) { + var searchData = this.$route.query.searchData; + for (const argumentsKey in searchData) { + this.listQuery[argumentsKey] = searchData[argumentsKey]; + } + this.getPageList() + } + this.initYHLX() + this.initYHJB() + this.initBC() + this.initJCLB() + this.initLlr() + this.initYHBM() + + }, + methods: { + changeBox(val) { + this.selectedList = [] + val.forEach((item) => { + this.selectedList.push(item) + }) + }, + initLlr() { + initLlr().then(res => { + if (res.data.ok == 1) { + this.llrList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initYHBM() { + initYHBM().then(res => { + if (res.data.ok == 1) { + this.YHBMList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + changeJCDW(val) { + initJCBM(val).then(res => { + if (res.data.ok == 1) { + this.JCBMList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + checkTime() { + if (this.listQuery.form.check_dateStart != null && this.listQuery.form.check_dateStart != '') { + if (this.listQuery.form.check_dateEnd != null && this.listQuery.form.check_dateEnd != '') { + } else { + this.$message({type: 'error', message: "请选择检查结束时间", duration: 3000}) + return + } + + } + if (this.listQuery.form.check_dateEnd != null && this.listQuery.form.check_dateEnd != '') { + if (this.listQuery.form.check_dateStart != null && this.listQuery.form.check_dateStart != '') { + } else { + this.$message({type: 'error', message: "请选择检查开始时间", duration: 3000}) + return + } + } + if (this.listQuery.form.alter_timeStart != null && this.listQuery.form.alter_timeStart != '') { + if (this.listQuery.form.alter_timeEnd != null && this.listQuery.form.alter_timeEnd != '') { + } else { + this.$message({type: 'error', message: "请选择限改结束时间", duration: 3000}) + return + } + + } + if (this.listQuery.form.alter_timeEnd != null && this.listQuery.form.alter_timeEnd != '') { + if (this.listQuery.form.alter_timeStart != null && this.listQuery.form.alter_timeStart != '') { + } else { + this.$message({type: 'error', message: "请选择改开始时间", duration: 3000}) + return + } + } + }, + getPageList() { + this.listQuery.page = 1 + getPageList(this.listQuery).then(res => { + if (res.data.ok == 1) { + this.tableData = res.data.data.items + this.recordTotal = res.data.data.total + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + reset() { + this.listQuery.form = {ht_community: "众泰煤焦化"} + this.getPageList() + }, + handleSizeChange(val) { + this.listQuery.limit = val + this.getPageListForPagination(); + }, + handleCurrentChange(val) { + this.listQuery.page = val + this.getPageListForPagination(); + }, + getPageListForPagination() { + this.checkTime() + getPageList(this.listQuery).then(res => { + if (res.data.ok == 1) { + this.tableData = res.data.data.items + this.recordTotal = res.data.data.total + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initYHLX() { + initYHLX().then(res => { + if (res.data.ok == 1) { + this.YHLXList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initYHJB() { + initYHJB().then(res => { + if (res.data.ok == 1) { + this.YHJBList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initBC() { + initBC().then(res => { + if (res.data.ok == 1) { + this.BCList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + initJCLB() { + initJCLB().then(res => { + if (res.data.ok == 1) { + this.JCLBList = res.data.data + } else { + this.$message({type: 'error', message: res.data.msg, duration: 3000}) + } + }) + }, + //方法区 + formatDate(data) { + // 获取单元格数据 + if (data == null) { + return null + } + let dt = new Date(data) + return dt.getFullYear() + '-' + (dt.getMonth() + 1) + '-' + dt.getDate() + }, + //方法区 + formatColumnDate(row, column) { + // 获取单元格数据 + let data = row[column.property] + if (data == null) { + return null + } + let dt = new Date(data) + return dt.getFullYear() + '-' + (dt.getMonth() + 1) + '-' + dt.getDate() + ' ' + }, + showDetails(row) { + this.$router.push({ + path: "/dangerDetails", + query: {"id": row.id, "route": "/summaryList"} + }) + }, + close() { + this.$router.push({ + path: "/summaryPotentialSafetyHzards" + }) + + } + } +}; +</script> +<style scoped> +.inquire { + display: flex; + justify-content: left; + flex-wrap: wrap; +} + +.inquire .el-form-item { + padding: 0 30px; +} + +.title-center { + padding: 20px 0; +} + +.btns { + background-color: #034ea2; + border: 1px solid #034ea2; +} + +.title-center /deep/ .el-radio-button:first-child .el-radio-button__inner { + border: none; +} + +.title-center /deep/ .el-radio-button__inner { + border: none; + border-radius: 0px; +} + +.title-center /deep/ .el-radio-button__orig-radio:checked + .el-radio-button__inner { + background-color: #034ea2; + background-color: #034ea2; +} + +.btn { + text-align: center; + margin-top: 20px; +} + +.blue-font-color:hover { + cursor: pointer; + color: blue; +} +</style> diff --git a/src/views/troubleshooting/index.vue b/src/views/troubleshooting/index.vue new file mode 100644 index 0000000..e2ca9bc --- /dev/null +++ b/src/views/troubleshooting/index.vue @@ -0,0 +1,655 @@ +<template> + <div class="app-container"> + <el-form + ref="form" + :inline="true" + class="inquire" + :model="listQuery.form" + label-width="100px" + > + <el-form-item label="地点"> + <el-input v-model="listQuery.form.ADDRESS" style="width: 202px" placeholder="请输入内容"></el-input> + </el-form-item> + <el-form-item label="主持人"> + <el-input v-model="listQuery.form.HOST" style="width: 202px" placeholder="请输入内容"></el-input> + </el-form-item> + <el-form-item label="召开时间"> + <el-col :span="11"> + <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.Conference_TimeStart" style="width: 100%" value-format="yyyy-MM-dd"></el-date-picker> + </el-col> + <el-col style="text-align: center" :span="2">-</el-col> + <el-col :span="11"> + <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.Conference_TimeEnd" style="width: 100%" value-format="yyyy-MM-dd"></el-date-picker> + </el-col> + </el-form-item> + <el-form-item style="text-align: center; padding: 0 50px"> + <el-button type="primary" class="btns" size="small" icon="el-icon-search" @click="getPageList()">查询</el-button> + <el-button type="primary" class="btns" size="small" icon="el-icon-refresh-right" @click="reset()">重置</el-button> + </el-form-item> + </el-form> + <el-row class="title-center"> + <el-col :span="5"> + <el-radio-group v-model="listQuery.type" @change="typeChange"> + <el-radio-button label="0">未上报</el-radio-button> + <el-radio-button label="1">已上报</el-radio-button> + <el-radio-button label="2">上级公司会议</el-radio-button> + </el-radio-group> + </el-col> + <div v-if="listQuery.type==0"> + <el-col :span="15"> + <el-col :span="4" :offset="offset" style="text-align: right;"> + <span style="line-height: 36px; font-size: 14px; color: #606266;margin-right:10px;font-weight: bold;">请选择上报方式</span> + </el-col> + <el-col :span="4"> + <el-select v-model="upType" placeholder="请选择" @change="changeUpType"> + <el-option v-for="item in upTypeList" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> + </el-col> + <div v-if="upType == 2"> + <el-col :span="5" :offset="1"> + <el-date-picker type="date" placeholder="选择日期" v-model="upTimeStart" style="width: 100%" value-format="yyyy-MM-dd"></el-date-picker> + </el-col> + <el-col style="text-align: center" :span="1"> + <span style="line-height: 36px; font-size: 14px; color: #606266;font-weight: bold;">至</span> + </el-col> + <el-col :span="5"> + <el-date-picker type="date" placeholder="选择日期" v-model="upTimeEnd" style="width: 100%" value-format="yyyy-MM-dd"></el-date-picker> + </el-col> + </div> + <el-col :span="2" style="text-align: right"> + <el-button type="primary" class="btns" size="small" @click="putBatch">上报</el-button> + </el-col> + </el-col> + <el-col :span="4" style="text-align: right"> + <el-button class="btns" type="primary" size="small" icon="el-icon-plus" @click="addMeeting">添加</el-button> + <el-button class="btns" type="primary" size="small" icon="el-icon-close" @click="deleteBatch()">批量删除</el-button> + </el-col> + </div> + <div v-if="listQuery.type==1"> + <el-col :span="18" style="text-align: right"> + <el-button class="btns" type="primary" size="small" @click="revokeBatch">撤销</el-button> + </el-col> + </div> + </el-row> + <el-row class="title-center"> + <el-col :span="10"> + <el-radio-group v-model="listQuery.form.CONFERENCE_PROFESSIONAL" @change="changeType2"> + <el-radio-button label="0">全部</el-radio-button> + <el-radio-button label="综合">综合</el-radio-button> + <el-radio-button label="生产">生产</el-radio-button> + <el-radio-button label="设备">设备</el-radio-button> + <el-radio-button label="电器">电器</el-radio-button> + <el-radio-button label="仪表">仪表</el-radio-button> + <el-radio-button label="消防">消防</el-radio-button> + <el-radio-button label="安全管理">安全管理</el-radio-button> + <el-radio-button label="其他">其他</el-radio-button> + </el-radio-group> + </el-col> + </el-row> + <el-table :data="tableData" style="width: 100%" @selection-change="handleSelectionChange" v-loading="listLoading"> + <el-table-column type="selection" width="55" align="center"></el-table-column> + <el-table-column v-if="listQuery.type==2" prop="communityname" label="会议单位" align="center" width="120"></el-table-column> + <el-table-column prop="CONFERENCE_TIME" label="召开时间" :formatter="formatColumnDate" align="center" width="120"></el-table-column> + <el-table-column prop="ADDRESS" label="地点" align="center" width="120"></el-table-column> + <el-table-column prop="HOST" label="主持人" align="center" width="120"></el-table-column> + <el-table-column prop="CONFERENCE_PROFESSIONAL" label="会议专业" align="center" width="120"></el-table-column> + <el-table-column prop="meeting_content" label="会议摘要" align="center"> + <template slot-scope="scope"> + <el-popover trigger="hover" placement="top"> + <p>{{ scope.row.meeting_content }}</p> + <div slot="reference" class="name-wrapper">{{ + scope.row.meeting_content != null && scope.row.meeting_content.length > 20 ? scope.row.meeting_content.substring(0, 18) + "...." : scope.row.meeting_content + }} + </div> + </el-popover> + </template> + </el-table-column> + <el-table-column prop="realFileName" label="会议纪要" align="center"> + <template slot-scope="scope" > + + <div v-for="item in scope.row.realFileName"> + <el-link type="primary" @click="downloadFile(subFile(item))"> + {{subFile(item)}} + </el-link> + </div> + </template> + </el-table-column> + <el-table-column prop="date" v-if="listQuery.type==0" label="基本操作" align="center"> + <template slot-scope="scope"> + <el-button @click="editMeeting(scope.row)" type="text" size="small">编辑</el-button> +<!-- <el-button @click="updateClick(scope.row)" type="text" size="small">保存</el-button>--> + <el-button @click="deleteMeeting(scope.row)" type="text" size="small">删除</el-button> + </template> + </el-table-column> + </el-table> + <div style="text-align: right"> + <el-pagination + v-show="recordTotal > 0" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + :current-page="currentPage" + :page-sizes="[10, 20, 30, 50]" + :page-size="pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="recordTotal" + > + </el-pagination> + </div> + + <el-dialog + :title="title" + :visible.sync="dialogVisible" + :close-on-click-modal="false" + width="40%"> + <el-form ref="form" :rules="meetingRules" :model="meetingForm" label-width="100px"> + <el-row> + <el-col :span="9"> + <el-form-item label="召开时间" prop="CONFERENCE_TIME"> + <el-date-picker type="date" placeholder="选择日期" + v-model="meetingForm.CONFERENCE_TIME" + style="width: 100%" value-format="yyyy-MM-dd" + ></el-date-picker> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="会议专业" prop="CONFERENCE_PROFESSIONAL"> + <el-select v-model="meetingForm.CONFERENCE_PROFESSIONAL" placeholder="请选择"> + <el-option + v-for="item in YHLXList" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="9"> + <el-form-item label="地点" prop="ADDRESS"> + <el-input v-model="meetingForm.ADDRESS" rows="3" type="textarea" class="multiline"></el-input> + </el-form-item> + </el-col> + <el-col :span="9" :offset="4"> + <el-form-item label="主持人" prop="HOST"> + <el-input v-model="meetingForm.HOST" rows="3" type="textarea" class="multiline"></el-input> + </el-form-item> + </el-col> + </el-row> + + <el-row> + <el-col :span="22"> + <el-form-item label="会议摘要" prop="meeting_content"> + <el-input v-model="meetingForm.meeting_content" rows="3" type="textarea" class="multiline"></el-input> + </el-form-item> + </el-col> + </el-row> + + <el-row> + <el-col :span="22" > + <el-form-item label="会议纪要" prop="realFileName"> + <el-upload + class="upload-demo" + ref="upload" + action="https://jsonplaceholder.typicode.com/posts/" + :http-request="uploadSectionFile" + :on-preview="handlePreview" + :on-remove="handleRemove" + :file-list="fileList" + :before-upload="beforeUpload" + :auto-upload="true"> + <el-button slot="trigger" size="small" type="primary" class="btns">上传附件</el-button> + </el-upload> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="22"> + <el-form-item style="text-align: center"> + <el-button type="primary" class="btns" @click="submitFrom('form')"> + 保存 + </el-button> + <el-button @click="dialogVisible=false">关闭</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + </el-dialog> + + + </div> +</template> +<script> +import {getPageList,addOrEdit, del, revoke, upload_do} from "@/api/sgyhpczl/troubleshooting"; +import {uploadFile} from "@/api/sgyhpczl/hiddenDangerRectification"; +import {deepClone} from '@/utils' +import {downloadFile} from "@/api/sgyhpczl/fileUtils"; + +import { + initYHLX, +} from "@/api/sgyhpczl/initSelect"; + +export default { + data() { + return { + listQuery: { + page: 1, + limit: 10, + type: 0,//type=0 待上报 type=1 已上报 type=2 上级公司会议 + form: { + CONFERENCE_PROFESSIONAL: '0' + }, + }, + form: {}, + currentPage: 1, + pageSize: 10, + recordTotal: 0, + YHLXList:[], + tableData: [], + selectedList: [], + listLoading: false, + // fileList:[{name:'aa.doc',url:'sssss.doc'}], + fileList:[], + upTypeList:[{label:"按勾选上报",value:0},{label:"按时间上报",value:2}], + upType:0, + upTimeStart:'', + upTimeEnd:'', + offset: 14, + + title:'', + dialogVisible:false, + meetingForm:{}, + meetingRules:{ + CONFERENCE_TIME: [{ required: true, message: '不能为空', trigger: 'blur' },], + ADDRESS: [{ required: true, message: '不能为空', trigger: 'blur' },], + HOST: [{ required: true, message: '不能为空', trigger: 'blur' },], + meeting_content: [{ required: true, message: '不能为空', trigger: 'blur' },], + CONFERENCE_PROFESSIONAL: [{ required: true, message: '不能为空', trigger: 'blur' },], + }, + }; + }, + mounted() { + this.getPageList(); + this.initYHLX(); + }, + methods: { + initYHLX(){ + initYHLX().then(res=>{ + if (res.data.ok==1){ + this.YHLXList=res.data.data + } else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + }, + changeUpType(val){ + this.upType = val; + if (val == 2){ + this.offset = 2; + }else { + this.offset = 14; + } + }, + checkTime(){ + if(this.listQuery.form.Conference_TimeStart!=null && this.listQuery.form.Conference_TimeStart!=''){ + if(this.listQuery.form.Conference_TimeEnd!=null && this.listQuery.form.Conference_TimeEnd!=''){ + }else { + this.$message({type:'error', message:"请选择检查结束时间", duration:3000}) + return + } + } + }, + //搜索 + getPageList() { + this.listQuery.page = 1; + this.checkTime(); + this.listLoading = true + getPageList(this.listQuery).then((res) => { + this.listLoading = false + if (res.data.ok == 1) { + this.tableData = res.data.data.items; + this.recordTotal = res.data.data.total; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + //重置 + reset() { + this.listQuery.form = { + CONFERENCE_PROFESSIONAL: '0' + }; + this.getPageList(); + }, + handleSizeChange(val) { + this.listQuery.limit = val; + this.getPageListForPagination(); + }, + handleCurrentChange(val) { + this.listQuery.page = val; + this.getPageListForPagination(); + }, + getPageListForPagination() { + this.checkTime(); + getPageList(this.listQuery).then((res) => { + if (res.data.ok == 1) { + this.tableData = res.data.data.items; + this.recordTotal = res.data.data.total; + } else { + this.$message({ + type: "error", + message: res.data.msg, + duration: 3000, + }); + } + }); + }, + typeChange(val) { + this.listQuery.type = val; + this.getPageList(); + }, + changeType2(val){ + this.listQuery.form.CONFERENCE_PROFESSIONAL = val; + this.getPageList(); + }, + handleSelectionChange(val) { + this.selectedList = []; + val.forEach((item) => { + this.selectedList.push(item); + }); + }, + uploadSectionFile(param) { + let form = new FormData(); + form.append('file', param.file); + form.append('type', "1"); + uploadFile(form).then(res => { + var data = res.data; + if (data.ok) { + var fileName = data.data.fileName[0]; + if (!fileName.endsWith("a62b")) { + fileName = fileName + "a62b"; + } + this.fileList.push({name:fileName,url:fileName}) + } + }).error(res => { + this.$message({ + type: 'error', + message: '附件上传失败,请重试!' + }); + }) + }, + downloadFile(path){ + let params = { + type: 1, + fileName: path, + }; + downloadFile(params).then((res) => { + if(res.data.type=='text/json'){ + const reader = new FileReader(); //创建一个FileReader实例 + reader.readAsText(res.data, 'utf-8'); //读取文件,结果用字符串形式表示 + //读取完成后,**获取reader.result** + reader.onload = e => { + this.$message({ + type: "error", + message: JSON.parse(reader.result).msg, + duration: 3000, + }); + } + } else { + let blob = new Blob([res.data], {type: 'application/octet-stream'}) + console.log(blob) + // 创建下载的链接 + let blobUrl = window.URL.createObjectURL(blob) + let downloadElement = document.createElement('a') + downloadElement.href = blobUrl + //下载后文件名 + downloadElement.download = path + document.body.appendChild(downloadElement) + //点击下载 + downloadElement.click() + //下载完成移除元素 + document.body.removeChild(downloadElement) + // 释放掉blob对象 + window.URL.revokeObjectURL(blobUrl) + } + }); + }, + subFile(fileName){ + return fileName.substring(fileName.indexOf("fileName=")+9) + }, + //删除上传组件文件 + handleRemove(file, fileList) { + this.fileList = fileList; + }, + //点击上传组件-文件列表 + handlePreview(file) { + this.downloadFile(file.url) + }, + beforeUpload(file) { + var FileExt = file.name.replace(/.+\./, ""); + if (['doc', 'docx', 'pdf', 'ppt', 'pptx','xls','xlsx','rar','zip'].indexOf(FileExt.toLowerCase()) === -1) { + this.$message({ + type: 'warning', + message: '请上传正确格式的文件!(.doc,.docx,.pdf,.ppt,.pptx,.xls,.xlsx,.rar,.zip)' + }); + return false; + } + }, + editMeeting(row, index) { + this.meetingForm = deepClone(row); + this.rowIndex = index; + this.dialogVisible = true; + this.title = '编辑'; + this.fileList = []; + const arr = this.meetingForm.realFileName; + for (let i = 0; i < arr.length; i++) { + this.fileList.push({name:this.subFile(arr[i]),url:this.subFile(arr[i])}) + } + }, + addMeeting(){ + this.fileList = []; + this.meetingForm={} + this.title="新增" + this.dialogVisible=true + }, + //提交表单 + submitFrom(formName){ + let fileStr = ''; + if (this.fileList.length != 0){ + this.fileList.forEach((item,index,arr)=>{ + if (item.url.endsWith("a62b")) { + fileStr = fileStr + item.url; + }else { + fileStr = fileStr + item.url + "a62b"; + } + }) + } + this.meetingForm.realFileName = fileStr; + console.log(this.meetingForm) + this.$refs[formName].validate((valid) => { + if (valid) { + + addOrEdit(this.meetingForm).then(res=>{ + if (res.data.ok==1) { + this.dialogVisible=false + this.$message({type:'success', message:res.data.msg, duration:3000}) + this.getPageList() + }else{ + this.$message({type:'error', message:res.data.msg, duration:3000}) + } + }) + } else { + console.log("error submit!!"); + return false; + } + }); + }, + deleteBatch() { + if (this.selectedList == null || this.selectedList.length == 0) { + this.$message({type: 'warning', message: '至少选中一条数据', duration: 3000}) + return + } + var ids = this.selectedList.map((obj) => { + return obj.id + }).join(",") + this.$confirm('确认删除吗', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + del(ids).then(() => { + this.getPageList() + this.$notify({ + title: "成功", + message: "删除成功", + type: "success", + duration: 2000, + }); + }); + }) + .catch(error => { + }); + }, + deleteMeeting(row) { + this.$confirm('确认删除吗', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + console.log(row.id) + del(row.id).then(() => { + this.getPageList() + this.$notify({ + title: "成功", + message: "删除成功", + type: "success", + duration: 2000, + }); + }); + }).catch(error => { + }); + }, + //撤销 + revokeBatch() { + if (this.selectedList == null || this.selectedList.length == 0) { + this.$message({type: 'warning', message: '至少选中一条数据', duration: 3000}) + return + } + var ids = this.selectedList.map((obj) => { + return obj.id + }).join(",") + this.$confirm('确认撤销吗', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + let data = { + id:ids + } + revoke(data).then(() => { + this.getPageList() + this.$notify({ + title: "成功", + message: "撤销成功", + type: "success", + duration: 2000, + }); + }); + }).catch(error => { + }); + }, + //上报 + putBatch() { + let data = {} + if (this.upType == 0){ + if (this.selectedList == null || this.selectedList.length == 0) { + this.$message({type: 'warning', message: '至少选中一条数据', duration: 3000}) + return + } + var ids = this.selectedList.map((obj) => { + return obj.id + }).join(",") + data = { + type: this.upType, + id: ids, + } + }else { + data = { + type: this.upType, + time: this.upTimeStart+'至'+this.upTimeEnd, + } + } + this.$confirm('确认上报吗', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + upload_do(data).then(() => { + this.getPageList() + this.$notify({ + title: "成功", + message: "上报成功", + type: "success", + duration: 2000, + }); + }); + }).catch(error => { + }); + }, + + + //日期格式转换 + formatColumnDate(row, column) { + // 获取单元格数据 + let data = row[column.property]; + if (data == null) { + return null; + } + let dt = new Date(data); + return ( + dt.getFullYear() + "-" + (dt.getMonth() + 1) + "-" + dt.getDate() + " " + ); + }, + }, +}; +</script> +<style scoped> +.inquire { + display: flex; + justify-content: left; + flex-wrap: wrap; +} +.inquire .el-form-item { + padding: 0 20px; +} +.title-center { + padding: 20px 0; +} + +.btns { + background-color: #034ea2; + border: 1px solid #034ea2; +} + +.title-center /deep/ .el-radio-button:first-child .el-radio-button__inner { + border: none; +} + +.title-center /deep/ .el-radio-button__inner { + border: none; + border-radius: 0px; +} + +.title-center + /deep/ + .el-radio-button__orig-radio:checked + + .el-radio-button__inner { + background-color: #034ea2; + background-color: #034ea2; +} +</style> -- Gitblit v1.9.2