You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
283 lines
8.7 KiB
283 lines
8.7 KiB
<template> |
|
<basic-container> |
|
<avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" :page.sync="page" |
|
:permission="permissionList" @search-change="searchChange" @search-reset="searchReset" |
|
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad"> |
|
<template #menu="{ row, index }"> |
|
<el-button type="text" icon="el-icon-view" size="small" @click="rowView(row, index)">详情 |
|
</el-button> |
|
<el-button type="text" icon="el-icon-map-location" size="small" |
|
@click="rowMap(row, index)">地图定位 |
|
</el-button> |
|
</template> |
|
</avue-crud> |
|
<!-- 地图定位 --> |
|
<el-dialog v-if="dialogVisible" :visible.sync="dialogVisible" modal="false" append-to-body fullscreen> |
|
<MapView :floorNo="floorNo" :sn="sn" :x="x" :y="y"></MapView> |
|
</el-dialog> |
|
</basic-container> |
|
</template> |
|
|
|
<script> |
|
import { bizLogin, terminalList, selectPatientPage } from "@/api/wirelessintrusion/wirelessintrusion"; |
|
import { mapGetters } from "vuex"; |
|
import { dateFormat } from "../../../util/date"; |
|
import MapView from "../../map/index.vue"; |
|
|
|
export default { |
|
components: { |
|
MapView |
|
}, |
|
data() { |
|
return { |
|
query: {}, |
|
loading: true, |
|
page: { |
|
size: 10, |
|
current: 1, |
|
total: 0 |
|
}, |
|
option: { |
|
height: 'auto', |
|
calcHeight: 30, |
|
tip: false, |
|
searchShow: true, |
|
searchMenuSpan: 6, |
|
border: true, |
|
index: true, |
|
selection: false, |
|
viewBtn: true, |
|
delBtn: false, |
|
dialogClickModal: false, |
|
menuWidth: 180, |
|
column: [ |
|
{ |
|
label: "sn编号", |
|
prop: "sn", |
|
}, |
|
{ |
|
label: "姓名", |
|
prop: "patientName", |
|
search: true, |
|
}, |
|
{ |
|
label: "性别", |
|
prop: "sex", |
|
type: "select", |
|
dicData: [ |
|
{ value: "1", label: "男" }, { value: '0', label: "女" } |
|
], |
|
}, |
|
{ |
|
label: "科室", |
|
prop: "departmentName", |
|
}, |
|
{ |
|
label: "状态", |
|
type: "select", |
|
dicData: [ |
|
{ value: 'alarm', label: "报警" }, { value: 'offLine', label: "离线" }, { value: 'onLine', label: "在线" } |
|
], |
|
prop: "status", |
|
search: true, |
|
}, |
|
{ |
|
label: "年龄", |
|
prop: "age", |
|
}, |
|
{ |
|
label: "手机号", |
|
prop: "phone", |
|
span: 24, |
|
}, |
|
] |
|
}, |
|
data: [], |
|
submitLoading: false, |
|
// buildingId: 202861, |
|
buildingId: 206885, |
|
//地图定位查看 |
|
dialogVisible: false, |
|
sn: '', |
|
x: 0, |
|
y: 0, |
|
floorNo: 1 |
|
}; |
|
}, |
|
computed: { |
|
...mapGetters(["userInfo", "permission"]), |
|
permissionList() { |
|
return { |
|
addBtn: false, |
|
viewBtn: false, |
|
delBtn: true, |
|
editBtn: false |
|
}; |
|
}, |
|
}, |
|
methods: { |
|
//查看详情 |
|
rowView(row, index) { |
|
this.$refs.crud.rowView(row, index); |
|
}, |
|
//地图定位查看 |
|
rowMap(row, index) { |
|
let token = window.sessionStorage.getItem('bizToken'); |
|
if (token == 'undefined' || !token) { |
|
bizLogin({ appKey: 'Arf7bd4f26', appSecret: 'kb207044c8' }).then(res => { |
|
if(res.status == 200){ |
|
if(res.data.code == 0){ |
|
window.sessionStorage.setItem('bizToken', res.data.data.token); |
|
terminalList(res.data.data.token, { page: 1, size: 1, buildingIds: this.buildingId, sn: row.sn }).then(res2 => { |
|
if (res2.data.code == 401) { |
|
window.sessionStorage.removeItem('bizToken'); |
|
this.rowMap(row, index) |
|
} |
|
else if (res2.data.code == 0) { |
|
const data = res2.data.data.content; |
|
if (data.length > 0 && data[0].x && data[0].y) { |
|
this.sn = row.sn; |
|
this.x = data[0].x; |
|
this.y = data[0].y; |
|
this.floorNo = data[0].floorNo; |
|
console.log(this.sn, this.x, this.y) |
|
this.dialogVisible = true; |
|
}else{ |
|
this.$message.warning("未查询到该人员定位信息"); |
|
} |
|
}else{ |
|
this.$message.error('物联网平台访问超时!') |
|
} |
|
}); |
|
}else{ |
|
this.$message.error('物联网平台访问超时!') |
|
} |
|
}else{ |
|
this.$message.error('物联网平台访问超时!') |
|
} |
|
|
|
}) |
|
} |
|
else { |
|
terminalList(token, { page: 1, size: 1, buildingIds: this.buildingId, sn: row.sn }).then(res2 => { |
|
if (res2.data.code == 401) { |
|
window.sessionStorage.removeItem('bizToken'); |
|
this.rowMap(row, index); |
|
} |
|
else if (res2.data.code == 0) { |
|
const data = res2.data.data.content; |
|
if (data.length > 0 && data[0].x && data[0].y) { |
|
this.sn = row.sn; |
|
this.x = data[0].x; |
|
this.y = data[0].y; |
|
this.floorNo = data[0].floorNo; |
|
console.log(this.sn, this.x, this.y) |
|
this.dialogVisible = true; |
|
}else{ |
|
this.$message.warning("未查询到该人员定位信息"); |
|
} |
|
}else{ |
|
this.$message.error('物联网平台访问超时!') |
|
} |
|
}); |
|
} |
|
// if(row.x && row.y) { |
|
// this.sn = row.sn; |
|
// this.x = row.x; |
|
// this.y = row.y; |
|
// this.floorNo = row.floorNo; |
|
// console.log(this.sn,this.x,this.y) |
|
// this.dialogVisible = true; |
|
// } |
|
}, |
|
searchReset() { |
|
this.query = {}; |
|
this.onLoad(this.page); |
|
}, |
|
searchChange(params, done) { |
|
this.query = params; |
|
this.page.current = 1; |
|
this.onLoad(this.page, params); |
|
done(); |
|
}, |
|
currentChange(current) { |
|
this.page.current = current; |
|
}, |
|
sizeChange(size) { |
|
this.page.size = size; |
|
}, |
|
refreshChange() { |
|
this.onLoad(this.page, this.query); |
|
}, |
|
onLoad(page, params = {}) { |
|
let token = window.sessionStorage.getItem('bizToken'); |
|
if (token == 'undefined' || !token) { |
|
bizLogin({ appKey: 'Arf7bd4f26', appSecret: 'kb207044c8' }).then(res => { |
|
if(res.status == 200){ |
|
if(res.data.code == 0){ |
|
window.sessionStorage.setItem('bizToken', res.data.data.token); |
|
this.loading = true; |
|
selectPatientPage(res.data.data.token, Object.assign(params, this.query, { page: page.currentPage, size: page.pageSize, buildingIds: this.buildingId })).then(res2 => { |
|
if (res2.data.code == 401) { |
|
window.sessionStorage.removeItem('bizToken'); |
|
this.onLoad(this.page); |
|
} |
|
else if (res2.data.code == 0) { |
|
this.loading = false; |
|
const data = res2.data.data; |
|
this.page.total = data.total; |
|
this.data = data.records; |
|
}else{ |
|
this.loading = false; |
|
this.$message.error('物联网平台访问超时!') |
|
} |
|
}, err => { |
|
this.loading = false; |
|
this.$message.error('物联网平台访问超时!') |
|
}); |
|
}else{ |
|
this.$message.error('物联网平台访问超时!') |
|
} |
|
}else{ |
|
this.$message.error('物联网平台访问超时!') |
|
} |
|
|
|
}) |
|
} |
|
else { |
|
this.loading = true; |
|
selectPatientPage(token, Object.assign(params, this.query, { page: page.currentPage, size: page.pageSize, buildingIds: this.buildingId })).then(res2 => { |
|
// this.loading = true; |
|
if (res2.data.code == 401) { |
|
window.sessionStorage.removeItem('bizToken'); |
|
this.onLoad(this.page); |
|
} |
|
else if (res2.data.code == 0) { |
|
this.loading = false |
|
const data = res2.data.data; |
|
this.page.total = data.total; |
|
this.data = data.records; |
|
}else{ |
|
this.loading = false; |
|
this.$message.error('物联网平台访问超时!') |
|
} |
|
}, err => { |
|
this.$message.error('物联网平台访问超时!') |
|
this.loading = false; |
|
}); |
|
} |
|
}, |
|
} |
|
}; |
|
</script> |
|
|
|
<style lang="scss" scoped> |
|
.el-table { |
|
width: 100% !important; |
|
border: 1px solid #D6D8DF; |
|
} |
|
|
|
.el-table th.el-table__cell { |
|
background: #F7F8FA; |
|
} |
|
</style>
|
|
|