增加安全隐患展示列配置&&修改安全隐患管理表单

This commit is contained in:
2022-03-09 14:30:17 +08:00
parent 19af77a025
commit d54eaa2984
3 changed files with 388 additions and 240 deletions

View File

@ -1,30 +1,6 @@
## 开发 # 内蒙古红峡化工厂科研生产管理大屏项目
```bash ## 运行
# 克隆项目
git clone https://gitee.com/y_project/RuoYi-Vue
# 进入项目目录 `npm install`
cd ruoyi-ui `npm run dev`
# 安装依赖
npm install
# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
npm install --registry=https://registry.npm.taobao.org
# 启动服务
npm run dev
```
浏览器访问 http://localhost:80
## 发布
```bash
# 构建测试环境
npm run build:stage
# 构建生产环境
npm run build:prod
```

View File

@ -1,105 +1,123 @@
import request from '@/utils/request' import request from "@/utils/request";
/** --------------- left1 --------------- */ /** --------------- left1 --------------- */
// 危险源列表 // 危险源列表
export function leftOneList(params) { export function leftOneList(params) {
return request({ return request({
url: '/hx/dangerousSource/list', url: "/hx/dangerousSource/list",
params, params,
}) });
} }
// 导出模板 // 导出模板
export function importTemplate() { export function importTemplate() {
return request({ return request({
url: '/hx/dangerousSource/importTemplate', url: "/hx/dangerousSource/importTemplate",
}) });
} }
/** --------------- left2 --------------- */ /** --------------- left2 --------------- */
// 危险点列表 // 危险点列表
export function leftTwoList(params) { export function leftTwoList(params) {
return request({ return request({
url: '/hx/dangerousPoint/list', url: "/hx/dangerousPoint/list",
params, params,
}) });
} }
// 导出模板 // 导出模板
export function leftTwoImportTemplate() { export function leftTwoImportTemplate() {
return request({ return request({
url: '/hx/dangerousPoint/importTemplate', url: "/hx/dangerousPoint/importTemplate",
}) });
} }
/** --------------- left3 --------------- */ /** --------------- left3 --------------- */
// 危险作业列表 // 危险作业列表
export function leftThreeList(params) { export function leftThreeList(params) {
return request({ return request({
url: '/hx/dangerousWork/list', url: "/hx/dangerousWork/list",
params, params,
}) });
} }
// 导出模板 // 导出模板
export function leftThreeImportTemplate() { export function leftThreeImportTemplate() {
return request({ return request({
url: '/hx/dangerousWork/importTemplate', url: "/hx/dangerousWork/importTemplate",
}) });
} }
/** --------------- left4 --------------- */ /** --------------- left4 --------------- */
// 安全隐患列表 // 安全隐患列表
export function leftFourList(params) { export function leftFourList(params) {
return request({ return request({
url: '/hx/hiddenDanger/list', url: "/hx/hiddenDanger/list",
params, params,
}) });
} }
// 导出模板 // 导出模板
export function leftFourImportTemplate() { export function leftFourImportTemplate() {
return request({ return request({
url: '/hx/hiddenDanger/importTemplate', url: "/hx/hiddenDanger/importTemplate",
}) });
} }
// 查看安全隐患展示列
export function leftFourSetting(params) {
return request({
url: "/business/hxTableConfig",
params,
});
}
// 修改安全隐患展示列
export function editTroubleItemSetting(data) {
return request({
url: "/business/hxTableConfig",
method: "put",
data,
});
}
/** --------------- center1 --------------- */ /** --------------- center1 --------------- */
// 危险场所列表 // 危险场所列表
export function centerOneList(params) { export function centerOneList(params) {
return request({ return request({
url: '/hx/dangerousPlace/list', url: "/hx/dangerousPlace/list",
params, params,
}) });
} }
export function centerOneImportTemplate() { export function centerOneImportTemplate() {
return request({ return request({
url: '/hx/dangerousPlace/importTemplate', url: "/hx/dangerousPlace/importTemplate",
}) });
} }
/** --------------- center2 --------------- */ /** --------------- center2 --------------- */
// 视频管理 // 视频管理
export function centerTwoList(params) { export function centerTwoList(params) {
return request({ return request({
url: '/hx/video/list', url: "/hx/video/list",
params, params,
}) });
} }
// 删除视频 // 删除视频
export function delVideo(params) { export function delVideo(params) {
return request({ return request({
url: '/hx/video', url: "/hx/video",
method: 'delete', method: "delete",
params params,
}) });
} }
// 新增视频 // 新增视频
export function addVideo(data) { export function addVideo(data) {
return request({ return request({
url: '/hx/video', url: "/hx/video",
method:'post', method: "post",
data data,
}) });
} }
// 修改视频 // 修改视频
export function editVideo(data) { export function editVideo(data) {
return request({ return request({
url: '/hx/video', url: "/hx/video",
method:'put', method: "put",
data data,
}) });
} }
// /** --------------- right1 --------------- */ // /** --------------- right1 --------------- */
// // 质量问题 // // 质量问题

View File

@ -1,173 +1,327 @@
<template> <template>
<el-row :gutter="20"> <el-row :gutter="20">
<!--用户数据--> <!--用户数据-->
<el-col :span="24" :xs="24"> <el-col :span="24" :xs="24">
<el-row :gutter="10" class="mb8 fr"> <el-row :gutter="10" class="mb8 fr">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport">导入</el-button> <el-button
</el-col> type="info"
<el-col :span="1.5"> plain
<el-button icon="el-icon-upload2"
type="warning" size="mini"
plain @click="handleImport"
icon="el-icon-download" >导入</el-button
size="mini" >
:loading="exportLoading" </el-col>
@click="importTemplate" <el-col :span="1.5">
>导出模板</el-button <el-button
> type="warning"
</el-col> plain
</el-row> icon="el-icon-download"
size="mini"
:loading="exportLoading"
@click="importTemplate"
>导出模板</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
@click="selectTroubleItem"
icon="el-icon-s-tools"
>展示列配置</el-button
>
<el-button @click="getTroubleItem">test</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="userList"> <el-table v-loading="loading" :data="userList">
<el-table-column label="序号" align="center" prop="id" width="80" /> <el-table-column label="序号" align="center" prop="id" width="80" />
<el-table-column label="车间名称" align="center" prop="workshopName" /> <el-table-column label="所在位置" align="center" prop="address" />
<el-table-column label="日期" align="center" prop="month" /> <el-table-column label="类别" align="center" prop="category" />
<el-table-column label="隐患内容" align="center" prop="dangerContent" /> <el-table-column label="检查日期" align="center" prop="checkDate" />
<el-table-column label="类别" align="center" prop="category" /> <el-table-column label="存在问题" align="center" prop="existProblem" />
<el-table-column label="措施" align="center" prop="measures" /> <el-table-column
<el-table-column label="责任人" align="center" prop="personLiable" /> label="责任人"
<el-table-column label="备注" align="center" prop="remark" /> align="center"
</el-table> prop="responsiblePerson"
/>
<el-table-column
label="责任单位"
align="center"
prop="responsibleUnit"
/>
<el-table-column
label="建议完成日期"
align="center"
prop="suggestCompleteTime"
/>
<pagination <el-table-column
v-show="total > 0" label="临时控制措施"
:total="total" align="center"
:autoScroll="false" prop="tempUpdateMethod"
:pageSizes="[2, 5, 10, 20]" />
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" <el-table-column label="整改建议" align="center" prop="updateSuggest" />
@pagination="getList" </el-table>
/>
</el-col> <pagination
<!-- 用户导入对话框 --> v-show="total > 0"
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body> :total="total"
<el-upload :autoScroll="false"
ref="upload" :pageSizes="[2, 5, 10, 20]"
:limit="1" :page.sync="queryParams.pageNum"
accept=".xlsx, .xls" :limit.sync="queryParams.pageSize"
:headers="upload.headers" @pagination="getList"
:action="upload.url" />
:disabled="upload.isUploading" </el-col>
:on-progress="handleFileUploadProgress" <!-- 用户导入对话框 -->
:on-success="handleFileSuccess" <el-dialog
:auto-upload="false" :title="upload.title"
drag :visible.sync="upload.open"
> width="400px"
<i class="el-icon-upload"></i> append-to-body
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div> >
<div class="el-upload__tip" slot="tip"> <el-upload
<!-- <div class="el-upload__tip" slot="tip"> ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip" slot="tip">
<!-- <div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据 <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
</div> --> </div> -->
<span>仅允许导入xlsxlsx格式文件</span> <span>仅允许导入xlsxlsx格式文件。</span>
<!-- <el-link <!-- <el-link
type="primary" type="primary"
:underline="false" :underline="false"
style="font-size: 12px; vertical-align: baseline" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate" @click="importTemplate"
>下载模板</el-link >下载模板</el-link
> --> > -->
</div> </div>
</el-upload> </el-upload>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm"> </el-button> <el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false"> </el-button> <el-button @click="upload.open = false">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
</el-row>
<!-- 安全隐患选择展示列对话框 -->
<el-dialog
:title="troubleItem.title"
:visible.sync="troubleItem.open"
width="500px"
>
<el-checkbox-group v-model="checkList" @change="handleTroubleItemChanged">
<el-checkbox v-for="item in listTitles" :label="item" :key="item">{{
item
}}</el-checkbox>
</el-checkbox-group>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitTroubleItem"> </el-button>
<el-button @click="troubleItem.open = false"> </el-button>
</div>
</el-dialog>
</el-row>
</template> </template>
<script> <script>
import { leftFourList, leftFourImportTemplate } from './indexApi' import {
import { getToken } from '@/utils/auth' leftFourList,
leftFourImportTemplate,
leftFourSetting,
editTroubleItemSetting,
} from "./indexApi";
import { getToken } from "@/utils/auth";
const checkListTitles = ["车间名称", "隐患内容", "类别", "措施", "责任人"];
export default { export default {
data() { data() {
return { return {
// 遮罩层 // 遮罩层
loading: true, loading: true,
// 导出遮罩层 // 导出遮罩层
exportLoading: false, exportLoading: false,
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: this.page_size, pageSize: this.page_size,
}, },
// 用户信息 // 用户信息
userList: [], userList: [],
// 总条数 // 总条数
total: 0, total: 0,
// 用户导入参数 // 用户导入参数
upload: { upload: {
// 是否显示弹出层(用户导入) // 是否显示弹出层(用户导入)
open: false, open: false,
// 弹出层标题(用户导入) // 弹出层标题(用户导入)
title: '', title: "",
// 是否禁用上传 // 是否禁用上传
isUploading: false, isUploading: false,
// 是否更新已经存在的用户数据 // 是否更新已经存在的用户数据
updateSupport: 0, updateSupport: 0,
// 设置上传的请求头部 // 设置上传的请求头部
headers: { Authorization: 'Bearer ' + getToken() }, headers: { Authorization: "Bearer " + getToken() },
// 上传的地址 // 上传的地址
url: process.env.VUE_APP_BASE_API + '/hx/hiddenDanger/importData', url: process.env.VUE_APP_BASE_API + "/hx/hiddenDanger/importData",
}, },
} // 安全隐患选择展示列
}, troubleItem: {
methods: { // 是否显示弹出层(安全隐患展示列)
/** 查询用户列表 */ open: false,
getList() { // 弹出层标题(安全隐患展示列)
this.loading = true title: "",
leftFourList(this.queryParams).then(res => { // 设置上传的请求头部
this.userList = res.rows headers: { Authorization: "Bearer " + getToken() },
this.total = res.total // 接口地址
this.loading = false url: process.env.VUE_APP_BASE_API + "/business/hxTableConfig",
}) },
}, checkList: [],
/** 导出按钮操作 */ listTitles: checkListTitles,
handleExport() { };
const queryParams = this.queryParams },
this.$modal methods: {
.confirm('是否确认导出所有数据项?') /** 查询用户列表 */
.then(() => { getList() {
this.exportLoading = true this.loading = true;
return exportUser(queryParams)
}) leftFourList(this.queryParams).then((res) => {
.then(response => { this.userList = res.rows;
this.$download.name(response.msg) this.total = res.total;
this.exportLoading = false this.loading = false;
}) });
.catch(() => {}) },
}, // 获取安全隐患展示列表
/** 导入按钮操作 */ getTroubleItem() {
handleImport() { this.loading = true;
this.upload.title = '数据导入' const params = { tableName: "hx_hidden_danger" };
this.upload.open = true // checkList 转化成参数
}, leftFourSetting(params).then((res) => {
/** 下载模板操作 */ let list = {};
importTemplate() { list = JSON.parse(res.data);
leftFourImportTemplate().then(response => {
this.$download.name(response.msg) // 复选框
}) let checkDate = list.checkDate ?? false;
}, let category = list.category ?? false;
// 文件上传中处理 let address = list.address ?? false;
handleFileUploadProgress(event, file, fileList) { let existProblem = list.existProblem ?? false;
this.upload.isUploading = true let responsiblePerson = list.responsiblePerson ?? false;
}, let responsibleUnit = list.responsibleUnit ?? false;
// 文件上传成功处理 let suggestCompleteTime = list.suggestCompleteTime ?? false;
handleFileSuccess(response, file, fileList) { let tempUpdateMethod = list.tempUpdateMethod ?? false;
this.upload.open = false let updateSuggest = list.updateSuggest ?? false;
this.upload.isUploading = false
this.$refs.upload.clearFiles() this.checkList = [];
this.$alert(response.msg, '导入结果', { dangerouslyUseHTMLString: true })
this.getList() if (responsibleUnit) this.checkList.push("车间名称");
}, if (address && existProblem) this.checkList.push("隐患内容");
// 提交上传文件 if (updateSuggest && tempUpdateMethod) this.checkList.push("措施");
submitFileForm() { if (category) this.checkList.push("类别");
this.$refs.upload.submit() if (responsiblePerson) this.checkList.push("责任人");
}, });
}, },
created() { /** 导出按钮操作 */
this.getList() handleExport() {
}, const queryParams = this.queryParams;
} this.$modal
.confirm("是否确认导出所有数据项?")
.then(() => {
this.exportLoading = true;
return exportUser(queryParams);
})
.then((response) => {
this.$download.name(response.msg);
this.exportLoading = false;
})
.catch(() => {});
},
/** 导入按钮操作 */
handleImport() {
this.upload.title = "数据导入";
this.upload.open = true;
},
/** 下载模板操作 */
importTemplate() {
leftFourImportTemplate().then((response) => {
this.$download.name(response.msg);
});
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
this.getList();
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
handleTroubleItemChanged(value) {
this.checkList = value;
},
// 编辑安全隐患列表展示列
selectTroubleItem() {
this.troubleItem.title = "编辑安全隐患展示列";
this.troubleItem.open = true;
},
// 提交安全隐患列表展示列
submitTroubleItem() {
let keyInfo = {};
keyInfo.checkDate = true;
keyInfo.suggestCompleteTime = true;
keyInfo.category = this.checkList.indexOf("类别") > -1;
keyInfo.responsibleUnit = this.checkList.indexOf("车间名称") > -1;
if (this.checkList.indexOf("隐患内容") > -1) {
keyInfo.address = true;
keyInfo.existProblem = true;
} else {
keyInfo.address = false;
keyInfo.existProblem = false;
}
if (this.checkList.indexOf("措施") > -1) {
keyInfo.updateSuggest = true;
keyInfo.tempUpdateMethod = true;
} else {
keyInfo.updateSuggest = false;
keyInfo.tempUpdateMethod = false;
}
keyInfo.responsiblePerson = this.checkList.indexOf("责任人") > -1;
let reqData = {};
reqData.tableName = "hx_hidden_danger";
reqData.keyInfo = JSON.stringify(keyInfo);
editTroubleItemSetting(reqData).then((response) => {
this.$modal.msgSuccess("修改成功");
this.troubleItem.open = false;
this.getTroubleItem();
this.loading = false;
});
},
},
created() {
this.getList();
this.getTroubleItem();
},
};
</script> </script>