项目部管理bug修复,预警历史记录功能

This commit is contained in:
jjLv 2024-08-09 15:00:16 +08:00
parent 182501d068
commit cad2783343
5 changed files with 201 additions and 177 deletions

View File

@ -27,10 +27,19 @@ export function listTeamTemp(query) {
})
}
// 导出
export function exportDeviceLyRecord(query) {
// 查询施工预警信息列表
export function listWarn(query) {
return request({
url: '/bracelet/export/exportDeviceLyRecord',
url: '/bracelet/construction/listWarn',
method: 'get',
params: query
})
}
// 导出
export function exportConstructionRecord(query) {
return request({
url: '/bracelet/export/exportConstructionRecord',
method: 'get',
responseType: 'blob',
params: query

View File

@ -1,18 +1,18 @@
import request from '@/utils/request'
// 查询列表
export function DeviceLyRecord(query) {
export function ListWarn(query) {
return request({
url: '/bracelet/deviceLyRecord/list',
url: '/bracelet/warnHistory/listWarn',
method: 'get',
params: query
})
}
// 导出
export function exportDeviceLyRecord(query) {
export function exportWarnHistory(query) {
return request({
url: '/bracelet/export/exportDeviceLyRecord',
url: '/bracelet/export/exportWarnHistory',
method: 'get',
responseType: 'blob',
params: query

View File

@ -353,6 +353,7 @@ export default {
},
//
picturesPreview(row) {
this.dialogImageUrls = [];
getProject(row.projectId).then(response => {
response.data.fileList.forEach(item => {
this.dialogImageUrls.push({

View File

@ -9,7 +9,7 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item prop="departname">
<el-form-item prop="departName">
<el-input
v-model="queryParams.departName"
placeholder="项目部"
@ -77,7 +77,7 @@
</el-table-column>
<el-table-column label="临时人数" align="center" prop="tempNum" >
<template slot-scope="scope">
<div @click="openTemp(scope.row)" style="color: #02a7f0; cursor: pointer">
<div @click="openTeamTemp(scope.row)" style="color: #02a7f0; cursor: pointer">
{{ scope.row.tempNum}}
</div>
</template>
@ -85,7 +85,7 @@
<el-table-column label="施工时间" align="center" prop="lyTime" />
<el-table-column label="施工预警次数" align="center" prop="warnNum" >
<template slot-scope="scope">
<div @click="openGt(scope.row)" style="color: #02a7f0; cursor: pointer">
<div @click="openWarn(scope.row)" style="color: #02a7f0; cursor: pointer">
{{ scope.row.warnNum}}
</div>
</template>
@ -123,6 +123,7 @@
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQueryTeam">查询</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQueryTeam">重置</el-button>
</el-form-item>
</el-form>
@ -134,20 +135,20 @@
<dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex"/>
</template>
</el-table-column>
<el-table-column label="身份证号" align="center" prop="idCard" />
<el-table-column label="身份证号" align="center" prop="idCard" width="160px" />
<el-table-column label="电话" align="center" prop="phone" />
<el-table-column label="安全帽编号" align="center" prop="aqmCode" />
<el-table-column label="马甲编号" align="center" prop="mjCode" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<!-- <template slot-scope="scope">
<el-table-column label="人脸信息" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleDelDevice(scope.row)"
v-hasPermi="['basic:sideband:edit']"
>解除绑定</el-button>
</template> -->
@click="openImg(scope.row.base64Url)"
v-hasPermi="['basic:constructionRecord:edit']"
>查看</el-button>
</template>
</el-table-column>
</el-table>
@ -162,18 +163,18 @@
</el-dialog>
<!-- 查看临时弹窗 -->
<el-dialog :title="title" :visible.sync="showTeam" width="1000px" height="1000px" append-to-body>
<el-form :model="queryTeam" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-dialog :title="title" :visible.sync="showTeamTemp" width="1000px" height="1000px" append-to-body>
<el-form :model="queryTeamTemp" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="姓名" prop="name">
<el-input
v-model="queryTeam.name"
v-model="queryTeamTemp.name"
placeholder="请输入姓名"
clearable
@keyup.enter.native="handleQueryTeamTemp"
/>
</el-form-item>
<el-form-item label="性别" prop="sex">
<el-select v-model="queryTeam.sex" placeholder="性别" clearable>
<el-select v-model="queryTeamTemp.sex" placeholder="性别" clearable>
<el-option
v-for="dict in dict.type.sys_user_sex"
:key="dict.value"
@ -184,10 +185,11 @@
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQueryTeamTemp">查询</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQueryTeamTemp">重置</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loadingTwo" :data="teamList" width="600px" height = "600px" >
<el-table v-loading="loadingThree" :data="teamTempList" width="600px" height = "600px" >
<el-table-column label="人员id" align="center" prop="id" v-if="false" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="性别" align="center" prop="sex" >
@ -197,35 +199,57 @@
</el-table-column>
<el-table-column label="身份证号" align="center" prop="idCard" />
<el-table-column label="电话" align="center" prop="phone" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<!-- <template slot-scope="scope">
<el-table-column label="人脸信息" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleDelDevice(scope.row)"
v-hasPermi="['basic:sideband:edit']"
>解除绑定</el-button>
</template> -->
@click="openImg(scope.row.base64Url)"
v-hasPermi="['basic:constructionRecord:edit']"
>查看</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="totalTwo>0"
:total="totalTwo"
:page.sync="queryTeam.pageNum"
:limit.sync="queryTeam.pageSize"
@pagination="getListTeam"
:page.sync="queryTeamTemp.pageNum"
:limit.sync="queryTeamTemp.pageSize"
@pagination="getListTeamTemp"
/>
</el-dialog>
<!-- 查看施工预警信息弹窗 -->
<el-dialog :title="title" :visible.sync="showWarn" width="1000px" height="1000px" append-to-body>
<el-table v-loading="loadingTwo" :data="warnList" width="600px" height = "600px" >
<el-table-column label="预警设备" align="center" prop="devTypeName" />
<el-table-column label="设备名称" align="center" prop="devName" />
<el-table-column label="预警时间" align="center" prop="warnTime" />
<el-table-column label="预警内容" align="center" prop="warnContent" />
</el-table>
<pagination
v-show="totalTwo>0"
:total="totalTwo"
:page.sync="queryWarn.pageNum"
:limit.sync="queryWarn.pageSize"
@pagination="getListWarn"
/>
</el-dialog>
<!-- 图片查看弹窗 -->
<el-dialog :visible.sync="dialogVisible">
<img width="100%" height="650px" :src="dialogImageUrl" alt />
</el-dialog>
</div>
</template>
<script>
import { listConstruction,listTeam,listTeamTemp } from "@/api/comprehensive/constructionRecord";
import { listConstruction,listTeam,listTeamTemp,listWarn,exportConstructionRecord } from "@/api/comprehensive/constructionRecord";
import { downloadFile } from '@/utils/download'
export default {
name: "Post",
dicts: ['sys_normal_disable','sys_user_sex'],
@ -236,20 +260,32 @@ export default {
loadingTwo: false,
loadingThree: false,
// Id
showName: false,
//
showWarn: false,
//
dialogImageUrl: '',
dialogVisible: false,
//
showSearch: true,
showTeam: false,
showTeamTemp: false,
//
total: 0,
totalTwo : 0,
//
constructionList: [],
//
teamList: [],
//
teamList: [],
teamTempList: [],
warnList: [],
//
title: "",
//
@ -270,9 +306,18 @@ export default {
name: undefined,
sex: undefined,
teamId: undefined,
// roleCode: this.$store.getters.roleCode,
// departId: this.$store.getters.departId,
// teamId: this.$store.getters.teamId,
},
queryTeamTemp: {
pageNum: 1,
pageSize: 10,
name: undefined,
sex: undefined,
teamId: undefined,
},
queryWarn: {
pageNum: 1,
pageSize: 10,
teamId: undefined,
},
//
form: {},
@ -283,6 +328,13 @@ export default {
this.getList();
},
methods: {
//-
openImg(url) {
this.dialogImageUrl = url
this.dialogVisible = true
},
/** 查询岗位列表 */
getList() {
this.loading = true;
@ -296,16 +348,16 @@ export default {
//
openTeam(row){
this.teamId = row.teamId;
this.title = "查看班组"
this.title = "查看人员"
this.showTeam = true;
this.getListTeam();
},
//
openTemp(row){
openTeamTemp(row){
this.teamId = row.teamId;
this.title = "查看临时班组"
this.showTeam = true;
this.title = "查看临时人员"
this.showTeamTemp = true;
this.getListTeamTemp();
},
@ -316,10 +368,10 @@ export default {
this.getListTeam();
},
handleQueryTeam() {
this.queryTeam.pageNum = 1;
this.queryTeam.teamId = this.teamId;
console.log(this.queryTeam);
handleQueryTeamTemp() {
this.queryTeamTemp.pageNum = 1;
this.queryTeamTemp.teamId = this.teamId;
console.log(this.queryTeamTemp);
this.getListTeamTemp();
},
@ -336,14 +388,33 @@ export default {
/** 查询临时班组人员列表 */
getListTeamTemp() {
this.loadingThree = true;
this.queryTeamTemp.teamId = this.teamId;
listTeamTemp(this.queryTeamTemp).then(response => {
this.teamTempList = response.rows;
this.totalTwo = response.total;
this.loadingThree = false;
});
},
/** 查询施工预警信息列表 */
getListWarn() {
this.loadingTwo = true;
this.queryTeam.teamId = this.teamId;
listTeamTemp(this.queryTeam).then(response => {
this.teamList = response.rows;
this.queryWarn.teamId = this.teamId;
listWarn(this.queryWarn).then(response => {
this.warnList = response.rows;
this.totalTwo = response.total;
this.loadingTwo = false;
});
},
},
//
openWarn(row){
this.teamId = row.teamId;
this.title = "查询施工预警信息"
this.showWarn = true;
this.getListWarn();
},
//
// cancel() {
// this.open = false;
@ -371,12 +442,24 @@ export default {
this.resetForm("queryForm");
this.handleQuery();
},
/** 查看班组人员重置按钮操作 */
resetQueryTeam() {
this.resetForm("queryForm");
this.handleQueryTeam();
},
/** 查看临时人员重置按钮操作 */
resetQueryTeamTemp() {
this.resetForm("queryForm");
this.handleQueryTeamTemp();
},
/** 导出按钮操作 */
handleExport() {
this.download('bracelet/construction/export', {
...this.queryParams
}, `施工记录_${new Date().getTime()}.xlsx`)
exportConstructionRecord(this.queryParams).then(res => {
downloadFile({ fileName: `施工记录_${new Date().getTime()}.xlsx`, fileData: res, fileType: 'application/vnd.ms-excel;charset=utf-8' })
})
}
}
};

View File

@ -1,50 +1,8 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item prop="proName">
<el-input
v-model="queryParams.proName"
placeholder="工程名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item prop="departName">
<el-input
v-model="queryParams.departName"
placeholder="项目部"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item prop="teamName">
<el-input
v-model="queryParams.teamName"
placeholder="领用班组"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item prop="devName">
<el-input
v-model="queryParams.devName"
placeholder="设备名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item prop="devCode">
<el-input
v-model="queryParams.devCode"
placeholder="设备编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item prop="devType">
<el-select v-model="queryParams.devType" placeholder="设备类型" clearable style="width: 100%;">
<el-form-item prop="devTypeName">
<el-select v-model="queryParams.devTypeName" placeholder="设备类型" clearable style="width: 100%;">
<el-option
v-for="dict in dict.type.sys_device_type"
:key="dict.value"
@ -54,32 +12,38 @@
</el-select>
</el-form-item>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-form-item prop="lyTime">
<el-date-picker
v-model="queryParams.lyTime"
style="width: 240px"
value-format="yyyy-MM-dd"
placeholder="领用时间"
type="date"
></el-date-picker>
<el-form-item prop="devName">
<el-input
v-model="queryParams.devName"
placeholder="设备名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item prop="ghTime">
<el-form-item label="预警时间">
<el-date-picker
v-model="queryParams.ghTime"
style="width: 240px"
value-format="yyyy-MM-dd"
placeholder="归还时间"
type="date"
></el-date-picker>
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item prop="warnContent">
<el-input
v-model="queryParams.warnContent"
placeholder="预警内容"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
@ -92,35 +56,14 @@
v-hasPermi="['basic:deviceLyRecord:export']"
>导出数据</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<right-toolbar :showSearch.sync="open" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="tableData">
<el-table-column label="工程名称" align="center" prop="proName" />
<el-table-column label="项目部名称" align="center" prop="departName" />
<el-table-column label="领用班组" align="center" prop="teamName" />
<el-table-column label="领用设备类型" align="center" prop="deviceTypeName">
</el-table-column>
<el-table v-loading="loading" :data="tableData" width="600px" height = "600px" >
<el-table-column label="预警设备" align="center" prop="devTypeName" />
<el-table-column label="设备名称" align="center" prop="devName" />
<el-table-column label="领用设备编码" align="center" prop="devCode" />
<el-table-column label="班组负责人" align="center" prop="teamLeader">
<template slot-scope="scope">
<div @click="openShall(scope.row)">
<div>
<span >{{ scope.row.teamLeader }}\</span><span>{{ scope.row.leaderPhone }}</span>
</div>
</div>
</template>
</el-table-column>
<el-table-column label="领用时间" align="center" prop="lyTime" />
<el-table-column label="归还时间" align="center" prop="ghTime">
<template slot-scope="scope">
<span v-if="!scope.row.ghTime" style="font-weight: bold;color: green;">在用</span>
<span v-else>{{ scope.row.ghTime }}</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remarks" />
<el-table-column label="预警时间" align="center" prop="warnTime" />
<el-table-column label="预警内容" align="center" prop="warnContent" />
</el-table>
<pagination
@ -128,14 +71,14 @@
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
@pagination="getListWarn"
/>
</div>
</template>
<script>
import { DeviceLyRecord, exportDeviceLyRecord} from "@/api/comprehensive/warnHistory";
import { ListWarn, exportWarnHistory} from "@/api/comprehensive/warnHistory";
import { downloadFile } from '@/utils/download'
import { getToken } from '@/utils/auth'
import uploadFile from '../../components/uploadFile.vue'
@ -149,12 +92,6 @@ export default {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
@ -166,19 +103,16 @@ export default {
shxName:"shx",
//
open: false,
//
dateRange: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
proName:undefined,
departName:undefined,
teamName: undefined,
devType: undefined,
devName: undefined,
devCode: undefined,
// lyTime: undefined,
// ghTime: undefined,
devTypeName:undefined,
devName:undefined,
warnContent:undefined,
},
//
form: {},
@ -199,23 +133,25 @@ export default {
/** 查询设备领用记录列表 */
getList() {
this.loading = true;
DeviceLyRecord(this.queryParams).then(response => {
ListWarn(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
this.tableData = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {};
this.resetForm("form");
},
// //
// cancel() {
// this.open = false;
// this.reset();
// },
// //
// reset() {
// this.dateRange = [];
// // this.form = {};
// this.resetForm("form");
// this.handleQuery();
// },
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
@ -223,22 +159,17 @@ export default {
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.deviceCode)
this.single = selection.length!=1
this.multiple = !selection.length
},
/** 导出按钮操作 */
handleExport() {
exportDeviceLyRecord(this.queryParams).then(res => {
downloadFile({ fileName: `设备领用记录_${new Date().getTime()}.xlsx`, fileData: res, fileType: 'application/vnd.ms-excel;charset=utf-8' })
exportWarnHistory(this.queryParams).then(res => {
downloadFile({ fileName: `预警历史记录_${new Date().getTime()}.xlsx`, fileData: res, fileType: 'application/vnd.ms-excel;charset=utf-8' })
})
},