From db97f4d5bfa03e22480f171dcca6dc32ee31f239 Mon Sep 17 00:00:00 2001 From: cqf Date: 星期三, 15 六月 2022 15:39:29 +0800 Subject: [PATCH] 整改进度/隐患下达 --- src/views/accidentHidden/fillProgress.vue | 7 + src/api/sgyhpczl/careabout.js | 6 src/api/sgyhpczl/hiddenDangerRegistration.js | 28 +++++ src/api/sgyhpczl/majorHidden.js | 19 +++ src/views/hiddenDangerRegistration/index.vue | 138 ++++++++++++++++++++++++++- src/views/accidentHidden/majorHidden.vue | 49 ++++++++- 6 files changed, 230 insertions(+), 17 deletions(-) diff --git a/src/api/sgyhpczl/careabout.js b/src/api/sgyhpczl/careabout.js index 387d4aa..2e871ad 100644 --- a/src/api/sgyhpczl/careabout.js +++ b/src/api/sgyhpczl/careabout.js @@ -1,5 +1,5 @@ import request from '@/utils/request'; -import {getTokenAndVerify} from "@/api/sgyhpczl/auth"; +import {getTokenAndVerify,getUsernameAndPassword} from "@/api/sgyhpczl/auth"; export function getPageList(data) { @@ -68,7 +68,9 @@ return request({ headers:{ 'token': getTokenAndVerify().token, - 'verify':getTokenAndVerify().verify + 'verify':getTokenAndVerify().verify, + 'username': getUsernameAndPassword.username, + 'password':getUsernameAndPassword().password }, url: "/taboi/danger/focus_list", contentType: "application/json", diff --git a/src/api/sgyhpczl/hiddenDangerRegistration.js b/src/api/sgyhpczl/hiddenDangerRegistration.js index e5a2675..75ea8f4 100644 --- a/src/api/sgyhpczl/hiddenDangerRegistration.js +++ b/src/api/sgyhpczl/hiddenDangerRegistration.js @@ -161,3 +161,31 @@ method: 'POST', }); } +//导出 +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 downloadFile(params) { + return request({ + headers: { + 'token': getTokenAndVerify().token, + 'verify': getTokenAndVerify().verify + }, + url: '/taboi/download/danger_template', + method: 'GET', + contentType: "multipart/form-data", + responseType:'blob', + params:params?params:{} + }); +} + diff --git a/src/api/sgyhpczl/majorHidden.js b/src/api/sgyhpczl/majorHidden.js index f3a4a29..6edcb8f 100644 --- a/src/api/sgyhpczl/majorHidden.js +++ b/src/api/sgyhpczl/majorHidden.js @@ -1,5 +1,5 @@ import request from '@/utils/request'; -import {getTokenAndVerify} from "@/api/sgyhpczl/auth"; +import {getTokenAndVerify,getUsernameAndPassword} from "@/api/sgyhpczl/auth"; export function getPageList(data) { @@ -78,7 +78,9 @@ return request({ headers:{ 'token': getTokenAndVerify().token, - 'verify':getTokenAndVerify().verify + 'verify':getTokenAndVerify().verify, + 'username': getUsernameAndPassword.username, + 'password':getUsernameAndPassword().password }, url: "/taboi/danger/major_list", contentType: "application/json", @@ -127,3 +129,16 @@ method: 'POST', }); } +//导出 +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 + }); +} diff --git a/src/views/accidentHidden/fillProgress.vue b/src/views/accidentHidden/fillProgress.vue index c665310..70a167b 100644 --- a/src/views/accidentHidden/fillProgress.vue +++ b/src/views/accidentHidden/fillProgress.vue @@ -48,6 +48,7 @@ align="center"> </el-table-column> <el-table-column + v-if="type==1" label="操作" align="center" width="200"> @@ -74,6 +75,7 @@ </div> </div> + <el-button @click="returnIndex">返回</el-button> <el-dialog :title="title" :visible.sync="dialogVisible" @@ -347,6 +349,11 @@ }) this.clickCellMap[id] = [] }, + returnIndex(){ + this.$router.push({ + path:"/accidentHidden/accidentHidden/majorHidden" + }) + }, } } </script> diff --git a/src/views/accidentHidden/majorHidden.vue b/src/views/accidentHidden/majorHidden.vue index ab2fffe..cb9fe93 100644 --- a/src/views/accidentHidden/majorHidden.vue +++ b/src/views/accidentHidden/majorHidden.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> @@ -136,12 +136,12 @@ <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">导出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-col :span="10"> - <el-radio-group v-model="listQuery.form.alter_status" style="border:none"> + <el-radio-group v-model="listQuery.form.alter_status" @change="changeStatus" style="border:none"> <el-radio-button label="正在整改">正在整改</el-radio-button> <el-radio-button label="正在复查">正在复查</el-radio-button> <el-radio-button label="整改完成">整改完成</el-radio-button> @@ -160,7 +160,7 @@ <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="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"> </el-table-column> <el-table-column prop="ht_typesub" label="类别" align="center"> </el-table-column> @@ -197,7 +197,7 @@ </div> </template> <script> -import {getPageList} from "@/api/sgyhpczl/majorHidden"; +import {getPageList,analogy_export_do} from "@/api/sgyhpczl/majorHidden"; import {initJCBM ,initYHLX, initBC ,initJCLB ,initYHBM ,initYHJB,initLlr} from "@/api/sgyhpczl/initSelect"; export default { data() { @@ -333,6 +333,45 @@ } }) }, + //状态切换 + changeStatus(val){ + this.listQuery.form.alter_status = val; + this.getPageList(); + }, + //日期格式转换 + 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 = 0; + //删除分页参数 + 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) + }) + }, initYHLX(){ initYHLX().then(res=>{ if (res.data.ok==1){ diff --git a/src/views/hiddenDangerRegistration/index.vue b/src/views/hiddenDangerRegistration/index.vue index de1a993..8fee8a0 100644 --- a/src/views/hiddenDangerRegistration/index.vue +++ b/src/views/hiddenDangerRegistration/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> @@ -136,7 +136,7 @@ <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">导出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"> @@ -146,9 +146,18 @@ <el-input v-model="form.name" placeholder="未选择文件"></el-input> </el-form-item> <el-form-item> - <el-button type="primary" size="small" class="btns" - >选择文件</el-button + <el-upload + class="upload-demo" + ref="upload" + :http-request="uploadSectionFile" + :on-preview="handlePreview" + :on-remove="handleRemove" + :file-list="fileList" + :before-upload="beforeUpload" + :auto-upload="true" > + <el-button type="primary" size="small" class="btns">选择文件</el-button> + </el-upload> <el-button type="primary" class="btns" @@ -161,6 +170,7 @@ class="btns" size="small" icon="el-icon-download" + @click="downloadTemplate" >下载模板</el-button > </el-form-item> @@ -190,14 +200,34 @@ <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="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"> </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="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="限改时间" width="120" align="center"></el-table-column> @@ -254,7 +284,7 @@ </div> </template> <script> -import {getPageList,delDanger} from "@/api/sgyhpczl/hiddenDangerRegistration"; +import {getPageList,delDanger,analogy_export_do,downloadFile} from "@/api/sgyhpczl/hiddenDangerRegistration"; import {initJCBM ,initYHLX, initBC ,initJCLB ,initYHBM ,initYHJB,initLlr} from "@/api/sgyhpczl/initSelect"; export default { data() { @@ -283,6 +313,7 @@ currentPage: 1, pageSize: 10, recordTotal: 0, + fileList: [], }; }, mounted(){ @@ -422,6 +453,97 @@ } }) }, + handleRemove(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(/.+\./, ""); + //.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,gif,bmp,png,doc,docx,pdf,ppt,pptx,xls,xlsx,rar,zip的图片!' + }); + return false; + } + }, + uploadSectionFile(param) { + let form = new FormData(); + var that = this; + form.append('file', param.file); + //隐患延期申请附件 + form.append('type', "0"); + uploadFile(form).then(res => { + var data = res.data; + if (data.ok) { + var fileName = data.data.fileName[0]; + if (!fileName.endsWith("a62b")) { + fileName = fileName + "a62b"; + } + var fileObj = { + "fileName": fileName, + "uid": param.file.uid + } + this.fileNameList.push(fileObj); + } + }) + }, + //下载模板 + downloadTemplate(){ + downloadFile().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) + }) + }, + exportData() { + this.listLoading = true + var requestData = JSON.parse(JSON.stringify(this.listQuery)); + requestData.export_type = 1; + //删除分页参数 + 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() + ' ' + }, initYHLX(){ initYHLX().then(res=>{ if (res.data.ok==1){ -- Gitblit v1.9.2