From 7cea2db9d57b24d98e42b5207fa6f9a703362e26 Mon Sep 17 00:00:00 2001
From: heyujie <516346543@qq.com>
Date: 星期四, 24 六月 2021 10:29:19 +0800
Subject: [PATCH] 朔黄和系统设置
---
src/api/system.ts | 31 ++++
src/api/user.ts | 7 +
src/pages/systemSettings/index/App.vue | 92 +++++++++----
src/pages/shuohuangMonitorAnalyze/components/leftNav.vue | 2
src/pages/shuohuangMonitorAnalyze/components/videoAnalyze.vue | 96 +++++++------
src/pages/systemSettings/views/NetSettings.vue | 132 +++++++++++++++---
src/pages/shuohuangMonitorAnalyze/components/lkgManage.vue | 2
7 files changed, 261 insertions(+), 101 deletions(-)
diff --git a/src/api/system.ts b/src/api/system.ts
index d5c56cb..868da6c 100644
--- a/src/api/system.ts
+++ b/src/api/system.ts
@@ -135,6 +135,37 @@
});
};
+export const setServerName = (query: any) => {
+ return request({
+ url: "/data/api-v/sysset/setSerName",
+ method: "post",
+ data: qs.stringify(query)
+ });
+};
+
+export const getWireList = (query: any) => {
+ return request({
+ url: "/data/api-v/sysset/getNetWorkCards",
+ method: "get",
+ data: (query)
+ });
+};
+export const setNetWorkCard = (query: any) => {
+ return request({
+ url: "/data/api-v/sysset/setNetWorkCard",
+ method: "post",
+ data: qs.stringify(query)
+ });
+};
+
+export const getNetWorkCardInfo = (query: any) => {
+ return request({
+ url: "/data/api-v/sysset/getNetWorkCardInfo",
+ method: "post",
+ data: qs.stringify(query)
+ });
+};
+
export const deleteDate = (query: any) => {
return request({
url: "/data/api-v/clearData/deleteEsData",
diff --git a/src/api/user.ts b/src/api/user.ts
index 13afcab..58be30b 100644
--- a/src/api/user.ts
+++ b/src/api/user.ts
@@ -64,3 +64,10 @@
});
};
+export const deleteUser = (params: any) => {
+ return request({
+ url: "/data/api-u/users/delUser",
+ method: "post",
+ data: params
+ });
+};
diff --git a/src/pages/shuohuangMonitorAnalyze/components/leftNav.vue b/src/pages/shuohuangMonitorAnalyze/components/leftNav.vue
index afeeec2..e28a759 100644
--- a/src/pages/shuohuangMonitorAnalyze/components/leftNav.vue
+++ b/src/pages/shuohuangMonitorAnalyze/components/leftNav.vue
@@ -40,7 +40,7 @@
</template>
<el-menu-item index="transferMemo">瑙嗛杞偍璁板綍</el-menu-item>
<el-menu-item index="transferDeviceManage">杞偍璁惧绠$悊</el-menu-item>
- <el-menu-item index="lkgManage">LKG鏁版嵁绠$悊</el-menu-item>
+ <el-menu-item index="lkgManage">LKJ鏁版嵁绠$悊</el-menu-item>
</el-submenu>
<el-submenu index="7">
<template slot="title">
diff --git a/src/pages/shuohuangMonitorAnalyze/components/lkgManage.vue b/src/pages/shuohuangMonitorAnalyze/components/lkgManage.vue
index d082523..d0da92f 100644
--- a/src/pages/shuohuangMonitorAnalyze/components/lkgManage.vue
+++ b/src/pages/shuohuangMonitorAnalyze/components/lkgManage.vue
@@ -1,7 +1,7 @@
<template>
<div class="lkg-manage">
<div class="import-btn">
- <label>涓婁紶LKG鏁版嵁鏂囦欢</label>
+ <label>涓婁紶LKJ鏁版嵁鏂囦欢</label>
<el-button
size="mini"
type="primary"
diff --git a/src/pages/shuohuangMonitorAnalyze/components/videoAnalyze.vue b/src/pages/shuohuangMonitorAnalyze/components/videoAnalyze.vue
index 70c1652..538fad8 100644
--- a/src/pages/shuohuangMonitorAnalyze/components/videoAnalyze.vue
+++ b/src/pages/shuohuangMonitorAnalyze/components/videoAnalyze.vue
@@ -17,7 +17,8 @@
v-for="(item, index) in popDownArr"
:key="index"
:command="item"
- >{{ item.CameraPosition }}</el-dropdown-item>
+ >{{ item.CameraPosition }}</el-dropdown-item
+ >
</el-dropdown-menu>
</el-dropdown>
@@ -118,7 +119,11 @@
</template>
<div class="player-control">
<div class="progress-bar">
- <el-tooltip placement="top" v-for="(item, index) in eventMarks" :key="index">
+ <el-tooltip
+ placement="top"
+ v-for="(item, index) in eventMarks"
+ :key="index"
+ >
<div slot="content">
{{ getTimeStr(item.offset) }}
<br />
@@ -132,7 +137,11 @@
@click="dotJump(item.offset)"
></div>
</el-tooltip>
- <el-tooltip placement="top" v-for="(item, index) in labelMarks" :key="index">
+ <el-tooltip
+ placement="top"
+ v-for="(item, index) in labelMarks"
+ :key="index"
+ >
<div slot="content">
{{ getTimeStr(item.offset) }}
<br />
@@ -201,16 +210,21 @@
v-show="isUnusual == 1"
type="primary"
@click="addLabel(curVideo)"
- >娣诲姞鏍囨敞</el-button>
+ >娣诲姞鏍囨敞</el-button
+ >
</div>
<div class="flex-box fixed-height-box">
<label v-if="!showTable">鏍囨敞淇℃伅:</label>
<div class="mark-list" v-if="!showTable">
- <div class="mark" v-for="mark in curVideo.LableLst" :key="mark.ID">
+ <div
+ class="mark"
+ v-for="mark in curVideo.LableLst"
+ :key="mark.ID"
+ >
<div class="time">
<span>
{{ pad0(Math.floor(mark.Time / 60)) }}:{{
- pad0(mark.Time % 60)
+ pad0(mark.Time % 60)
}}
</span>
<i class="el-icon-edit" @click="editCurLabel(mark)"></i>
@@ -269,12 +283,19 @@
<div class="label-check">
<p class="label">闅愭偅闂:</p>
<el-checkbox-group v-model="labelCheckedList">
- <el-checkbox v-for="item in labelOptions" :key="item.ID" :label="item.ID">{{ item.Name }}</el-checkbox>
+ <el-checkbox
+ v-for="item in labelOptions"
+ :key="item.ID"
+ :label="item.ID"
+ >{{ item.Name }}</el-checkbox
+ >
</el-checkbox-group>
</div>
<div class="btns">
<el-button @click="cancelLabelChecked" size="small">鍙栨秷</el-button>
- <el-button @click="submitLabelChecked" size="small" type="primary">纭畾</el-button>
+ <el-button @click="submitLabelChecked" size="small" type="primary"
+ >纭畾</el-button
+ >
</div>
</el-dialog>
</div>
@@ -332,11 +353,11 @@
filters: {
fixPath(str) {
if (!str || str == undefined) {
- return ""
+ return "";
}
- return str.replace("/opt/vasystem", "")
- }
+ return str.replace("/opt/vasystem", "");
+ },
},
data() {
return {
@@ -532,26 +553,6 @@
_this.$nextTick(() => {
_this.$refs[`player_${_this.curVideo.id}`][0].init();
});
- // let _this = this;
- // console.log(cmd)
- // getCarVideos({
- // TrainNumber: cmd.TrainNumber,
- // CarNumber: cmd.CarNumber,
- // Driver1: cmd.Driver1,
- // }).then((res) => {
- // _this.allCurVideos = res.data;
- // _this.curCamera = cmd.CameraPosition;
- // _this.curRoomVideos = _this.allCurVideos.filter((item) => {
- // return item.CameraPosition == cmd.CameraPosition;
- // });
- // _this.curVideo = _this.curRoomVideos.find((item) => {
- // return item.ID == cmd.ID;
- // });
- // _this.$nextTick(() => {
- // _this.$refs[`player_${_this.curVideo.ID}`][0].init();
- // });
- // });
-
},
pad0(val) {
return val < 10 ? "0" + val : val;
@@ -569,7 +570,6 @@
CarNumber: v.CarNumber,
Driver1: v.Driver1,
}).then((res) => {
-
res.data.forEach((item) => {
item.marks = _this.mergeMarks(item);
});
@@ -601,7 +601,8 @@
_this.$nextTick(() => {
_this.$refs[`player_${_this.curVideo.id}`][0].init();
let arr = _this.maxVideoTime.split(":");
- let min = +arr[1], sec = +arr[2];
+ let min = +arr[1],
+ sec = +arr[2];
_this.maxSecond = min * 60 + sec;
});
});
@@ -617,7 +618,7 @@
_this.curCamera = _this.popDownArr[0].CameraPosition;
}
});
- _this.popDownArr
+ _this.popDownArr;
},
renderLabelOpts() {
let _this = this;
@@ -627,7 +628,7 @@
},
refreshCurVideoLabel(video) {
let _this = this;
- _this.popDownArr = []
+ _this.popDownArr = [];
getRelatedVideoInfo({ GroupID: video.GroupID }).then((res) => {
res.data.forEach((item) => {
_this.popDownArr.push(item);
@@ -635,17 +636,22 @@
video.LableLst = item.LableLst;
}
});
- // res.data.forEach((d) => {
- // if (item.ID === video.ID) {
- // video.LableLst = item.LableLst;
- // }
- // });
});
- _this.popDownArr
+ _this.popDownArr;
},
checkVideo(video, index) {
this.refreshCurVideoLabel(video);
this.curVideo = video;
+ this.eventMarks = []
+ this.labelMarks = []
+ video.marks.forEach((item) => {
+ if (item.type == 0) {
+ this.eventMarks.push(item);
+ } else {
+ this.labelMarks.push(item);
+ }
+ })
+
this.videoArrs = this.allCurVideos.filter(
(item) => video.GroupID == item.GroupID
);
@@ -740,10 +746,10 @@
},
removeCurLabel(mark) {
let _this = this;
- debugger
+ debugger;
let obj = {
ID: mark.ID,
- VideoIds: mark.VideoIds
+ VideoIds: mark.VideoIds,
};
delLabel(obj).then((rsp) => {
if (rsp && rsp.success) {
@@ -767,7 +773,7 @@
},
mergeMarks(videoInfo) {
if (!videoInfo.EventLst || !videoInfo.LableLst) {
- console.log("mergeMarks data null")
+ console.log("mergeMarks data null");
return;
}
@@ -906,7 +912,7 @@
height: 8px;
width: 6px;
z-index: 1;
- background-color:yellowgreen ;
+ background-color: yellowgreen;
cursor: pointer;
-webkit-transform: translateX(-50%);
transform: translateX(-50%);
diff --git a/src/pages/systemSettings/index/App.vue b/src/pages/systemSettings/index/App.vue
index c78557c..c477954 100644
--- a/src/pages/systemSettings/index/App.vue
+++ b/src/pages/systemSettings/index/App.vue
@@ -153,28 +153,26 @@
<div class="permission" v-if="inAccountDetail && isSetPermission">
<div class="title">鏉冮檺绠$悊</div>
- <div class="line">
- <div class="name">瀹炴椂鐩戞帶</div>
- <el-switch
- v-model="isRealtime"
- active-color="rgba(61, 104, 225, 1)"
- >
- </el-switch>
+ <div class="line-wrap" v-for="item in sysMenus" :key="item.id">
+ <div class="line">
+ <div class="name">{{ item.name }}</div>
+ <el-switch
+ v-model="item.selected"
+ active-color="rgba(61, 104, 225, 1)"
+ >
+ </el-switch>
+ </div>
+ <div v-if="item.children">
+ <div class="line" style="margin-left:55px;" v-for="x in item.children" :key="x.id">
+ <div class="name">{{ x.name }}</div>
+ <el-switch
+ v-model="x.selected"
+ active-color="rgba(61, 104, 225, 1)"
+ >
+ </el-switch>
+ </div>
+ </div>
</div>
- <div class="line">
- <div class="name">缁熻鏌ヨ</div>
- <el-switch v-model="isCount" active-color="rgba(61, 104, 225, 1)">
- </el-switch>
- </div>
- <div class="line">
- <div class="name">绠楀姏绠$悊</div>
- <el-switch
- v-model="isCalculate"
- active-color="rgba(61, 104, 225, 1)"
- >
- </el-switch>
- </div>
-
<div class="btns">
<div class="cancel" @click="cancelSet">鍙栨秷</div>
<div class="ok">淇濆瓨</div>
@@ -451,6 +449,9 @@
getUsers,
updateUser,
updatePassword,
+ deleteUser,
+ getUserMenus,
+ getSysMenus,
} from "@/api/user";
import switchBar from "../components/switchBar";
import ipInput from "@/components/subComponents/IPInput";
@@ -541,7 +542,8 @@
showYrsInput: false,
showMonthInput: false,
showDayInput: false,
-
+ cameraInfo: false,
+ dependentScene: false,
timestamp: 0,
inAccountDetail: false,
isChangePw: false,
@@ -582,6 +584,7 @@
confirmPassword: "",
},
activeAccountIndex: 0,
+ sysMenus: [],
addForm: {
userName: "",
nickName: "",
@@ -622,6 +625,7 @@
});
this.fetchUserList();
+ this.fetchSysMenus();
},
methods: {
fetchUserList() {
@@ -887,7 +891,6 @@
syncBrowser(val) {
this.isSyncBrowser = val;
if (val == false) {
- console.log(12121);
clearInterval(this.browserTimer);
} else {
this.browserTimer = setInterval(() => {
@@ -899,7 +902,6 @@
}, 1000);
}
},
- openChangePw() {},
showAddAccount() {
this.inAccountDetail = false;
this.isAddAccount = true;
@@ -911,6 +913,14 @@
cancelChangePassword() {
this.isChangePw = false;
this.inAccountDetail = false;
+ },
+ fetchSysMenus() {
+ getSysMenus().then((rsp) => {
+ if (rsp && rsp.success) {
+ this.sysMenus = rsp.data;
+ console.log(this.sysMenus);
+ }
+ });
},
saveAddAccount(formName) {
this.$refs[formName].validate((valid) => {
@@ -982,9 +992,19 @@
cancelButtonText: "鍙栨秷",
})
.then(() => {
- this.$message({
- type: "success",
- message: "鍒犻櫎鎴愬姛!",
+ debugger;
+ deleteUser({
+ ids: [this.activeAccountItem.id],
+ }).then((res) => {
+ if (res.success) {
+ this.fetchUserList();
+ this.$message({
+ type: "success",
+ message: "鍒犻櫎鎴愬姛!",
+ });
+ } else {
+ this.$message.warning("鍒犻櫎澶辫触");
+ }
});
})
.catch(() => {});
@@ -992,9 +1012,25 @@
openPermission() {
this.inAccountDetail = true;
this.isSetPermission = true;
+ getUserMenus({
+ userId: this.activeAccountItem.id,
+ }).then((res) => {
+ if (res && res.success) {
+ res.data.menus.forEach(e => {
+
+ });
+ }
+ });
+
+ // getUserMenus({ userId: row.id }).then(rsp => {
+ // if (rsp && rsp.success) {
+ // this.userMenus = rsp.data.menus.map(menu => {
+ // return menu.id
+ // })
+ // }
+ // })
},
},
-
watch: {
isManual(v) {
this.isNtp = !v;
diff --git a/src/pages/systemSettings/views/NetSettings.vue b/src/pages/systemSettings/views/NetSettings.vue
index 246006a..c82ce15 100644
--- a/src/pages/systemSettings/views/NetSettings.vue
+++ b/src/pages/systemSettings/views/NetSettings.vue
@@ -41,7 +41,7 @@
size="small"
></el-input>
</el-form-item>
- <div class="save-btn">淇濆瓨</div>
+ <div class="save-btn" @click="saveServerName">淇濆瓨</div>
</el-form>
</div>
@@ -240,12 +240,13 @@
<div class="wire" v-if="activePage == 'wire' && !inWireDetail">
<div
+
class="wire-bar"
v-for="(item, i) in wireArr"
:key="i"
- @click="checkWire(item)"
+ @click.self="checkWire(item)"
>
- <div class="name">{{ item.name }}</div>
+ <div class="name">{{ "缃戠粶" + item.index }}</div>
<div class="right">
<span class="icon iconfont"></span>
@@ -260,18 +261,18 @@
</div>
</div>
<div class="wire-detail" v-if="activePage == 'wire' && inWireDetail">
- <div class="title">缃戠粶璁剧疆</div>
+ <div class="title">缃戠粶璁剧疆</div>
<el-form
:model="wireForm"
:rules="wireFormRules"
ref="wireForm"
label-width="150px"
>
- <el-form-item label="缃戠粶鍚嶇О" prop="name">
- <div class="wifi-name">{{ 12123 }}</div>
+ <el-form-item label="缃戠粶鍚嶇О" prop="name">
+ <div class="wifi-name">{{"缃戠粶" + activeWireItem.index }}</div>
</el-form-item>
- <el-form-item label="缃戝崱" prop="name">
- <div class="wifi-name">{{ 12123 }}</div>
+ <el-form-item label="缃戝崱" prop="ifname">
+ <div class="wifi-name">{{ activeWireItem.name }}</div>
</el-form-item>
<el-form-item label="IP" prop="ip">
<ip-input
@@ -288,23 +289,22 @@
<el-form-item label="缃戝叧" prop="gateway">
<ip-input
- :ip="ipv4Form.gateway"
- @on-blur="ipv4Form.gateway = arguments[0]"
+ :ip="wireForm.gateway"
+ @on-blur="wireForm.gateway = arguments[0]"
></ip-input>
</el-form-item>
- <el-form-item label="棣栭�塂NS" prop="dns">
+ <el-form-item label="DNS" prop="dns">
<ip-input
- :ip="ipv4Form.dns1"
- @on-blur="ipv4Form.dns1 = arguments[0]"
- ></ip-input>
- </el-form-item>
- <el-form-item label="澶囩敤DNS" prop="dns">
- <ip-input
- :ip="ipv4Form.dns2"
- @on-blur="ipv4Form.dns2 = arguments[0]"
+ :ip="wireForm.dns"
+ @on-blur="wireForm.dns = arguments[0]"
></ip-input>
</el-form-item>
</el-form>
+
+ <div class="btns">
+ <div class="cancel" @click="cancelSaveWire">鍙栨秷</div>
+ <div class="ok" @click="saveWire">淇濆瓨</div>
+ </div>
</div>
</div>
</div>
@@ -328,6 +328,8 @@
addESNode,
getEsClusterInfo,
} from "@/api/clusterManage";
+import { setServerName, getWireList, setNetWorkCard,getNetWorkCardInfo } from "@/api/system";
+
import cloudNode from "../components/CloudNode";
import ipInput from "@/components/subComponents/IPInput";
import { isIPv4 } from "@/scripts/validate";
@@ -358,18 +360,20 @@
name: "",
password: "",
},
- wireArr: [{ name: "鏈夌嚎缃戠粶1" }, { name: "鏈夌嚎缃戠粶2" }],
+ wireArr: [],
inWifiDetail: false,
wifiList: [{ name: "鏃犵嚎缃戠粶1" }, { name: "鏃犵嚎缃戠粶2" }],
isOpenWifi: false,
inWireDetail: false,
- wireForm:{
-
+ wireForm: {
+ dns:"",
+ subMask:"",
+ gateway:"",
+ ip:"",
},
- wireFormRules:{
-
- },
+ wireFormRules: {},
activePage: "net",
+ activeWireItem: {},
rules: {
deviceName: [
{ required: true, message: "璇疯緭鍏ヨ澶囧悕绉�", trigger: "change" },
@@ -401,8 +405,50 @@
beforeDestroy() {},
props: ["barName"],
methods: {
+ fetchWireList() {
+ getWireList().then((res) => {
+ if (res && res.success) {
+ console.log(res);
+ this.wireArr = res.data;
+ }
+ });
+ },
+ cancelSaveWire() {
+ this.inWireDetail = false;
+ },
+ saveServerName() {
+ setServerName({
+ server_name: this.ruleForm.deviceName,
+ server_port: this.ruleForm.port,
+ }).then((res) => {
+ console.log(res);
+ if (res && res.success) {
+ this.$message.success(res.data);
+ }
+ });
+ },
openRight(typ) {
this.activePage = typ;
+ if (typ == "wire") {
+ this.fetchWireList();
+ }
+ },
+ saveWire(ifname) {
+ debugger
+ let data ={
+ ip: this.wireForm.ip,
+ gateway: this.wireForm.gateway,
+ dns: this.wireForm.dns,
+ subMask: this.wireForm.subMask,
+ ifname: this.activeWireItem.name,
+ }
+ setNetWorkCard(data).then((res) => {
+ if (res&&res.success) {
+ this.$message.success(res.data)
+ }
+ },(err) => {
+ this.$message.error("淇濆瓨澶辫触锛�"+ err.msg)
+ });
},
wifiControl(val) {},
checkWifi() {
@@ -410,6 +456,18 @@
},
checkWire(item) {
this.inWireDetail = true;
+ this.activeWireItem = item;
+ getNetWorkCardInfo({
+ ifname:item.name
+ }).then((res) => {
+ if (res&&res.success) {
+ debugger
+ this.wireForm.ip = res.data.ip
+ this.wireForm.gateway = res.data.gateway
+ this.wireForm.dns = res.data.dns
+ this.wireForm.subMask = res.data.subMask
+ }
+ })
},
},
};
@@ -417,6 +475,27 @@
<style lang="scss">
.all {
width: 100%;
+}
+.wire-detail {
+ .btns {
+ display: flex;
+ justify-content: space-between;
+ .cancel {
+ background-color: rgba(240, 240, 240, 1);
+ height: 40px;
+ line-height: 40px;
+ width: 48%;
+ border-radius: 10px;
+ }
+ .ok {
+ background-color: rgba(61, 104, 225, 1);
+ height: 40px;
+ line-height: 40px;
+ width: 48%;
+ color: #fff;
+ border-radius: 10px;
+ }
+ }
}
.cluster-content {
@@ -432,7 +511,8 @@
overflow: auto;
box-sizing: border-box;
flex-shrink: 0;
- padding: 10px; border-right: 5px solid #f8f8f8;
+ padding: 10px;
+ border-right: 5px solid #f8f8f8;
// background-color: lavender;
.menu-item {
--
Gitblit v1.8.0