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

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 website from "@/config/website";
import crudCommon from "@/mixins/crud";
import "@/assets/js/rem.js";
// import "@/assets/js/rem.js";
// 业务组件
import tenantPackage from "./views/system/tenantpackage";

@ -4,9 +4,6 @@
</template>
<script>
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';
export default {
@ -45,11 +42,11 @@ export default {
let password = this.$route.query.password;
source = source != 'undefined' ? Base64.decode(Base64.decode(source)) : '';
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.handleLogin();
} else {
// this.$router.push({path: '/login'})
this.$router.push({path: '/login'})
}
},
computed: {

@ -11,6 +11,26 @@ import 'nprogress/nprogress.css' // progress bar style
NProgress.configure({showSpinner: false});
const lockPage = store.getters.website.lockPage; //锁屏页
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 isMenu = meta.menu === undefined ? to.query.menu : meta.menu;
store.commit('SET_IS_MENU', isMenu === undefined);

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

@ -2,10 +2,9 @@
<basic-container>
<avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud"
:permission="permissionList" @search-change="searchChange" @search-reset="searchReset"
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
@refresh-change="refreshChange" @on-load="onLoad">
<template #menu-left="{}">
<el-button type="prmary" icon="el-icon-plus" size="small">新增</el-button>
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
<template slot="menuLeft">
<el-button type="primary" icon="el-icon-plus" size="small" @click="handleAdd">新增</el-button>
</template>
<template #menu="{ row, index, size }">
<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>
</template>
</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>
</template>
@ -23,7 +102,21 @@ import { mapGetters } from "vuex";
export default {
data() {
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: {},
loading: true,
page: {
@ -32,6 +125,7 @@ export default {
total: 0
},
selectionList: [],
selectionList2: [],
option: {
height: 'auto',
calcHeight: 30,
@ -79,7 +173,23 @@ export default {
},
]
},
dialogVisible: false,
deviceType: '1',//
data: [],
//
page1: {
pageSize: 10,
currentPage: 1,
total: 0,
},
tableData: [],
//
page2: {
pageSize: 10,
currentPage: 1,
total: 0,
},
tableData2: [],
nodeType: [],//
};
},
@ -93,98 +203,83 @@ export default {
editBtn: this.vaildData(this.permission.notice_edit, false)
};
},
ids() {
let ids = [];
this.selectionList.forEach(ele => {
ids.push(ele.id);
});
return ids.join(",");
}
},
mounted() {
},
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');
if (token == 'undefined' || !token) {
bizLogin({ appKey: 'Arf7bd4f26', appSecret: 'kb207044c8' }).then(res => {
window.sessionStorage.setItem('bizToken', res.data.data.token);
bizDeviceStatus(res.data.data.token).then(res => {
const column = this.findObject(this.option.column, "status");
column.dicData = res.data.data;
})
bizNodeType(res.data.data.token).then(res => {
const column = this.findObject(this.option.column, "node");
column.dicData = res.data.data;
})
})
} else {
bizDeviceStatus(token).then(res => {
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;
if (this.deviceType == '1') {
bizDeviceList(res.data.data.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(res.data.data.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;
});
}
})
bizNodeType(token).then(res => {
const column = this.findObject(this.option.column, "node");
column.dicData = res.data.data;
})
} else {
if (this.deviceType == '1') {
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) {
const column = this.findObject(this.option.column, col);
let idx = column.dicData.findIndex(item => item.dictValue == node);
return idx > -1 ? column.dicData[idx].dictLabel : '';
//
submitForm() {
this.$refs.form.valid((valid) => {
if(valid) {
}
})
},
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() {
this.query = {};
this.onLoad(this.page);
@ -195,46 +290,13 @@ export default {
this.onLoad(this.page, params);
done();
},
selectionChange(list) {
this.selectionList = list;
},
selectionClear() {
this.selectionList = [];
this.$refs.crud.toggleSelection();
},
// 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;
// });
// }
selectionChange(list, type) {
if (type == '2') {
this.selectionList2 = list;
}
else {
this.selectionList = list;
}
done();
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
@ -246,52 +308,102 @@ export default {
this.onLoad(this.page, this.query);
},
onLoad(page, params = {}) {
let values = {
...params,
...this.query,
pid: 98
};
let token = window.sessionStorage.getItem('bizToken');
if (token == 'undefined' || !token) {
bizLogin({ appKey: 'Arf7bd4f26', appSecret: 'kb207044c8' }).then(res => {
window.sessionStorage.setItem('bizToken', res.data.data.token);
this.loading = true;
bizDeviceList(res.data.data.token, { ...values, pageSize: page.pageSize, pageNo: page.currentPage }).then(res2 => {
const data = res2.data;
this.page.total = data.total;
this.data = data.records;
this.loading = false;
this.selectionClear();
});
})
} else {
this.loading = true;
bizDeviceList(token, { ...values, pageSize: page.pageSize, pageNo: page.currentPage }).then(res2 => {
this.loading = false;
this.selectionClear();
if (res2.data.code == 401) {
console.log(res2.data.code)
window.sessionStorage.removeItem('bizToken');
this.onLoad();
}
else if (res2.data.code == 200) {
const data = res2.data;
this.page.total = data.total;
data.rows.map(item => {
item.node = item.bizProduct.node;
// item.nodeLabel = this.renderLabel(item.node,'node');
// item.statusLabel = this.renderLabel(item.status,'status')
})
this.data = data.rows;
}
}, err => {
this.loading = false;
this.selectionClear();
});
}
}
this.loading = false;
// let values = {
// ...params,
// ...this.query,
// pid: 98
// };
// let token = window.sessionStorage.getItem('bizToken');
// if (token == 'undefined' || !token) {
// bizLogin({ appKey: 'Arf7bd4f26', appSecret: 'kb207044c8' }).then(res => {
// window.sessionStorage.setItem('bizToken', res.data.data.token);
// this.loading = true;
// bizDeviceList(res.data.data.token, { ...values, pageSize: page.pageSize, pageNo: page.currentPage }).then(res2 => {
// const data = res2.data;
// this.page.total = data.total;
// this.data = data.records;
// this.loading = false;
// });
// })
// } else {
// this.loading = true;
// bizDeviceList(token, { ...values, pageSize: page.pageSize, pageNo: page.currentPage }).then(res2 => {
// this.loading = false;
// this.selectionClear();
// if (res2.data.code == 401) {
// console.log(res2.data.code)
// window.sessionStorage.removeItem('bizToken');
// this.onLoad();
// }
// else if (res2.data.code == 200) {
// const data = res2.data;
// this.page.total = data.total;
// data.rows.map(item => {
// item.node = item.bizProduct.node;
// // item.nodeLabel = this.renderLabel(item.node,'node');
// // item.statusLabel = this.renderLabel(item.status,'status')
// })
// this.data = data.rows;
// }
// }, err => {
// this.loading = false;
// });
// }
},
//
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>
<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 => {
window.sessionStorage.setItem('bizToken', res.data.data.token);
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;
this.page.total = data.total;
this.data = data.records;
@ -312,7 +312,7 @@ export default {
})
} else {
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.selectionClear();
if(res2.data.code == 401){

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

Loading…
Cancel
Save