Merge remote-tracking branch 'origin/dev' into dev-shanao

dev-shanao
shanao 2024-11-05 09:18:12 +08:00
commit f006206da8
10 changed files with 467 additions and 62 deletions

View File

@ -368,7 +368,7 @@ export default {
type: 'warning'
}).then(() => {
this.listLoading = false
window.location.href = config.httpurl + 'riskunit/excelModel'
window.location.href = config.httpurl + '/riskunit/excelModel'
}).catch(() => {
this.listLoading = false
})

View File

@ -76,14 +76,14 @@
</el-table-column>
<el-table-column label="操作" align="left" width="200">
<template slot-scope="{row}">
<el-button type="primary" icon="el-icon-edit" size="mini" @click="handleEdit(row.QUALIFICATIONS_ID)"></el-button>
<el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDelete(row.QUALIFICATIONS_ID)"></el-button>
<el-button v-if="edit" type="primary" icon="el-icon-edit" size="mini" @click="handleEdit(row.QUALIFICATIONS_ID)"></el-button>
<el-button v-if="del" type="danger" icon="el-icon-delete" size="mini" @click="handleDelete(row.QUALIFICATIONS_ID)"></el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<div>
<el-button type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>
<el-button v-if="add" type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>
<!-- <el-button v-show="del" type="danger" icon="el-icon-delete" plain @click="batchDel"></el-button>-->
</div>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />

View File

@ -163,7 +163,7 @@ export default {
type: 'warning'
}).then(() => {
this.listLoading = false
window.location.href = config.httpurl + 'riskpoint/excelModel'
window.location.href = config.httpurl + '/riskpoint/excelModel'
}).catch(() => {
this.listLoading = false
})

View File

@ -29,7 +29,11 @@
<el-col :span="4">
<el-form-item label="是否标点" label-width="110px">
<el-select v-model="IS_PUNCTUATION" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="item in punctuationStatusList" :key="item.value" :label="item.label" :value="item.value" />
<el-option
v-for="item in punctuationStatusList"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
</el-form-item>
</el-col>
@ -67,16 +71,22 @@
<el-table-column prop="DEVICE_COUNT" label="点位下消防器材数"/>
<el-table-column prop="DEPARTMENT_NAME" label="负责部门"/>
<el-table-column prop="USERNAME" label="负责人"/>
<el-table-column label="操作" width="380">
<el-table-column prop="ISPUNCTUATION" label="是否标点">
<template slot-scope="{row}">
<el-button
v-show="true"
class="tiffany-btn"
icon="el-icon-picture"
type="primary"
size="mini"
@click="handleShowQr(row)">点位二维码
</el-button>
<el-tag v-if="row.ISPUNCTUATION == 0" type="success"></el-tag>
<el-tag v-else type="danger"></el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="450">
<template slot-scope="{row}">
<!-- <el-button-->
<!-- v-show="true"-->
<!-- class="tiffany-btn"-->
<!-- icon="el-icon-picture"-->
<!-- type="primary"-->
<!-- size="mini"-->
<!-- @click="handleShowQr(row)">点位二维码-->
<!-- </el-button>-->
<el-button
v-show="edit"
type="primary"
@ -91,6 +101,22 @@
size="mini"
@click="handleDelete(row)">删除
</el-button>
<!-- 新增按钮检查记录二维码 -->
<!-- <el-button-->
<!-- class="tiffany-btn"-->
<!-- icon="el-icon-document"-->
<!-- type="info"-->
<!-- size="mini"-->
<!-- @click="handleShowRecordQr(row)">检查记录二维码-->
<!-- </el-button>-->
<el-button
class="tiffany-btn"
icon="el-icon-document"
type="info"
size="mini"
@click="handleShowNotificationCard(row)">
告知卡
</el-button>
</template>
</el-table-column>
</el-table>
@ -98,6 +124,7 @@
<div>
<el-button type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>
<el-button type="danger" icon="el-icon-delete" @click="handleDelete"></el-button>
<el-button type="info" icon="el-icon-plus" @click="handleEditUser"></el-button>
</div>
<pagination
:total="total"
@ -108,27 +135,91 @@
</div>
</div>
<el-dialog :visible.sync="dialogFormShow" title="查看二维码" width="680px" class="top-dialog">
<div id="printTest" style="border: 1px solid #fff;">
<div class="level-title" style="margin-top:20px">
<h1>消防点位信息</h1>
<!-- <el-dialog :visible.sync="dialogFormShow" title="查看二维码" width="680px" class="top-dialog">-->
<!-- <div id="printTest" style="border: 1px solid #fff;">-->
<!-- <div class="level-title" style="margin-top:20px">-->
<!-- <h1>消防点位信息</h1>-->
<!-- </div>-->
<!-- <table class="table-ui">-->
<!-- <tr>-->
<!-- <td class="tbg">消防区域</td>-->
<!-- <td >{{ qrInfo.FIRE_REGION_NAME }}</td>-->
<!-- <td class="tbg">消防点位</td>-->
<!-- <td>{{ qrInfo.FIRE_POINT_NAME }}</td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td class="tbg">负责部门</td>-->
<!-- <td>{{ qrInfo.DEPARTMENT_NAME }}</td>-->
<!-- <td class="tbg">负责人</td>-->
<!-- <td>{{ qrInfo.USERNAME }}</td>-->
<!-- </tr>-->
<!-- </table>-->
<!-- <div class="table-qrcode">-->
<!-- <vue-qr :text="qrcodeStr" :margin="0" :size="300" color-dark="#000" color-light="#fff" />-->
<!-- </div>-->
<!-- </div>-->
<!-- <div slot="footer" class="dialog-footer">-->
<!-- <el-button @click="dialogFormShow = false"> </el-button>-->
<!-- <el-button v-print="'#printTest'" type="primary"> </el-button>-->
<!-- </div>-->
<!-- </el-dialog>-->
<el-dialog :visible.sync="dialogFormShow" title="消防点位维护信息告知牌" width="780px" class="top-dialog">
<el-tabs v-model="tabsActive">
<el-tab-pane label="横版" name="horizontal"/>
<el-tab-pane label="竖版" name="vertical"/>
</el-tabs>
<div id="printTest">
<div class="main_title">消防点位维护信息告知牌</div>
<div v-if="tabsActive === 'horizontal'" class="horizontal">
<div class="info">
<div class="row">
<div class="title">消防点位</div>
<div class="value">{{ qrInfo.FIRE_POINT_NAME }}</div>
</div>
<div class="row">
<div class="title">点位编号</div>
<div class="value">{{ qrInfo.FIRE_POINT_CODE }}</div>
</div>
</div>
<div class="qr_info">
<div class="row">
<div class="title">检查码</div>
<div class="qr">
<vue-qr :text="qrcodeStr_jianchama" :margin="0" :size="280" color-dark="#000" color-light="#fff"/>
</div>
<div class="title">查询码</div>
<div class="qr">
<vue-qr :text="qrcodeStr_chaxunma" :margin="0" :size="280" color-dark="#000" color-light="#fff"/>
</div>
</div>
</div>
</div>
<table class="table-ui">
<tr>
<td class="tbg">消防区域</td>
<td >{{ qrInfo.FIRE_REGION_NAME }}</td>
<td class="tbg">消防点位</td>
<td>{{ qrInfo.FIRE_POINT_NAME }}</td>
</tr>
<tr>
<td class="tbg">负责部门</td>
<td>{{ qrInfo.DEPARTMENT_NAME }}</td>
<td class="tbg">负责人</td>
<td>{{ qrInfo.USERNAME }}</td>
</tr>
</table>
<div class="table-qrcode">
<vue-qr :text="qrcodeStr" :margin="0" :size="300" color-dark="#000" color-light="#fff" />
<div v-if="tabsActive === 'vertical'" class="vertical">
<div class="info">
<div class="row">
<div class="title">消防点位</div>
<div class="value">{{ qrInfo.FIRE_POINT_NAME }}</div>
</div>
<div class="row">
<div class="title">点位编号</div>
<div class="value">{{ qrInfo.FIRE_POINT_CODE }}</div>
</div>
</div>
<div class="qr_info">
<div class="row">
<div class="title">检查码</div>
<div class="qr">
<vue-qr :text="qrcodeStr_jianchama" :margin="0" :size="280" color-dark="#000" color-light="#fff"/>
</div>
</div>
<div class="row">
<div class="title">查询码</div>
<div class="qr">
<vue-qr :text="qrcodeStr_chaxunma" :margin="0" :size="280" color-dark="#000" color-light="#fff"/>
</div>
</div>
</div>
</div>
</div>
<div slot="footer" class="dialog-footer">
@ -136,6 +227,45 @@
<el-button v-print="'#printTest'" type="primary"> </el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogRecordFormShow" title="查看检查记录二维码" width="680px" class="top-dialog">
<div id="recordPrintTest" style="border: 1px solid #fff;">
<div class="level-title" style="margin-top:20px">
<h1>检查记录二维码</h1>
</div>
<div class="table-qrcode">
<vue-qr :text="recordQrcodeStr" :margin="0" :size="300" color-dark="#000" color-light="#fff"/>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogRecordFormShow = false"> </el-button>
<el-button v-print="'#recordPrintTest'" type="primary"> </el-button>
</div>
</el-dialog>
<el-dialog v-loading="listLoading" :visible.sync="dialogEditUser" title="批量修改负责人" width="800px">
<el-form
ref="firefightingBatchEditDept"
:model="dialogEditUserForm"
:rules="dialogEditUserRules"
label-width="150px">
<el-row>
<el-form-item label="负责人员" prop="USER_ID">
<el-select
v-model="dialogEditUserForm.USER_ID"
placeholder="请选择人员"
class="filter-item"
style="width: 80%;">
<el-option v-for="item in userList" :key="item.USER_ID" :label="item.NAME" :value="item.USER_ID"/>
</el-select>
</el-form-item>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogEditUser = false"> </el-button>
<el-button type="primary" @click="dialogEditUserConfirm"> </el-button>
</div>
</el-dialog>
</div>
</template>
@ -148,9 +278,7 @@ import waves from '@/directive/waves' // waves directive
import SelectTree from '@/components/SelectTree'
export default {
components: { Pagination, SelectTree, vueQr },
directives: { waves },
data() {
return {
@ -158,7 +286,11 @@ export default {
addBtnType: true,
listLoading: true,
dialogFormShow: false,
qrcodeStr: '',
dialogRecordFormShow: false,
qrcodeStr_jianchama: '',
qrcodeStr_chaxunma: '',
tabsActive: 'horizontal',
recordQrcodeStr: '',
qrInfo: {},
add: false,
del: false,
@ -173,6 +305,9 @@ export default {
KEYWORDS: '',
FIRE_POINT_NAME: '',
FIRE_POINT_CODE: '',
selectForm: {
DEPARTMENT_ID: ''
},
//
filterText: '',
varList: [],
@ -181,7 +316,28 @@ export default {
value: 'id',
children: 'nodes',
label: 'name'
}
},
editDataIds: [],
dialogEditUser: false,
dialogEditUserForm: {
USER_ID: ''
},
dialogEditUserRules: {
USER_ID: [{ required: true, message: '请选择负责人', trigger: 'change' }]
},
deptTreeData: [],
userList: [],
punctuationStatusList: [
{
value: 0,
label: '是'
},
{
value: 1,
label: '否'
}
],
IS_PUNCTUATION: ''
}
},
watch: {
@ -193,36 +349,44 @@ export default {
created() {
this.getList()
this.hasButton()
this.getTreeData()
},
methods: {
handleShowQr(ROW) {
handleShowNotificationCard(ROW) {
this.dialogFormShow = true
this.qrInfo = ROW
this.qrcodeStr = this.config.weburlWaiwang + 'static/qrcode/views/bsbw/point_list.html?id=' + ROW.FIRE_POINT_ID
//
this.qrcodeStr_chaxunma = JSON.stringify({
MANAGER_TYPE: 'checkRecordManager',
USER_ID: ROW.USER_ID,
DEPARTMENT_ID: ROW.DEPARTMENT_ID,
FIRE_POINT_ID: ROW.FIRE_POINT_ID
})
//
this.qrcodeStr_jianchama = JSON.stringify({
MANAGER_TYPE: 'fireListManager',
FIRE_POINT_ID: ROW.FIRE_POINT_ID
})
},
handleEdit(FIRE_POINT_ID) {
this.$parent.FIRE_POINT_ID = FIRE_POINT_ID
this.$parent.activeName = 'Edit'
},
selectable(row, index) {
return row.DEVICE_COUNT == 0
return true
},
getRowKey(row) {
return row.FIRE_POINT_ID
},
//
handleAdd() {
this.$parent.activeName = 'Edit'
this.$parent.FIRE_POINT_ID = ''
this.$parent.FIRE_POINT_CODE = ''
this.$parent.FIRE_POINT_NAME = ''
},
//
getQuery() {
// this.$refs.multipleTable.clearSelection()
this.getList()
},
//
getList(pid) {
this.listLoading = true
this.varList = []
@ -231,7 +395,9 @@ export default {
'/firePoint/list?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
FIRE_POINT_NAME: this.FIRE_POINT_NAME,
FIRE_POINT_CODE: this.FIRE_POINT_CODE
FIRE_POINT_CODE: this.FIRE_POINT_CODE,
DEPARTMENT_ID: this.selectForm.DEPARTMENT_ID,
IS_PUNCTUATION: this.IS_PUNCTUATION
}
).then((data) => {
this.listLoading = false
@ -241,9 +407,14 @@ export default {
}).catch((e) => {
this.listLoading = false
})
}, goKeyReset() {
},
goKeyReset() {
this.FIRE_POINT_NAME = ''
this.FIRE_POINT_CODE = ''
this.IS_PUNCTUATION = ''
this.selectForm = {
DEPARTMENT_ID: ''
}
this.getList()
},
getDict() {
@ -283,6 +454,88 @@ export default {
this.listLoading = false
})
},
getTreeData() {
requestFN(
'/department/listTreeV2',
{}
).then((data) => {
this.deptTreeData = JSON.parse(data.zTreeNodes)
}).catch((e) => {
})
},
handleEditUser(row) {
this.editDataIds = []
if (row.FIRE_POINT_ID) {
this.editDataIds.push(row.FIRE_POINT_ID)
} else {
const selection = this.$refs.multipleTable.selection
if (!selection.length > 0) {
this.$message({
type: 'warning',
message: '请选择要修改的数据'
})
return
}
selection.forEach(item => {
this.editDataIds.push(item.FIRE_POINT_ID)
})
}
const selection = this.$refs.multipleTable.selection
const DEPARTMENT_ID = selection[0].DEPARTMENT_ID
if (selection.length > 1) {
let flag = false
selection.forEach(item => {
if (DEPARTMENT_ID !== item.DEPARTMENT_ID) {
this.$message({
type: 'warning',
message: '只能选择同一部门下的数据'
})
flag = true
}
})
if (flag) {
return
}
}
this.getUserList(DEPARTMENT_ID)
this.dialogEditUserForm = {
USER_ID: ''
}
this.dialogEditUser = true
},
getUserList(DEPARTMENT_ID) {
requestFN(
'/user/listAll',
{
DEPARTMENT_ID: DEPARTMENT_ID
}
).then((data) => {
this.userList = data.userList
}).catch((e) => {
})
},
dialogEditUserConfirm() {
this.$refs.firefightingBatchEditDept.validate((valid) => {
if (valid) {
this.listLoading = true
requestFN(
'/firePoint/batchEditFirePointUser',
{
DATA_IDS: this.editDataIds.join(','),
USER_ID: this.dialogEditUserForm.USER_ID
}
).then(() => {
this.$message({
message: '修改成功',
type: 'success'
})
this.dialogEditUser = false
this.getList()
}).catch(() => {
})
}
})
},
handleDelete(row) {
const DATA_IDS = []
if (row.FIRE_POINT_ID) {
@ -296,6 +549,19 @@ export default {
})
return
}
var flag = true
selection.forEach(item => {
if (item.DEVICE_COUNT > 0) {
flag = false
}
})
if (!flag) {
this.$message({
type: 'warning',
message: '选择的点位中有子数据,不能删除'
})
return
}
selection.forEach(item => {
DATA_IDS.push(item.FIRE_POINT_ID)
})
@ -347,15 +613,17 @@ export default {
}
</script>
<style scoped >
<style scoped>
.returnBtn {
float: right;
}
.app-container {
display: flex; /**/
display: flex;
align-items: baseline;
}
.table-qrcode{
.table-qrcode {
text-align: center;
padding-top: 20px;
width: 100%;
@ -365,3 +633,139 @@ export default {
width: 100%
}
</style>
<style scoped lang="scss">
#printTest {
border: 1px solid #ccc;
padding: 20px;
margin: 10px;
.main_title {
font-weight: bold;
font-size: 30px;
text-align: center;
color: #000;
}
.horizontal {
.info {
color: #000;
font-size: 16px;
margin-top: 30px;
.row {
display: flex;
align-items: center;
.title {
width: 120px;
text-align: center;
border: 1px solid #000;
padding: 5px;
letter-spacing: 6px;
}
.value {
border: 1px solid #000;
border-left: none;
flex: 1;
padding: 5px 5px 5px 10px;
}
& + .row {
.title, .value {
border-top: none;
}
}
}
}
.qr_info {
color: #000;
font-size: 16px;
.row {
display: flex;
.title {
width: 30px;
line-height: 22px;
writing-mode: vertical-rl;
text-align: center;
letter-spacing: 15px;
border: 1px solid #000;
border-top: none;
padding: 4px;
}
.qr {
flex: 1;
border: 1px solid #000;
border-top: none;
border-left: none;
padding: 5px;
display: flex;
align-items: center;
justify-content: center;
& + .title {
border-left: none;
}
}
}
}
}
.vertical {
.info, .qr_info {
color: #000;
font-size: 16px;
margin-top: 30px;
.row {
display: flex;
.title {
width: 200px;
text-align: center;
padding: 5px;
border: 1px solid #000;
letter-spacing: 6px;
}
.value, .qr {
padding: 5px 5px 5px 10px;
border: 1px solid #000;
border-left: none;
flex: 1;
}
& + .row {
.title, .value, .qr {
border-top: none;
}
}
}
}
.qr_info {
margin-top: 0;
.row {
.title {
letter-spacing: 12px;
line-height: 280px;
border-top: none;
}
.qr {
display: flex;
align-items: center;
justify-content: center;
border-top: none;
}
}
}
}
}
</style>

View File

@ -644,7 +644,7 @@ export default {
data += '&ENDTIME=' + _this.condform.creatTime[1]
data += '&sessionID=' + ssionID
data += '&tm=' + new Date().getTime()
window.location.href = config.httpurl + 'hiddenExcel/excel2' + data
window.location.href = config.httpurl + '/hiddenExcel/excel2' + data
var timingTask = setInterval(function() {
requestFN(

View File

@ -118,9 +118,9 @@ export default {
this.jinduData[1] = nowYear + '-12-31'
this.getJindu()
this.getQingdan()
// this.getWorkNumber()
this.getWorkNumber()
this.getRiskNumber()
// this.getHiddenTypeCount()
this.getHiddenTypeCount()
/*
this.getNoticeList()
this.getNoticeCorpList()*/

View File

@ -1289,7 +1289,7 @@ export default {
const collection = new Cesium.CustomDataSource('trajectoryEntityCollection')
collection.entities.add(entity)
viewer.dataSources.add(collection)
this.trajectoryEntityCollection = collection
this.trajectoryEntityCollection = Object.freeze(collection)
}
})
},
@ -2450,8 +2450,8 @@ export default {
const wsUrl = config.NoDwSysUrl + '/ltLocation/DW_' + new Date().getTime() + '_98'
_this.fwebsocket = new WebSocket(encodeURI(wsUrl))
_this.fwebsocket.onmessage = function(message) {
console.info('接收消息')
const peopleList = JSON.parse(message.data)
viewer.entities.suspendEvents()
for (let i = 0; i < peopleList.length; i++) {
const item = peopleList[i]
if ((!item)) continue
@ -2484,6 +2484,7 @@ export default {
_this.mqttPoint[_this.subscription.topic.substring(0, _this.subscription.topic.lastIndexOf('+')) + item.id] = item.id
}
}
viewer.entities.resumeEvents()
}
}
},

View File

@ -468,7 +468,7 @@ export default {
type: 'warning'
}).then(() => {
this.listLoading = false
window.location.href = config.httpurl + 'identificationparts/excel'
window.location.href = config.httpurl + '/identificationparts/excel'
}).catch(() => {
this.listLoading = false
})
@ -505,7 +505,7 @@ export default {
type: 'warning'
}).then(() => {
this.listLoading = false
window.location.href = config.httpurl + 'identificationparts/excelModel'
window.location.href = config.httpurl + '/identificationparts/excelModel'
}).catch(() => {
this.listLoading = false
})

View File

@ -493,7 +493,7 @@ export default {
type: 'warning'
}).then(() => {
this.listLoading = false
window.location.href = config.httpurl + 'riskpoint/excel'
window.location.href = config.httpurl + '/riskpoint/excel'
}).catch(() => {
this.listLoading = false
})
@ -517,7 +517,7 @@ export default {
type: 'warning'
}).then(() => {
this.listLoading = false
window.open(this.config.httpurl + 'riskpoint/excelAll?ids=' + ids)
window.open(this.config.httpurl + '/riskpoint/excelAll?ids=' + ids)
}).catch(() => {
this.listLoading = false
})
@ -530,7 +530,7 @@ export default {
type: 'warning'
}).then(() => {
this.listLoading = false
window.location.href = config.httpurl + 'riskpoint/excelModel'
window.location.href = config.httpurl + '/riskpoint/excelModel'
}).catch(() => {
this.listLoading = false
})

View File

@ -379,7 +379,7 @@ export default {
type: 'warning'
}).then(() => {
this.listLoading = false
window.location.href = config.httpurl + 'riskunit/excelModel'
window.location.href = config.httpurl + '/riskunit/excelModel'
}).catch(() => {
this.listLoading = false
})