Merge branch 'dev' into limingyu-20240416-一公司动火作业地图
commit
a53d9140ea
|
@ -281,8 +281,8 @@ export default {
|
||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
dialogAlarm: false,
|
dialogAlarm: false,
|
||||||
rules: {
|
rules: {
|
||||||
LONGITUDE: [{ required: true, message: '不可为空', trigger: 'blur' }],
|
// LONGITUDE: [{ required: true, message: '不可为空', trigger: 'blur' }],
|
||||||
LATITUDE: [{ required: true, message: '不可为空', trigger: 'blur' }],
|
// LATITUDE: [{ required: true, message: '不可为空', trigger: 'blur' }],
|
||||||
RECIPIENT: [{ required: true, message: '不可为空', trigger: 'blur' }],
|
RECIPIENT: [{ required: true, message: '不可为空', trigger: 'blur' }],
|
||||||
INDICATORSOURCE: [{ required: true, message: '不可为空', trigger: 'blur' }],
|
INDICATORSOURCE: [{ required: true, message: '不可为空', trigger: 'blur' }],
|
||||||
ALARMTHRESHOLD: [{ required: true, message: '不可为空', trigger: 'blur' }],
|
ALARMTHRESHOLD: [{ required: true, message: '不可为空', trigger: 'blur' }],
|
||||||
|
@ -582,7 +582,8 @@ export default {
|
||||||
RECIPIENT: '',
|
RECIPIENT: '',
|
||||||
TYPE: '',
|
TYPE: '',
|
||||||
LATITUDE: '',
|
LATITUDE: '',
|
||||||
LONGITUDE: ''
|
LONGITUDE: '',
|
||||||
|
LONGTITUDEANDLATITUDE: ''
|
||||||
}
|
}
|
||||||
this.addForm.dialogType = ''
|
this.addForm.dialogType = ''
|
||||||
},
|
},
|
||||||
|
|
|
@ -0,0 +1,170 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-dialog :visible.sync="visible" :append-to-body="appendToBody" title="修改班级名称" width="700px" destroy-on-close >
|
||||||
|
<el-form ref="form" :model="form" label-width="110px">
|
||||||
|
<el-form-item label="班级名称" prop="CLASS_NAME">
|
||||||
|
<el-input
|
||||||
|
id="CLASS_NAME"
|
||||||
|
ref="CLASS_NAME"
|
||||||
|
v-model="form.CLASS_NAME"
|
||||||
|
style="width: 400px;"
|
||||||
|
maxlength="255"
|
||||||
|
placeholder="这里输入班级名称..."
|
||||||
|
title="班级名称"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="close">取 消</el-button>
|
||||||
|
<el-button type="primary" @click="confirm">确 定</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import vueQr from 'vue-qr'
|
||||||
|
import { requestFN } from '@/utils/request'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: { vueQr },
|
||||||
|
props: {
|
||||||
|
appendToBody: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
visible: false,
|
||||||
|
qrCodeStr: '',
|
||||||
|
form: {
|
||||||
|
CLASS_NAME: '',
|
||||||
|
CLASS_MESSAGE_ID: ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
init(row) {
|
||||||
|
this.visible = true
|
||||||
|
this.form.CLASS_MESSAGE_ID = row.CLASS_MESSAGE_ID
|
||||||
|
},
|
||||||
|
close() {
|
||||||
|
this.visible = false
|
||||||
|
this.form = {
|
||||||
|
CLASS_NAME: '',
|
||||||
|
CLASS_MESSAGE_ID: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
confirm() {
|
||||||
|
this.loading = true
|
||||||
|
if (!this.form.CLASS_NAME || this.form.CLASS_NAME === '') {
|
||||||
|
this.$message.error('请输入班级名称')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
requestFN('/classMessage/changeName', this.form).then((data) => {
|
||||||
|
this.$message.success('保存成功')
|
||||||
|
this.visible = false
|
||||||
|
this.close()
|
||||||
|
this.$emit('getResult')
|
||||||
|
}).catch((e) => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
|
||||||
|
.name{
|
||||||
|
width: 120px;
|
||||||
|
overflow: hidden;//溢出隐藏
|
||||||
|
white-space: nowrap; // 强制一行显示
|
||||||
|
text-overflow: ellipsis;// 显示。。。省略号
|
||||||
|
}
|
||||||
|
.red {
|
||||||
|
width: 660px;
|
||||||
|
color: #ff0000;
|
||||||
|
margin-left: 34px;
|
||||||
|
font-size: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg_table {
|
||||||
|
background: url("../../../../assets/tablebg.jpg") no-repeat bottom center;
|
||||||
|
background-size: 100%;
|
||||||
|
width: 660px;
|
||||||
|
height: 430px;
|
||||||
|
border: 4px solid #453d3a;
|
||||||
|
transform: scale(0.5);
|
||||||
|
transform-origin: top left;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-size: 28px;
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 34px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
width: 590px;
|
||||||
|
color: #453d3a;
|
||||||
|
font-size: 20px;
|
||||||
|
margin: 34px;
|
||||||
|
text-align: left;
|
||||||
|
margin-top: 10px;
|
||||||
|
|
||||||
|
.tcenter {
|
||||||
|
text-align: center
|
||||||
|
}
|
||||||
|
|
||||||
|
.w60 {
|
||||||
|
width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.w74 {
|
||||||
|
width: 148px
|
||||||
|
}
|
||||||
|
|
||||||
|
th, td {
|
||||||
|
border: 2px solid #453d3a;
|
||||||
|
text-align: left;
|
||||||
|
height: 40px;
|
||||||
|
padding: 0 16px;
|
||||||
|
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
.textone {
|
||||||
|
width: 80px;
|
||||||
|
text-align: justify;
|
||||||
|
text-align-last: justify;
|
||||||
|
text-justify: distribute-all-lines;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text1 {
|
||||||
|
width: 60px;
|
||||||
|
text-align: justify;
|
||||||
|
text-align-last: justify;
|
||||||
|
text-justify: distribute-all-lines;
|
||||||
|
margin: 0 auto;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.text2 {
|
||||||
|
width: 50px;
|
||||||
|
text-align: justify;
|
||||||
|
text-align-last: justify;
|
||||||
|
text-justify: distribute-all-lines;
|
||||||
|
margin: 0 auto;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.text {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<el-dialog v-loading="loading" :visible.sync="visible" :title="title" :before-close="close" width="70%">
|
<el-dialog v-loading="loading" :visible.sync="visible" :title="title" :before-close="close" width="70%" top="50px">
|
||||||
<el-form ref="form" :rules="rules" :model="form" label-width="110px">
|
<el-form ref="form" :rules="rules" :model="form" label-width="110px">
|
||||||
<el-row :gutter="10">
|
<el-row :gutter="10">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
|
@ -81,6 +81,7 @@
|
||||||
:data="peopleList"
|
:data="peopleList"
|
||||||
:row-key="getRowKey"
|
:row-key="getRowKey"
|
||||||
:header-cell-style="{'font-weight': 'bold','color': '#000'}"
|
:header-cell-style="{'font-weight': 'bold','color': '#000'}"
|
||||||
|
height="500px"
|
||||||
tooltip-effect="dark"
|
tooltip-effect="dark"
|
||||||
border
|
border
|
||||||
fit
|
fit
|
||||||
|
|
|
@ -104,7 +104,7 @@
|
||||||
border
|
border
|
||||||
fit
|
fit
|
||||||
highlight-current-row
|
highlight-current-row
|
||||||
@select="updateSelect"
|
@selection-change="updateSelect"
|
||||||
|
|
||||||
>
|
>
|
||||||
<el-table-column :reserve-selection="true" type="selection" width="55" align="center"/>
|
<el-table-column :reserve-selection="true" type="selection" width="55" align="center"/>
|
||||||
|
@ -164,6 +164,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<div style="margin-left: 10px">
|
<div style="margin-left: 10px">
|
||||||
|
<div>已选择人员数量:{{ ($refs.multipleTable && $refs.multipleTable.selection)?$refs.multipleTable.selection.length:0 }}</div>
|
||||||
<div class="el-form-item__label">已选择人员名称:</div>
|
<div class="el-form-item__label">已选择人员名称:</div>
|
||||||
<el-table
|
<el-table
|
||||||
:data="selectPeopleList"
|
:data="selectPeopleList"
|
||||||
|
@ -270,9 +271,10 @@ export default {
|
||||||
this.getDic()
|
this.getDic()
|
||||||
},
|
},
|
||||||
updateSelect(rows, row) {
|
updateSelect(rows, row) {
|
||||||
console.log(rows)
|
if (this.visible) {
|
||||||
if (this.form.CLASS_SIZE === '' || !this.form.CLASS_SIZE) {
|
if (this.form.CLASS_SIZE === '' || !this.form.CLASS_SIZE) {
|
||||||
this.$message.error('请先选择班级容量')
|
this.$message.error('请先选择班级容量')
|
||||||
|
this.$refs.multipleTable.clearSelection()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (rows.length > this.form.CLASS_SIZE) {
|
if (rows.length > this.form.CLASS_SIZE) {
|
||||||
|
@ -280,6 +282,7 @@ export default {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.selectPeopleList = rows
|
this.selectPeopleList = rows
|
||||||
|
}
|
||||||
},
|
},
|
||||||
confirm() {
|
confirm() {
|
||||||
const list = this.$refs.multipleTable.selection
|
const list = this.$refs.multipleTable.selection
|
||||||
|
@ -325,6 +328,7 @@ export default {
|
||||||
}
|
}
|
||||||
this.selectPeopleList = []
|
this.selectPeopleList = []
|
||||||
this.util.BELONG_TO_CORP = ''
|
this.util.BELONG_TO_CORP = ''
|
||||||
|
this.$refs.multipleTable.clearSelection()
|
||||||
},
|
},
|
||||||
getDic() {
|
getDic() {
|
||||||
let i = 0
|
let i = 0
|
||||||
|
@ -474,7 +478,9 @@ export default {
|
||||||
this.$refs.userPdf.init({ CLASS_MESSAGE_ID: CLASS_MESSAGE_ID })
|
this.$refs.userPdf.init({ CLASS_MESSAGE_ID: CLASS_MESSAGE_ID })
|
||||||
},
|
},
|
||||||
changePeopleList() {
|
changePeopleList() {
|
||||||
requestFN('/classMessage/getPeopleList?showCount=' + this.form.CLASS_SIZE + '¤tPage=1').then((data) => {
|
requestFN('/classMessage/getPeopleList?showCount=' + this.form.CLASS_SIZE + '¤tPage=1',
|
||||||
|
{ BELONG_TO_CORP: this.util.BELONG_TO_CORP }
|
||||||
|
).then((data) => {
|
||||||
this.peopleList = data.varList
|
this.peopleList = data.varList
|
||||||
for (let i = 0; i < this.peopleList.length; i++) {
|
for (let i = 0; i < this.peopleList.length; i++) {
|
||||||
this.peopleList[i].STATUS = ''
|
this.peopleList[i].STATUS = ''
|
||||||
|
|
|
@ -60,10 +60,10 @@
|
||||||
width="55"
|
width="55"
|
||||||
align="center"/>
|
align="center"/>
|
||||||
<el-table-column type="index" label="序号" width="50" align="center" />
|
<el-table-column type="index" label="序号" width="50" align="center" />
|
||||||
<el-table-column prop="CLASS_NAME" label="班级名称" />
|
<el-table-column prop="CLASS_NAME" width="300px" label="班级名称" />
|
||||||
<el-table-column prop="TRAINING_TYPE_NAME" label="培训类型" />
|
<el-table-column prop="TRAINING_TYPE_NAME" width="200px" label="培训类型" />
|
||||||
<el-table-column prop="OPENING_TIME" label="开班时间" />
|
<el-table-column prop="OPENING_TIME" label="开班时间" />
|
||||||
<el-table-column prop="PLACE_NAME" label="培训地点" />
|
<el-table-column prop="PLACE_NAME" width="200px" label="培训地点" />
|
||||||
<el-table-column prop="CLASS_SIZE" label="班级容量" />
|
<el-table-column prop="CLASS_SIZE" label="班级容量" />
|
||||||
<el-table-column prop="TRAINEES_NUM" label="培训人员数量" />
|
<el-table-column prop="TRAINEES_NUM" label="培训人员数量" />
|
||||||
<el-table-column prop="CLASS_STATUS" label="班级状态">
|
<el-table-column prop="CLASS_STATUS" label="班级状态">
|
||||||
|
@ -71,11 +71,12 @@
|
||||||
{{ row.CLASS_STATUS === '0'?'待开班':(row.CLASS_STATUS === '1'?'已开班':'完成') }}
|
{{ row.CLASS_STATUS === '0'?'待开班':(row.CLASS_STATUS === '1'?'已开班':'完成') }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="center" width="200">
|
<el-table-column label="操作" align="center" width="400" fixed="right">
|
||||||
<template slot-scope="{row}">
|
<template slot-scope="{row}">
|
||||||
<el-button type="primary" icon="el-icon-edit" size="mini" @click="handleEdit(row.CLASS_MESSAGE_ID)">查看</el-button>
|
<el-button type="primary" icon="el-icon-edit" size="mini" @click="handleEdit(row.CLASS_MESSAGE_ID)">查看</el-button>
|
||||||
|
<el-button v-show=" row.CLASS_STATUS === '0'" type="danger" icon="el-icon-delete" size="mini" @click="handleDelete(row.CLASS_MESSAGE_ID)">删除</el-button>
|
||||||
<el-button v-show=" row.CLASS_STATUS === '1'" type="primary" size="mini" @click="uploadExcel(row)">信息反馈</el-button>
|
<el-button v-show=" row.CLASS_STATUS === '1'" type="primary" size="mini" @click="uploadExcel(row)">信息反馈</el-button>
|
||||||
<el-button v-if="false" v-show="del" type="danger" icon="el-icon-delete" size="mini" @click="handleDelete(row.CLASS_MESSAGE_ID)">删除</el-button>
|
<el-button v-show=" row.CLASS_STATUS === '0'" type="primary" icon="el-icon-edit" size="mini" @click="changeName(row)">修改班级名称</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -89,6 +90,7 @@
|
||||||
<edit ref="edit" :title="title" :is-show="isShow" @getResult = "getList"/>
|
<edit ref="edit" :title="title" :is-show="isShow" @getResult = "getList"/>
|
||||||
<init-class ref="initClass" :title="title" :is-show="isShow" @getResult = "getList"/>
|
<init-class ref="initClass" :title="title" :is-show="isShow" @getResult = "getList"/>
|
||||||
<upload-excel ref="uploadExcel" title="上传" append-to-body @getChoose="getFile"/>
|
<upload-excel ref="uploadExcel" title="上传" append-to-body @getChoose="getFile"/>
|
||||||
|
<change-name ref="changeName" @getResult = "getList"/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
@ -99,8 +101,9 @@ import edit from './edit.vue'
|
||||||
import { upload } from '@/utils/upload'
|
import { upload } from '@/utils/upload'
|
||||||
import uploadExcel from '../../../../components/uploadExcel/index.vue'
|
import uploadExcel from '../../../../components/uploadExcel/index.vue'
|
||||||
import InitClass from './initClass.vue'
|
import InitClass from './initClass.vue'
|
||||||
|
import ChangeName from './changeName.vue'
|
||||||
export default {
|
export default {
|
||||||
components: { InitClass, uploadExcel, Pagination, edit },
|
components: { ChangeName, InitClass, uploadExcel, Pagination, edit },
|
||||||
directives: { waves },
|
directives: { waves },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -200,7 +203,7 @@ export default {
|
||||||
requestFN(
|
requestFN(
|
||||||
'/classMessage/delete',
|
'/classMessage/delete',
|
||||||
{
|
{
|
||||||
CLASSMESSAGE_ID: id
|
CLASS_MESSAGE_ID: id
|
||||||
}
|
}
|
||||||
).then(() => {
|
).then(() => {
|
||||||
this.$message({
|
this.$message({
|
||||||
|
@ -335,6 +338,9 @@ export default {
|
||||||
},
|
},
|
||||||
uploadExcel(row) {
|
uploadExcel(row) {
|
||||||
this.$refs.uploadExcel.init(row)
|
this.$refs.uploadExcel.init(row)
|
||||||
|
},
|
||||||
|
changeName(row) {
|
||||||
|
this.$refs.changeName.init(row)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -166,7 +166,7 @@ export default {
|
||||||
downloadPdf(dom, '相关方安全告知培训合格证')
|
downloadPdf(dom, '相关方安全告知培训合格证')
|
||||||
},
|
},
|
||||||
getShowPicture(row) {
|
getShowPicture(row) {
|
||||||
if (row.PHOTO && row.PHOTO !== '' && (row.PHOTO.indexOf('.jpg') >= 0 || row.PHOTO.indexOf('.png') >= 0 || row.PHOTO.indexOf('.jpeg') >= 0)) {
|
if (row.PHOTO) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="renyuan">
|
<div class="renyuan">
|
||||||
<div class="block1">
|
<div v-if="false" class="block1">
|
||||||
<layout-title title="定位基础信息"/>
|
<layout-title title="定位基础信息"/>
|
||||||
<div class="options">
|
<div class="options">
|
||||||
<div v-for="(item,index) in block1OptionsList" :key="index" class="option">
|
<div v-for="(item,index) in block1OptionsList" :key="index" class="option">
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="block2">
|
<div v-if="false" class="block2">
|
||||||
<layout-title title="定位状态数据"/>
|
<layout-title title="定位状态数据"/>
|
||||||
<div class="options">
|
<div class="options">
|
||||||
<div class="bg"/>
|
<div class="bg"/>
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="block3">
|
<div v-if="false" class="block3">
|
||||||
<layout-title title="定位标签状态"/>
|
<layout-title title="定位标签状态"/>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="options">
|
<div class="options">
|
||||||
|
@ -56,18 +56,42 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="block4">
|
||||||
|
<layout-title title="报警列表"/>
|
||||||
|
<div class="content">
|
||||||
|
<div class="table">
|
||||||
|
<div class="tr">
|
||||||
|
<div class="td">区域名称</div>
|
||||||
|
<div class="td">报警设备编号</div>
|
||||||
|
<div class="td">状态告警</div>
|
||||||
|
</div>
|
||||||
|
<div v-for="(item,index) in block4List" :key="index" class="tr">
|
||||||
|
<div class="td">{{ item.alarmName }}</div>
|
||||||
|
<div class="td">{{ item.equipmentName }}</div>
|
||||||
|
<div class="td">{{ item.statusName }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import layoutTitle from './title.vue'
|
import layoutTitle from './title.vue'
|
||||||
import CountTo from 'vue-count-to'
|
import CountTo from 'vue-count-to'
|
||||||
|
import { requestFN } from '../../../utils/request'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
CountTo,
|
CountTo,
|
||||||
layoutTitle
|
layoutTitle
|
||||||
},
|
},
|
||||||
|
props: {
|
||||||
|
corpInfoId: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
block1OptionsList: [
|
block1OptionsList: [
|
||||||
|
@ -131,12 +155,26 @@ export default {
|
||||||
count: '-',
|
count: '-',
|
||||||
facount: '-'
|
facount: '-'
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
block4List: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
created() {
|
||||||
|
this.getData()
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
block3OptionsClick(index) {
|
block3OptionsClick(index) {
|
||||||
this.block3OptionsIndex = index
|
this.block3OptionsIndex = index
|
||||||
|
},
|
||||||
|
getData() {
|
||||||
|
requestFN(
|
||||||
|
'/map/getAlarmList',
|
||||||
|
{ corpId: this.corpInfoId }
|
||||||
|
).then((data) => {
|
||||||
|
this.block4List = data.list
|
||||||
|
}).catch((e) => {
|
||||||
|
this.$message.error(e)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -321,6 +359,48 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.block4 {
|
||||||
|
margin-top: 10px;
|
||||||
|
width: 410px;
|
||||||
|
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.8));
|
||||||
|
|
||||||
|
.content {
|
||||||
|
border: 1px solid;
|
||||||
|
border-image: linear-gradient(to bottom, rgba(58, 122, 149, 0), rgba(58, 122, 149, 1)) 1;
|
||||||
|
border-top: none;
|
||||||
|
padding: 10px;
|
||||||
|
|
||||||
|
.options {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.table {
|
||||||
|
margin-top: 5px;
|
||||||
|
|
||||||
|
.tr {
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
&:nth-child(odd) {
|
||||||
|
background-color: rgba(42, 86, 158, 0.53);
|
||||||
|
}
|
||||||
|
|
||||||
|
.td {
|
||||||
|
flex: 1;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #fff;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes scale {
|
@keyframes scale {
|
||||||
|
|
|
@ -54,7 +54,7 @@
|
||||||
<!--曹妃甸东 八项作业 曹实业详细页面 end-->
|
<!--曹妃甸东 八项作业 曹实业详细页面 end-->
|
||||||
<peoplePositionNine v-if="type === 'peoplePositionNine'" :id="id" :type="type" :infoname="infoname"/>
|
<peoplePositionNine v-if="type === 'peoplePositionNine'" :id="id" :type="type" :infoname="infoname"/>
|
||||||
<peoplePositionOne v-if="type === 'peoplePositionOne' && corpInfoId !== '035958e685cf4850bc40151c5e0617a6'" :id="id" :type="type" />
|
<peoplePositionOne v-if="type === 'peoplePositionOne' && corpInfoId !== '035958e685cf4850bc40151c5e0617a6'" :id="id" :type="type" />
|
||||||
<peoplePositionYGS v-if="type === 'peoplePositionOne' && corpInfoId === '035958e685cf4850bc40151c5e0617a6'" :id="id" :type="type" />
|
<peoplePositionYGS v-if="type === 'peoplePositionOne' && corpInfoId === '035958e685cf4850bc40151c5e0617a6'" :id="id" :type="type" :corp-id="corpInfoId" />
|
||||||
<!-- 重点工程 start -->
|
<!-- 重点工程 start -->
|
||||||
<outSourceInfo v-if="type === 'PROJECT'" :id="id" :type="type" />
|
<outSourceInfo v-if="type === 'PROJECT'" :id="id" :type="type" />
|
||||||
<outSourceVideoInfo v-if="type === 'VIDEO'" :id="id" :type="type" />
|
<outSourceVideoInfo v-if="type === 'VIDEO'" :id="id" :type="type" />
|
||||||
|
|
|
@ -8,19 +8,25 @@
|
||||||
<td class="bbg-transparent">照片</td>
|
<td class="bbg-transparent">照片</td>
|
||||||
<td ><img src="../../../assets/map/index/touxiang.png" alt="" width="50" height="50"></td>
|
<td ><img src="../../../assets/map/index/touxiang.png" alt="" width="50" height="50"></td>
|
||||||
<td class="bbg-transparent">姓名</td>
|
<td class="bbg-transparent">姓名</td>
|
||||||
<td >{{ info?info.NAME:'' }}</td>
|
<td >{{ info?info.userName:'' }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="bbg-transparent">公司</td>
|
||||||
|
<td >{{ info?info.corpName:'' }}</td>
|
||||||
<td class="bbg-transparent">部门</td>
|
<td class="bbg-transparent">部门</td>
|
||||||
<td >{{ info?info.DEPARTMENT_NAME:'' }}</td>
|
<td >{{ info?info.departmentName:'' }}</td>
|
||||||
<td class="bbg-transparent">岗位</td>
|
</tr>
|
||||||
<td >{{ info?info.POST_NAME:'' }}</td>
|
<tr>
|
||||||
|
<td class="bbg-transparent">设备id</td>
|
||||||
|
<td >{{ info?info.deviceId:'' }}</td>
|
||||||
|
<td class="bbg-transparent">设备名称</td>
|
||||||
|
<td >{{ info?info.deviceName:'' }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="bbg-transparent">人员类型</td>
|
<td class="bbg-transparent">人员类型</td>
|
||||||
<td >{{ info?info.PERSON_TYPE:'' }}</td>
|
<td>{{ otherInfo?otherInfo.personType:'' }}</td>
|
||||||
<td class="bbg-transparent">是否为隐患确认人</td>
|
<td class="bbg-transparent">岗位</td>
|
||||||
<td >{{ info.IS_HAZARDCONFIRMER == 0 ?'否':'是' }}</td>
|
<td>{{ otherInfo?otherInfo.postName:'' }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
@ -42,12 +48,19 @@ export default {
|
||||||
default() {
|
default() {
|
||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
corpId: {
|
||||||
|
type: String,
|
||||||
|
default() {
|
||||||
|
return ''
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
config: config,
|
config: config,
|
||||||
info: {}
|
info: {},
|
||||||
|
otherInfo: {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
@ -58,10 +71,12 @@ export default {
|
||||||
requestFN(
|
requestFN(
|
||||||
'/map/getPersonByCardNo',
|
'/map/getPersonByCardNo',
|
||||||
{
|
{
|
||||||
CARDNO: this.id
|
CARDNO: this.id,
|
||||||
|
corpId: this.corpId
|
||||||
}
|
}
|
||||||
).then((data) => {
|
).then((data) => {
|
||||||
this.info = data.pd
|
this.info = data.info.required
|
||||||
|
this.otherInfo = data.otherInfo
|
||||||
}).catch((e) => {
|
}).catch((e) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -1117,6 +1117,7 @@ export default {
|
||||||
subscription: {
|
subscription: {
|
||||||
// '+'是通配符
|
// '+'是通配符
|
||||||
topic: '+/UwbBQ/+/prop',
|
topic: '+/UwbBQ/+/prop',
|
||||||
|
topic1: '+/+/+/alarm',
|
||||||
qos: 0
|
qos: 0
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -1143,7 +1144,8 @@ export default {
|
||||||
vmport: '7010',
|
vmport: '7010',
|
||||||
linkPort: '8093',
|
linkPort: '8093',
|
||||||
VIIDPort: '8088'
|
VIIDPort: '8088'
|
||||||
}
|
},
|
||||||
|
trajectoryEntityCollection: {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
@ -1466,6 +1468,58 @@ export default {
|
||||||
}
|
}
|
||||||
// var cartesian = this.getCatesian3FromPX(movement.position)
|
// var cartesian = this.getCatesian3FromPX(movement.position)
|
||||||
}, Cesium.ScreenSpaceEventType.LEFT_CLICK)
|
}, Cesium.ScreenSpaceEventType.LEFT_CLICK)
|
||||||
|
viewer.cesiumWidget.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.RIGHT_DOUBLE_CLICK)
|
||||||
|
viewer.cesiumWidget.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.RIGHT_CLICK)
|
||||||
|
document.addEventListener('contextmenu', function(event) {
|
||||||
|
event.preventDefault()
|
||||||
|
})
|
||||||
|
this.handler.setInputAction(movement => {
|
||||||
|
const pick = viewer.scene.pick(movement.position)
|
||||||
|
if (Cesium.defined(pick) && (pick.id.id)) {
|
||||||
|
if (!pick.id._monitoItems) {
|
||||||
|
this.removeTrajectory()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const point_type = pick.id._monitoItems.data.point_type
|
||||||
|
const point_id = pick.id._monitoItems.data.id
|
||||||
|
const corpInfoId = pick.id._monitoItems.data.corpInfoId
|
||||||
|
if (point_type === '标记点peoplePositionOne') {
|
||||||
|
this.removeTrajectory()
|
||||||
|
this.addTrajectory(point_id, corpInfoId)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.removeTrajectory()
|
||||||
|
}
|
||||||
|
}, Cesium.ScreenSpaceEventType.RIGHT_CLICK)
|
||||||
|
},
|
||||||
|
addTrajectory(point_id, corpInfoId) {
|
||||||
|
requestFN(
|
||||||
|
'/map/getPersonTrace',
|
||||||
|
{
|
||||||
|
id: point_id,
|
||||||
|
corpId: corpInfoId
|
||||||
|
}
|
||||||
|
).then((data) => {
|
||||||
|
if (data.list) {
|
||||||
|
const positions = []
|
||||||
|
for (let i = 0; i < data.list.length; i++) {
|
||||||
|
positions.push(Cesium.Cartesian3.fromDegrees(data.list[i].XAxis, data.list[i].YAxis))
|
||||||
|
}
|
||||||
|
const entity = new Cesium.Entity({
|
||||||
|
id: 'trajectory',
|
||||||
|
polyline: { positions, width: 5.0, material: Cesium.Color.RED }
|
||||||
|
})
|
||||||
|
const collection = new Cesium.CustomDataSource('trajectoryEntityCollection')
|
||||||
|
collection.entities.add(entity)
|
||||||
|
viewer.dataSources.add(collection)
|
||||||
|
this.trajectoryEntityCollection = collection
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
removeTrajectory() {
|
||||||
|
if (Object.keys(this.trajectoryEntityCollection).length === 0) return
|
||||||
|
viewer.dataSources.remove(this.trajectoryEntityCollection)
|
||||||
|
this.trajectoryEntityCollection = {}
|
||||||
},
|
},
|
||||||
|
|
||||||
getCatesian3FromPX: function(px) {
|
getCatesian3FromPX: function(px) {
|
||||||
|
@ -1820,6 +1874,7 @@ export default {
|
||||||
this.destroyConnection()
|
this.destroyConnection()
|
||||||
this.clearAllBottomOptionsItemsCheck()
|
this.clearAllBottomOptionsItemsCheck()
|
||||||
this.clearAllBottomOptionsItemsEntityCollection()
|
this.clearAllBottomOptionsItemsEntityCollection()
|
||||||
|
this.removeTrajectory()
|
||||||
this.onePerLocArr = []
|
this.onePerLocArr = []
|
||||||
this.perLocArr = []
|
this.perLocArr = []
|
||||||
this.clearMqttPoint()
|
this.clearMqttPoint()
|
||||||
|
@ -1864,6 +1919,7 @@ export default {
|
||||||
this.addBranchPoint()
|
this.addBranchPoint()
|
||||||
this.clearAllBottomOptionsItemsCheck()
|
this.clearAllBottomOptionsItemsCheck()
|
||||||
this.clearAllBottomOptionsItemsEntityCollection()
|
this.clearAllBottomOptionsItemsEntityCollection()
|
||||||
|
this.removeTrajectory()
|
||||||
},
|
},
|
||||||
bottomOptionsClick(index) {
|
bottomOptionsClick(index) {
|
||||||
if (this.bottomClickDisable) return
|
if (this.bottomClickDisable) return
|
||||||
|
@ -1938,6 +1994,7 @@ export default {
|
||||||
} else if (this.CORP_INFO_ID) {
|
} else if (this.CORP_INFO_ID) {
|
||||||
this.CORP_INFO_ID = ''
|
this.CORP_INFO_ID = ''
|
||||||
this.clearAllBottomOptionsItemsEntityCollection()
|
this.clearAllBottomOptionsItemsEntityCollection()
|
||||||
|
this.removeTrajectory()
|
||||||
this.dragAreaEntity(this.branchPoint)
|
this.dragAreaEntity(this.branchPoint)
|
||||||
this.toCenter(this.parentCenter)
|
this.toCenter(this.parentCenter)
|
||||||
this.destroyConnection()
|
this.destroyConnection()
|
||||||
|
@ -2010,7 +2067,8 @@ export default {
|
||||||
}
|
}
|
||||||
if (this.gangkouActive === '00003' && this.CORP_INFO_ID === '035958e685cf4850bc40151c5e0617a6' && urlType === 'peoplePosition') {
|
if (this.gangkouActive === '00003' && this.CORP_INFO_ID === '035958e685cf4850bc40151c5e0617a6' && urlType === 'peoplePosition') {
|
||||||
this.doUnSubscribe()
|
this.doUnSubscribe()
|
||||||
this.clearMqttPoint('1698584148364034050/UwbBQ/')
|
this.clearMqttPoint('+/UwbBQ/')
|
||||||
|
this.removeTrajectory()
|
||||||
}
|
}
|
||||||
this.bottomOptionsList[pindex].list[index].check = false
|
this.bottomOptionsList[pindex].list[index].check = false
|
||||||
if (this.gangkouActive === '00004') {
|
if (this.gangkouActive === '00004') {
|
||||||
|
@ -2529,6 +2587,7 @@ export default {
|
||||||
},
|
},
|
||||||
mqttMessage(CORP_INFO_ID) {
|
mqttMessage(CORP_INFO_ID) {
|
||||||
this.client.on('message', (topic, message) => {
|
this.client.on('message', (topic, message) => {
|
||||||
|
if (topic.indexOf('UwbBQ') !== -1 && topic.indexOf('prop') !== -1) {
|
||||||
// created by liu jun mqtt返回的参数可能是一个数组
|
// created by liu jun mqtt返回的参数可能是一个数组
|
||||||
let peopleList = JSON.parse(message)
|
let peopleList = JSON.parse(message)
|
||||||
if (!Array.isArray(peopleList)) {
|
if (!Array.isArray(peopleList)) {
|
||||||
|
@ -2569,6 +2628,15 @@ export default {
|
||||||
this.mqttPoint[this.subscription.topic.substring(0, this.subscription.topic.lastIndexOf('+')) + item.deviceCode] = item.deviceCode
|
this.mqttPoint[this.subscription.topic.substring(0, this.subscription.topic.lastIndexOf('+')) + item.deviceCode] = item.deviceCode
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (topic.indexOf('alarm') !== -1) {
|
||||||
|
const formatMessage = JSON.parse(message)
|
||||||
|
this.$notify({
|
||||||
|
title: '报警信息',
|
||||||
|
dangerouslyUseHTMLString: true,
|
||||||
|
message: `部门:${formatMessage.deptName}<br/>类型:${formatMessage.identifierName}`,
|
||||||
|
type: 'error'
|
||||||
|
})
|
||||||
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
clearMqttPoint(prefix) {
|
clearMqttPoint(prefix) {
|
||||||
|
@ -2589,8 +2657,8 @@ export default {
|
||||||
},
|
},
|
||||||
// 订阅
|
// 订阅
|
||||||
doSubscribe() {
|
doSubscribe() {
|
||||||
const { topic, qos } = this.subscription
|
const { topic, topic1, qos } = this.subscription
|
||||||
this.client.subscribe(topic, { qos }, (error, res) => {
|
this.client.subscribe([topic, topic1], { qos }, (error, res) => {
|
||||||
if (error) {
|
if (error) {
|
||||||
console.log('Subscribe to topics error', error)
|
console.log('Subscribe to topics error', error)
|
||||||
return
|
return
|
||||||
|
@ -2601,8 +2669,8 @@ export default {
|
||||||
},
|
},
|
||||||
// 取消订阅
|
// 取消订阅
|
||||||
doUnSubscribe() {
|
doUnSubscribe() {
|
||||||
const { topic } = this.subscription
|
const { topic, topic1 } = this.subscription
|
||||||
this.client.unsubscribe(topic, error => {
|
this.client.unsubscribe([topic, topic1], error => {
|
||||||
if (error) {
|
if (error) {
|
||||||
console.log('Subscribe to topics error', error)
|
console.log('Subscribe to topics error', error)
|
||||||
}
|
}
|
||||||
|
|
|
@ -140,6 +140,7 @@ export default {
|
||||||
this.$message.success('推送成功')
|
this.$message.success('推送成功')
|
||||||
this.visible = false
|
this.visible = false
|
||||||
this.$emit('refresh', '')
|
this.$emit('refresh', '')
|
||||||
|
this.beforeClose()
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
console.log(e)
|
console.log(e)
|
||||||
|
@ -182,28 +183,40 @@ export default {
|
||||||
|
|
||||||
handleClose() {
|
handleClose() {
|
||||||
this.form = {
|
this.form = {
|
||||||
STATUS: '',
|
STATUS: '1',
|
||||||
|
APPOINT_CORP_ID: '',
|
||||||
|
APPOINT_CORP_NAME: '',
|
||||||
APPOINT_DEPARTMENT_ID: null,
|
APPOINT_DEPARTMENT_ID: null,
|
||||||
APPOINT_DEPARTMENT_NAME: '',
|
APPOINT_DEPARTMENT_NAME: '',
|
||||||
APPOINT_USER_ID: '',
|
APPOINT_USER_ID: null,
|
||||||
APPOINT_USER_NAME: '',
|
APPOINT_USER_NAME: '',
|
||||||
|
OPINION: '',
|
||||||
user: '',
|
user: '',
|
||||||
|
tm: new Date().getTime(),
|
||||||
list: [],
|
list: [],
|
||||||
tm: new Date().getTime()
|
isShow: true,
|
||||||
|
info: {},
|
||||||
|
entrustFlag: '1'
|
||||||
}
|
}
|
||||||
this.visible = false
|
this.visible = false
|
||||||
},
|
},
|
||||||
beforeClose() {
|
beforeClose() {
|
||||||
this.visible = false
|
this.visible = false
|
||||||
this.form = {
|
this.form = {
|
||||||
STATUS: '',
|
STATUS: '1',
|
||||||
|
APPOINT_CORP_ID: '',
|
||||||
|
APPOINT_CORP_NAME: '',
|
||||||
APPOINT_DEPARTMENT_ID: null,
|
APPOINT_DEPARTMENT_ID: null,
|
||||||
APPOINT_DEPARTMENT_NAME: '',
|
APPOINT_DEPARTMENT_NAME: '',
|
||||||
APPOINT_USER_ID: '',
|
APPOINT_USER_ID: null,
|
||||||
APPOINT_USER_NAME: '',
|
APPOINT_USER_NAME: '',
|
||||||
|
OPINION: '',
|
||||||
user: '',
|
user: '',
|
||||||
|
tm: new Date().getTime(),
|
||||||
list: [],
|
list: [],
|
||||||
tm: new Date().getTime()
|
isShow: true,
|
||||||
|
info: {},
|
||||||
|
entrustFlag: '1'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -153,12 +153,14 @@ export default {
|
||||||
this.$message.error('请填写完整信息')
|
this.$message.error('请填写完整信息')
|
||||||
} else {
|
} else {
|
||||||
if (this.form.TYPE !== '2') {
|
if (this.form.TYPE !== '2') {
|
||||||
|
this.loading = true
|
||||||
requestFN('/xgf/user/approveMax', this.form)
|
requestFN('/xgf/user/approveMax', this.form)
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
this.$message.success('推送成功')
|
this.$message.success('推送成功')
|
||||||
this.visible = false
|
this.visible = false
|
||||||
this.$emit('refresh', '')
|
this.$emit('refresh', '')
|
||||||
this.handleClose()
|
this.handleClose()
|
||||||
|
this.loading = false
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
console.log(e)
|
console.log(e)
|
||||||
|
@ -174,12 +176,14 @@ export default {
|
||||||
formData.append('weiTuoShu', this.form.APPOINT_ANNEX[i].raw)
|
formData.append('weiTuoShu', this.form.APPOINT_ANNEX[i].raw)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this.loading = true
|
||||||
upload('/xgf/user/approveMax', formData)
|
upload('/xgf/user/approveMax', formData)
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
this.$message.success('推送成功')
|
this.$message.success('推送成功')
|
||||||
this.visible = false
|
this.visible = false
|
||||||
this.$emit('refresh', '')
|
this.$emit('refresh', '')
|
||||||
this.handleClose()
|
this.handleClose()
|
||||||
|
this.loading = false
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
console.log(e)
|
console.log(e)
|
||||||
|
|
Loading…
Reference in New Issue