From b75a4660d54caa29048f99215a9e6281ea884098 Mon Sep 17 00:00:00 2001
From: cqf <2@qq.com>
Date: 星期二, 12 七月 2022 13:37:27 +0800
Subject: [PATCH] 应急管理文件上传优化
---
src/views/hiddenDangerRegistration/index.vue | 286 +++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 248 insertions(+), 38 deletions(-)
diff --git a/src/views/hiddenDangerRegistration/index.vue b/src/views/hiddenDangerRegistration/index.vue
index 5cae3cc..a1c768e 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,36 +136,49 @@
<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="14">
<el-form ref="form" :inline="true" :model="form" label-width="100px">
<el-form-item label="EXCEL导入">
- <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-input v-model="form.name" placeholder="未选择文件"></el-input>-->
+ <el-upload
+ class="upload-demo inline-block margin-right-10"
+ ref="upload"
+ action=""
+ :http-request="uploadSectionFile"
+ :on-preview="handlePreview"
+ :on-remove="handleRemove"
+ :file-list="fileList"
+ :before-upload="beforeUpload"
+ :auto-upload="false"
>
- <el-button
- type="primary"
- class="btns"
- size="small"
- icon="el-icon-bottom"
- >导入</el-button
- >
- <el-button
- type="primary"
- class="btns"
- size="small"
- icon="el-icon-download"
- >下载模板</el-button
- >
+ <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
+ <el-button
+ type="primary"
+ class="btns"
+ size="small"
+ icon="el-icon-bottom"
+ @click="dangerImport"
+ >导入</el-button
+ >
+ <el-button
+ type="primary"
+ class="btns"
+ size="small"
+ icon="el-icon-download"
+ @click="downloadTemplate"
+ >下载模板</el-button
+ >
+ </el-upload>
</el-form-item>
</el-form>
</el-col>
+<!-- <el-col :span="14-fileSpan">-->
+<!-- -->
+<!-- </el-col>-->
<el-col :span="10" style="text-align: right">
<el-button
class="btns"
@@ -177,29 +190,55 @@
>添加</el-button
>
<el-button size="small"
+ @click="deleteBatch"
>删除</el-button
>
</el-col>
</el-row>
- <el-table :data="tableData" style="width: 100%">
+ <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="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="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"> </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>
+ <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">
@@ -216,14 +255,24 @@
<span v-if="scope.row.step =='end'">处理结束</span>
</template>
</el-table-column>
- <el-table-column prop="date" label="是否关联" align="center"> </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="date" label="初始警情" align="center"> </el-table-column>
- <el-table-column prop="date" label="当前警情" align="center"> </el-table-column>
- <el-table-column prop="date" label="流程操作" align="center"> </el-table-column>
- <el-table-column prop="date" label="基本操作" align="center">
+ <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>
@@ -243,17 +292,18 @@
</div>
</template>
<script>
-import {getPageList} from "@/api/sgyhpczl/hiddenDangerRegistration";
+import {getPageList,delDanger,analogy_export_do,downloadFile,danger_import_do} from "@/api/sgyhpczl/hiddenDangerRegistration";
import {initJCBM ,initYHLX, initBC ,initJCLB ,initYHBM ,initYHJB,initLlr} from "@/api/sgyhpczl/initSelect";
export default {
data() {
return {
+ selectedList:[],
reList:[{label:"未关联",value:0}],
llrList:[],
options: [],
form:{},
-
- JCDWList:[{label:"众泰",value:0},{label:"上级单位",value:1}],
+ fileSpan:3,
+ JCDWList:[{label:"众泰煤焦化",value:0},{label:"上级单位",value:1}],
JCBMList:[],
YHLXList:[],
BCList:[],
@@ -271,6 +321,7 @@
currentPage: 1,
pageSize: 10,
recordTotal: 0,
+ fileList: [],
};
},
mounted(){
@@ -280,8 +331,42 @@
this.initBC()
this.initJCLB()
this.initLlr()
+ this.initYHBM()
},
methods:{
+ 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){
@@ -291,7 +376,7 @@
}
})
},
- changeYHDW(val){
+ initYHBM(){
initYHBM().then(res=>{
if (res.data.ok==1){
this.YHBMList=res.data.data
@@ -376,6 +461,104 @@
}
})
},
+ 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(/.+\./, "");
+ if (['xls','xlsx'].indexOf(FileExt.toLowerCase()) === -1) {
+ this.$message({
+ type: 'warning',
+ message: '请上传后缀名为xls,xlsx的图片!'
+ });
+ return false;
+ }
+ },
+ //上传
+ uploadSectionFile(param) {
+ console.log(param)
+ let form = new FormData();
+ form.append('file', param.file);
+ danger_import_do(form).then(res=>{
+ if (res.data.ok==1){
+ console.log(res.data)
+ } else{
+ this.$message({type:'error', message:res.data.msg, duration:3000})
+ }
+ }).catch(err => {
+ console.log(err)
+ })
+
+ },
+ //导入
+ dangerImport(){
+ this.$refs.upload.submit();
+ },
+ //下载模板
+ 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)
+ })
+ },
+ //方法区
+ 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() + ' '
+ },
initYHLX(){
initYHLX().then(res=>{
if (res.data.ok==1){
@@ -412,22 +595,49 @@
}
})
},
-
+ updateClick(row){
+ this.$router.push({
+ path:"/hiddenDangerAdd?id="+row.id
+ })
+ },
jump(){
this.$router.push({
path:"/hiddenDangerAdd"
})
},
// 发送隐患单跳转
- handleClick(){
+ handleClick(row){
this.$router.push({
- path:"/hiddenDangerList",
+ path:"/hiddenDangerList?id="+row.id,
})
+ },
+ 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 =>{
+ });
},
}
};
</script>
<style>
+ .inline-block {
+ display: inline-block;
+ }
.inquire {
display: flex;
justify-content: left;
--
Gitblit v1.9.2