单点登录参数优化;报警点位管理页面

main
xuechunyuan 3 years ago
parent 5363f1b484
commit 39831f0063
  1. 2
      src/main.js
  2. 7
      src/page/login/alogin.vue
  3. 20
      src/permission.js
  4. 4
      src/store/modules/common.js
  5. 448
      src/views/alarmcenter/point/list.vue
  6. 4
      src/views/wirelessintrusion/device/list.vue
  7. 2
      vue.config.js

@ -20,7 +20,7 @@ import flowDesign from "./components/flow-design/main";
import avueUeditor from "avue-plugin-ueditor"; import avueUeditor from "avue-plugin-ueditor";
import website from "@/config/website"; import website from "@/config/website";
import crudCommon from "@/mixins/crud"; import crudCommon from "@/mixins/crud";
import "@/assets/js/rem.js"; // import "@/assets/js/rem.js";
// 业务组件 // 业务组件
import tenantPackage from "./views/system/tenantpackage"; import tenantPackage from "./views/system/tenantpackage";

@ -4,9 +4,6 @@
</template> </template>
<script> <script>
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import { dateFormat } from "@/util/date";
import { validatenull } from "@/util/validate";
import { getQueryString, getTopUrl } from "@/util/util";
import { Base64 } from 'js-base64'; import { Base64 } from 'js-base64';
export default { export default {
@ -45,11 +42,11 @@ export default {
let password = this.$route.query.password; let password = this.$route.query.password;
source = source != 'undefined' ? Base64.decode(Base64.decode(source)) : ''; source = source != 'undefined' ? Base64.decode(Base64.decode(source)) : '';
if (source == 'pt' && name && password) { if (source == 'pt' && name && password) {
this.loginForm.name = Base64.decode(Base64.decode(name)); this.loginForm.username = Base64.decode(Base64.decode(name));
this.loginForm.password = Base64.decode(Base64.decode(password)); this.loginForm.password = Base64.decode(Base64.decode(password));
this.handleLogin(); this.handleLogin();
} else { } else {
// this.$router.push({path: '/login'}) this.$router.push({path: '/login'})
} }
}, },
computed: { computed: {

@ -11,6 +11,26 @@ import 'nprogress/nprogress.css' // progress bar style
NProgress.configure({showSpinner: false}); NProgress.configure({showSpinner: false});
const lockPage = store.getters.website.lockPage; //锁屏页 const lockPage = store.getters.website.lockPage; //锁屏页
router.beforeEach((to, from, next) => { router.beforeEach((to, from, next) => {
if (to.path.indexOf('dispatch') < 0) {
document.documentElement.style.fontSize = '';
} else {
var docEl = document.documentElement,
resizeEvt = "orientationchange" in window ? "orientationchange" : "resize",
recalc = function () {
var clientWidth = docEl.clientWidth;
if (!clientWidth) return;
if (location.href.indexOf("express") > -1) {
docEl.style.fontSize = "";
} else if (clientWidth >= 1920) {
docEl.style.fontSize = "100px"; //1rem = 100px
} else {
docEl.style.fontSize = 100 * (clientWidth / 1920) + "px";
}
};
if (!document.addEventListener) return;
window.addEventListener(resizeEvt, recalc, false);
document.addEventListener("DOMContentLoaded", recalc, false);
}
const meta = to.meta || {}; const meta = to.meta || {};
const isMenu = meta.menu === undefined ? to.query.menu : meta.menu; const isMenu = meta.menu === undefined ? to.query.menu : meta.menu;
store.commit('SET_IS_MENU', isMenu === undefined); store.commit('SET_IS_MENU', isMenu === undefined);

@ -19,8 +19,8 @@ const common = {
showDebug: true, showDebug: true,
showCollapse: true, showCollapse: true,
showSearch: false, showSearch: false,
showLock: true, showLock: false,
showFullScren: true, showFullScren: false,
showTheme: false, showTheme: false,
showMenu: true, showMenu: true,
showColor: false, showColor: false,

@ -2,10 +2,9 @@
<basic-container> <basic-container>
<avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud"
:permission="permissionList" @search-change="searchChange" @search-reset="searchReset" :permission="permissionList" @search-change="searchChange" @search-reset="searchReset"
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange" @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
@refresh-change="refreshChange" @on-load="onLoad"> <template slot="menuLeft">
<template #menu-left="{}"> <el-button type="primary" icon="el-icon-plus" size="small" @click="handleAdd">新增</el-button>
<el-button type="prmary" icon="el-icon-plus" size="small">新增</el-button>
</template> </template>
<template #menu="{ row, index, size }"> <template #menu="{ row, index, size }">
<el-button type="text" :size="size" icon="el-icon-view" @click="$refs.crud.rowEdit(row, index)">详情</el-button> <el-button type="text" :size="size" icon="el-icon-view" @click="$refs.crud.rowEdit(row, index)">详情</el-button>
@ -13,6 +12,86 @@
<el-button type="text" :size="size" icon="el-icon-delete" @click="$refs.crud.rowDel(row, index)">删除</el-button> <el-button type="text" :size="size" icon="el-icon-delete" @click="$refs.crud.rowDel(row, index)">删除</el-button>
</template> </template>
</avue-crud> </avue-crud>
<!-- 关联摄像头/手持终端 -->
<el-dialog title="报警点设置" :visible.sync="dialogVisible" :append-to-body="true" :close-on-click-modal="false"
:close-on-press-escape="false" custom-class="dia_box">
<el-form ref="form" v-model="addForm" label-width="100px" :rules="rules">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="报警点:" prop="warnName">
<el-input v-model="addForm.warnName" placeholder="请输入" :readonly="isDetail ? true : false" maxlength="30">
</el-input>
</el-form-item>
<el-form-item label="经度:" prop="longitude">
<el-input v-model="addForm.longitude" placeholder="请输入" :readonly="isDetail ? true : false" maxlength="30">
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所在区域:" prop="warnAddress">
<el-input v-model="addForm.warnAddress" placeholder="请输入" :readonly="isDetail ? true : false" maxlength="30">
</el-input>
</el-form-item>
<el-form-item label="纬度:" prop="latitude">
<el-input v-model="addForm.latitude" placeholder="请输入" :readonly="isDetail ? true : false" maxlength="30">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-tabs v-model="deviceType" type="card" @tab-click="handleClick">
<el-tab-pane label="摄像头" name="1">
<el-table class="table_box" ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%" height="250px"
@selection-change="(data) => selectionChange(data, '1')" row-key="id" :size="small">
<el-table-column type="selection" width="55" align="center" :reserve-selection="true">
</el-table-column>
<el-table-column prop="name" label="设备名称">
</el-table-column>
<el-table-column prop="imei" label="设备编号">
</el-table-column>
<el-table-column prop="deviceType" label="设备大类">
</el-table-column>
<el-table-column prop="deviceArea" label="所在区域">
</el-table-column>
<el-table-column prop="position" label="安装位置">
</el-table-column>
</el-table>
<div class="page_box">
<el-pagination @size-change="handleSizeChange1" @current-change="handleCurrentChange1"
:current-page="page1.currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="page1.pageSize" background
layout="total, sizes, prev, pager, next, jumper" :total="page1.total">
</el-pagination>
</div>
</el-tab-pane>
<el-tab-pane label="手持终端" name="2">
<el-table class="table_box" ref="multipleTable2" :data="tableData2" tooltip-effect="dark" style="width: 100%;" height="250px"
@selection-change="(data) => selectionChange(data, '2')" row-key="id" :size="small">
<el-table-column type="selection" width="55" align="center" :reserve-selection="true">
</el-table-column>
<el-table-column prop="name" label="设备名称">
</el-table-column>
<el-table-column prop="imei" label="设备编号">
</el-table-column>
<el-table-column prop="deviceType" label="设备大类">
</el-table-column>
<el-table-column prop="deviceArea" label="所在区域">
</el-table-column>
<el-table-column prop="position" label="安装位置">
</el-table-column>
</el-table>
<div class="page_box">
<el-pagination @size-change="handleSizeChange2" @current-change="handleCurrentChange2"
:current-page="page2.currentPage2" :page-sizes="[10, 20, 30, 40]" :page-size="page2.pageSize" background
layout="total, sizes, prev, pager, next, jumper" :total="page2.total">
</el-pagination>
</div>
</el-tab-pane>
</el-tabs>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="submitForm"> </el-button>
</div>
</el-dialog>
</basic-container> </basic-container>
</template> </template>
@ -23,7 +102,21 @@ import { mapGetters } from "vuex";
export default { export default {
data() { data() {
return { return {
form: {}, addForm: {},
rules: {
warnName: [
{ required: true, message: '请输入报警点名称', trigger: 'blur' }
],
warnAddress: [
{ required: true, message: '请输入报警位置', trigger: 'blur' }
],
longitude: [
{ required: true, message: '请输入经度', trigger: 'blur' }
],
latitude: [
{ required: true, message: '请输入纬度', trigger: 'blur' }
]
},
query: {}, query: {},
loading: true, loading: true,
page: { page: {
@ -32,6 +125,7 @@ export default {
total: 0 total: 0
}, },
selectionList: [], selectionList: [],
selectionList2: [],
option: { option: {
height: 'auto', height: 'auto',
calcHeight: 30, calcHeight: 30,
@ -79,7 +173,23 @@ export default {
}, },
] ]
}, },
dialogVisible: false,
deviceType: '1',//
data: [], data: [],
//
page1: {
pageSize: 10,
currentPage: 1,
total: 0,
},
tableData: [],
//
page2: {
pageSize: 10,
currentPage: 1,
total: 0,
},
tableData2: [],
nodeType: [],// nodeType: [],//
}; };
}, },
@ -93,98 +203,83 @@ export default {
editBtn: this.vaildData(this.permission.notice_edit, false) editBtn: this.vaildData(this.permission.notice_edit, false)
}; };
}, },
ids() {
let ids = [];
this.selectionList.forEach(ele => {
ids.push(ele.id);
});
return ids.join(",");
}
}, },
mounted() { mounted() {
}, },
methods: { methods: {
// //
loadDict() { handleAdd() {
this.addForm = {};
this.deviceType = '1';
this.selectionList = [];
this.selectionList2 = [];
this.dialogVisible = true;
this.queryDeviceList();
},
//
handleClick(item) {
this.queryDeviceList();
},
//
queryDeviceList() {
let token = window.sessionStorage.getItem('bizToken'); let token = window.sessionStorage.getItem('bizToken');
if (token == 'undefined' || !token) { if (token == 'undefined' || !token) {
bizLogin({ appKey: 'Arf7bd4f26', appSecret: 'kb207044c8' }).then(res => { bizLogin({ appKey: 'Arf7bd4f26', appSecret: 'kb207044c8' }).then(res => {
window.sessionStorage.setItem('bizToken', res.data.data.token); window.sessionStorage.setItem('bizToken', res.data.data.token);
bizDeviceStatus(res.data.data.token).then(res => { if (this.deviceType == '1') {
const column = this.findObject(this.option.column, "status"); bizDeviceList(res.data.data.token, { pageSize: this.page1.pageSize, pageNum: this.page1.currentPage }).then(res2 => {
column.dicData = res.data.data; const data = res2.data;
}) this.page1.total = data.total;
bizNodeType(res.data.data.token).then(res => { this.tableData = data.rows;
const column = this.findObject(this.option.column, "node"); });
column.dicData = res.data.data; } else {
}) bizDeviceList(res.data.data.token, { pageSize: this.page1.pageSize, pageNum: this.page1.currentPage, pid: 98 }).then(res2 => {
}) const data = res2.data;
} else { this.page2.total = data.total;
bizDeviceStatus(token).then(res => { this.tableData2 = data.rows;
if (res.data.code == 401) { });
window.sessionStorage.removeItem('bizToken');
this.loadDict();
}
else if (res.data.code == 200) {
const column = this.findObject(this.option.column, "status");
column.dicData = res.data.data;
} }
}) })
bizNodeType(token).then(res => { } else {
const column = this.findObject(this.option.column, "node"); if (this.deviceType == '1') {
column.dicData = res.data.data; bizDeviceList(token, { pageSize: this.page1.pageSize, pageNum: this.page1.currentPage }).then(res2 => {
}) const data = res2.data;
this.page1.total = data.total;
this.tableData = data.rows;
});
} else {
bizDeviceList(token, { pageSize: this.page1.pageSize, pageNum: this.page1.currentPage, pid: 98 }).then(res2 => {
const data = res2.data;
this.page2.total = data.total;
this.tableData2 = data.rows;
});
}
} }
}, },
// //
renderLabel(node, col) { submitForm() {
const column = this.findObject(this.option.column, col); this.$refs.form.valid((valid) => {
let idx = column.dicData.findIndex(item => item.dictValue == node); if(valid) {
return idx > -1 ? column.dicData[idx].dictLabel : '';
}
})
},
rowDel(row) {
this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
})
.then(() => {
this.onLoad(this.page);
this.$message({
type: "success",
message: "操作成功!"
});
});
}, },
// rowSave(row, done, loading) {
// add(row).then(() => {
// this.onLoad(this.page);
// this.$message({
// type: "success",
// message: "!"
// });
// done();
// }, error => {
// window.console.log(error);
// loading();
// });
// },
// rowUpdate(row, index, done, loading) {
// update(row).then(() => {
// this.onLoad(this.page);
// this.$message({
// type: "success",
// message: "!"
// });
// done();
// }, error => {
// window.console.log(error);
// loading();
// });
// },
// rowDel(row) {
// this.$confirm("?", {
// confirmButtonText: "",
// cancelButtonText: "",
// type: "warning"
// })
// .then(() => {
// return remove(row.id);
// })
// .then(() => {
// this.onLoad(this.page);
// this.$message({
// type: "success",
// message: "!"
// });
// });
// },
searchReset() { searchReset() {
this.query = {}; this.query = {};
this.onLoad(this.page); this.onLoad(this.page);
@ -195,46 +290,13 @@ export default {
this.onLoad(this.page, params); this.onLoad(this.page, params);
done(); done();
}, },
selectionChange(list) { selectionChange(list, type) {
this.selectionList = list; if (type == '2') {
}, this.selectionList2 = list;
selectionClear() { }
this.selectionList = []; else {
this.$refs.crud.toggleSelection(); this.selectionList = list;
},
// handleDelete() {
// if (this.selectionList.length === 0) {
// this.$message.warning("");
// return;
// }
// this.$confirm("?", {
// confirmButtonText: "",
// cancelButtonText: "",
// type: "warning"
// })
// .then(() => {
// return remove(this.ids);
// })
// .then(() => {
// this.onLoad(this.page);
// this.$message({
// type: "success",
// message: "!"
// });
// this.$refs.crud.toggleSelection();
// });
// },
beforeOpen(done, type) {
console.log(this.form)
if (["edit", "view"].includes(type)) {
// let token = window.sessionStorage.getItem('bizToken');
// if (token == 'undefined') {
// bizDeviceDetail(this.form.id).then(res => {
// this.form = res.data.data;
// });
// }
} }
done();
}, },
currentChange(currentPage) { currentChange(currentPage) {
this.page.currentPage = currentPage; this.page.currentPage = currentPage;
@ -246,52 +308,102 @@ export default {
this.onLoad(this.page, this.query); this.onLoad(this.page, this.query);
}, },
onLoad(page, params = {}) { onLoad(page, params = {}) {
let values = { this.loading = false;
...params, // let values = {
...this.query, // ...params,
pid: 98 // ...this.query,
}; // pid: 98
let token = window.sessionStorage.getItem('bizToken'); // };
if (token == 'undefined' || !token) { // let token = window.sessionStorage.getItem('bizToken');
bizLogin({ appKey: 'Arf7bd4f26', appSecret: 'kb207044c8' }).then(res => { // if (token == 'undefined' || !token) {
window.sessionStorage.setItem('bizToken', res.data.data.token); // bizLogin({ appKey: 'Arf7bd4f26', appSecret: 'kb207044c8' }).then(res => {
this.loading = true; // window.sessionStorage.setItem('bizToken', res.data.data.token);
bizDeviceList(res.data.data.token, { ...values, pageSize: page.pageSize, pageNo: page.currentPage }).then(res2 => { // this.loading = true;
const data = res2.data; // bizDeviceList(res.data.data.token, { ...values, pageSize: page.pageSize, pageNo: page.currentPage }).then(res2 => {
this.page.total = data.total; // const data = res2.data;
this.data = data.records; // this.page.total = data.total;
this.loading = false; // this.data = data.records;
this.selectionClear(); // this.loading = false;
}); // });
}) // })
} else { // } else {
this.loading = true; // this.loading = true;
bizDeviceList(token, { ...values, pageSize: page.pageSize, pageNo: page.currentPage }).then(res2 => { // bizDeviceList(token, { ...values, pageSize: page.pageSize, pageNo: page.currentPage }).then(res2 => {
this.loading = false; // this.loading = false;
this.selectionClear(); // this.selectionClear();
if (res2.data.code == 401) { // if (res2.data.code == 401) {
console.log(res2.data.code) // console.log(res2.data.code)
window.sessionStorage.removeItem('bizToken'); // window.sessionStorage.removeItem('bizToken');
this.onLoad(); // this.onLoad();
} // }
else if (res2.data.code == 200) { // else if (res2.data.code == 200) {
const data = res2.data; // const data = res2.data;
this.page.total = data.total; // this.page.total = data.total;
data.rows.map(item => { // data.rows.map(item => {
item.node = item.bizProduct.node; // item.node = item.bizProduct.node;
// item.nodeLabel = this.renderLabel(item.node,'node'); // // item.nodeLabel = this.renderLabel(item.node,'node');
// item.statusLabel = this.renderLabel(item.status,'status') // // item.statusLabel = this.renderLabel(item.status,'status')
}) // })
this.data = data.rows; // this.data = data.rows;
} // }
}, err => { // }, err => {
this.loading = false; // this.loading = false;
this.selectionClear(); // });
}); // }
} },
} //
handleCurrentChange1(currentPage) {
this.page1.currentPage = currentPage;
this.queryDeviceList();
},
handleSizeChange1(pageSize) {
this.page1.currentPage = 1;
this.page1.pageSize = pageSize;
this.queryDeviceList();
},
//
handleCurrentChange2(currentPage) {
this.page2.currentPage = currentPage;
this.queryDeviceList();
},
handleSizeChange2(pageSize) {
this.page2.currentPage = 1;
this.page2.pageSize = pageSize;
this.queryDeviceList();
},
} }
}; };
</script> </script>
<style></style> <style lang="scss" scoped>
.dia_box {
height: 700px;
overflow: auto;
.el-table {
width: 100% !important;
border: 1px solid #D6D8DF;
}
.el-table th.el-table__cell {
background: #F7F8FA;
}
.dialog-footer {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.page_box {
width: 90%;
margin-left: 9%;
display: flex;
align-items: center;
justify-content: center;
margin-top: 15px;
}
}
</style>

@ -302,7 +302,7 @@ export default {
bizLogin({ appKey: 'Arf7bd4f26', appSecret: 'kb207044c8' }).then(res => { bizLogin({ appKey: 'Arf7bd4f26', appSecret: 'kb207044c8' }).then(res => {
window.sessionStorage.setItem('bizToken', res.data.data.token); window.sessionStorage.setItem('bizToken', res.data.data.token);
this.loading = true; this.loading = true;
bizDeviceList(res.data.data.token, { ...values, pageSize: page.pageSize, pageNo: page.currentPage }).then(res2 => { bizDeviceList(res.data.data.token, { ...values, pageSize: page.pageSize, pageNum: page.currentPage }).then(res2 => {
const data = res2.data; const data = res2.data;
this.page.total = data.total; this.page.total = data.total;
this.data = data.records; this.data = data.records;
@ -312,7 +312,7 @@ export default {
}) })
} else { } else {
this.loading = true; this.loading = true;
bizDeviceList(token, { ...values, pageSize: page.pageSize, pageNo: page.currentPage }).then(res2 => { bizDeviceList(token, { ...values, pageSize: page.pageSize, pageNum: page.currentPage }).then(res2 => {
this.loading = false; this.loading = false;
this.selectionClear(); this.selectionClear();
if(res2.data.code == 401){ if(res2.data.code == 401){

@ -41,7 +41,7 @@ module.exports = {
'/api': { '/api': {
//本地服务接口地址 //本地服务接口地址
// target: 'http://192.168.1.34:8008', // target: 'http://192.168.1.34:8008',
target: 'http://192.168.3.32:8008', target: 'http://192.168.3.32:81',
ws: true, ws: true,
pathRewrite: { pathRewrite: {
'^/api': '/' '^/api': '/'

Loading…
Cancel
Save