From a2ebd9a92a375b0b6898d532d3fee782b5fd8f49 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@iotlink.com>
Date: 星期四, 15 十月 2020 19:22:57 +0800
Subject: [PATCH] 修复权限设置
---
src/pages/labelTrack/index/App.vue | 215 +++++++++++++++++
src/pages/desktop/index/App.vue | 37 ++
src/components/LeftNav.vue | 47 ++-
src/pages/ai/index/App.vue | 162 ++++++------
src/pages/vindicate/index/App.vue | 30 +-
src/pages/index/App.vue | 46 ++-
src/pages/labelTrack/index/api.ts | 20 +
package.json | 2
src/components/fTemplate.vue | 4
src/pages/settings/components/BasicSetting.vue | 48 +++
src/pages/cameraAccess/index/VideoManage.vue | 38 +--
src/pages/labelTrack/index/main.ts | 13 +
src/pages/analysisPower/index/App.vue | 25 +
13 files changed, 516 insertions(+), 171 deletions(-)
diff --git a/package.json b/package.json
index a95446e..719d2f9 100644
--- a/package.json
+++ b/package.json
@@ -84,4 +84,4 @@
"keywords": [],
"author": "",
"license": "ISC"
-}
+}
\ No newline at end of file
diff --git a/src/components/LeftNav.vue b/src/components/LeftNav.vue
index 86e0a7c..1fb7a61 100644
--- a/src/components/LeftNav.vue
+++ b/src/components/LeftNav.vue
@@ -151,9 +151,12 @@
</el-submenu>
</el-menu>
</el-tab-pane>
- <el-tab-pane label="闆嗙兢" name="cluster" :style="`height:${height - 56}px;`" v-if="showCluster">
-
- </el-tab-pane>
+ <el-tab-pane
+ label="闆嗙兢"
+ name="cluster"
+ :style="`height:${height - 56}px;`"
+ v-if="showCluster"
+ ></el-tab-pane>
<el-tab-pane
label="鏁版嵁鏍�"
name="dataStack"
@@ -290,13 +293,32 @@
return true;
},
showCam() {
- return this.appName === "Camera" || this.appName === "Search";
+ debugger
+ return this.appName === "Camera" || (this.appName === "Search" && this.buttonAuthority.indexOf("search:camera") >= 0);
},
showCluster() {
- return this.appName === "Cluster"
+ return this.appName === "Cluster";
},
+ // 鏁版嵁鏍堥厤缃繀椤绘樉绀恒�� 妫�绱㈤�氳繃鏉冮檺鎺у埗鏄剧ず, 鏈畨瑁呮暟鎹爤涔熶笉鏄剧ず
showDataStack() {
- return this.appName === "DataStack" || this.appName === "Search";
+ if (this.appName === "DataStack") {
+ return true;
+ }
+
+ if (this.appName === "Search") {
+ // 鏈畨瑁呮暟鎹爤閰嶇疆
+ if (this.installedApps.indexOf("dataStack") >= 0) {
+ if (this.isAdmin) {
+ return true;
+ }
+
+ if (this.buttonAuthority.indexOf("search:stack") >= 0) {
+ return true;
+ }
+ }
+ }
+
+ return false;
},
showLock() {
return this.edit;
@@ -329,6 +351,7 @@
dataStack: "videoMonitor:dataStack",
activeIndexVideo: "",
buttonAuthority: sessionStorage.getItem("buttonAuthoritys") || [],
+ installedApps: sessionStorage.getItem("apps") || [],
loginName: JSON.parse(sessionStorage.getItem("userInfo")).username || "鐢ㄦ埛鍚�",
searchTypeOptions: [
{
@@ -565,11 +588,11 @@
promiseArr.push(createCamera(camera));
}
let _this = this;
- Promise.allSettled(promiseArr).then(res=>{
- res.forEach(item=>{
- if(item.status === 'fulfilled'){
+ Promise.allSettled(promiseArr).then(res => {
+ res.forEach(item => {
+ if (item.status === 'fulfilled') {
succeed++;
- }else{
+ } else {
failed++;
}
});
@@ -579,10 +602,10 @@
message: "鎿嶄綔瀹屾垚, 瀵煎叆鎴愬姛:" + succeed + "涓� 澶辫触:" + failed + "涓�"
})
_this.TreeDataPool.fetchTreeData();
- }).catch(e=>{
+ }).catch(e => {
console.log(e)
});
-
+
}
} catch (e) {
this.menuLoading = false
diff --git a/src/components/fTemplate.vue b/src/components/fTemplate.vue
index f095c00..6d0e485 100644
--- a/src/components/fTemplate.vue
+++ b/src/components/fTemplate.vue
@@ -29,7 +29,7 @@
}
},
computed: {
- isAdmin () {
+ isAdmin() {
if (
sessionStorage.getItem('userInfo') &&
sessionStorage.getItem('userInfo') !== ''
@@ -41,7 +41,7 @@
}
return false
},
- isShow () {
+ isShow() {
if (this.isAdmin) {
return true
} else if (
diff --git a/src/pages/ai/index/App.vue b/src/pages/ai/index/App.vue
index ba070c3..653f3cc 100644
--- a/src/pages/ai/index/App.vue
+++ b/src/pages/ai/index/App.vue
@@ -8,7 +8,7 @@
</div>
</div>
<!-- 瓒呯骇绠$悊鍛樺彲瑙� -->
- <div class="super" v-if="isSuperUser">
+ <div class="super">
<div class="left-box">
<!-- <div class="title">
<label>绠楁硶搴�</label>
@@ -206,7 +206,7 @@
<el-tab-pane
label="绂荤嚎鍗囩骇/瀹夎"
name="upgradeOrInstallation"
- v-show="activeName==='upgradeOrInstallation'"
+ v-if="isShow('algorithmManage:insOffLine')"
>
<div class="tab-content">
<div class="action-bar">
@@ -222,7 +222,7 @@
</div>
</div>
</el-tab-pane>
- <el-tab-pane label="搴旂敤涓績" name="algorithmMall" v-show="activeName==='algorithmMall'">
+ <el-tab-pane label="搴旂敤涓績" name="algorithmMall" v-if=" isShow('algorithmManage:buy')">
<div class="tab-content">
<p class="src-title">绠楁硶杞欢</p>
<div class="store-list flex-list">
@@ -442,29 +442,40 @@
FileUploader
},
computed: {
- notInstalledList () {
+ notInstalledList() {
return this.TaskMange.list1.filter(sdk => {
return sdk.installed === false;
});
},
- installedList () {
+ installedList() {
return this.TaskMange.list1.filter(sdk => {
return sdk.installed === true;
});
},
- ungradeList () {
+ ungradeList() {
// 鍗囩骇澶勭悊浼氬鑷撮噸澶嶇殑key,闇�瑕佷慨鏀�
return [];
return this.TaskMange.list1.filter(sdk => {
return sdk.isUpgrade === true;
});
},
+ isAdmin() {
+ if (
+ sessionStorage.getItem("userInfo") &&
+ sessionStorage.getItem("userInfo") !== ""
+ ) {
+ let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username;
+ return loginName === "superadmin" || loginName === "basic";
+ }
+ return false;
+ },
},
- data () {
+ data() {
return {
TaskMange: new TaskManage,
VideoManageData: new VideoManageData,
+ buttonAuthority: sessionStorage.getItem("buttonAuthoritys") || [],
activeName: "myAlgorithm",
patchUpdateStatus: "",
dragging: false,
@@ -554,7 +565,7 @@
},
watch: {
list2: {
- handler (newVal, oldVal) {
+ handler(newVal, oldVal) {
// window.console.log(newVal, oldVal, '鐩戝惉list2')
if (newVal !== oldVal) {
// window.console.log(newVal, '鐩戝惉list2')
@@ -575,13 +586,12 @@
}
}
},
- mounted () {
+ mounted() {
this.getAllApps();
this.findAllSdk();
this.findByType();
this.getBaseList();
this.findAll();
- this.getUser();
this.getUnActivedList();
this.getUnActivedAppList();
// this.TaskMange.findAllSdk();
@@ -589,7 +599,10 @@
this.VideoManageData.init();
},
methods: {
- offlineInstall () {
+ isShow(authority) {
+ return this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1
+ },
+ offlineInstall() {
this.installDialogVisible = false;
this.isInstall = true;
//瀹夎
@@ -617,7 +630,7 @@
});
})
},
- downloadApp (app) {
+ downloadApp(app) {
app.installLoading = true;
let _this = this;
installApp({ path: app.id }).then(res => {
@@ -632,7 +645,7 @@
}
})
},
- getAllApps () {
+ getAllApps() {
let _this = this;
_this.installedApps = [];
_this.storeApps = [];
@@ -654,7 +667,7 @@
})
},
//鍗歌浇搴旂敤
- unLoad (app) {
+ unLoad(app) {
app.unloadLoading = true;
let _this = this;
removeApp({ appId: app.id }).then(res => {
@@ -678,7 +691,7 @@
// this.activeCode = '';
// this.activedSdkOrApp = this.newActInfo()
// },
- actSdkOrApp (id, type = 'sdk') {
+ actSdkOrApp(id, type = 'sdk') {
this.actType = type;
this.actId = id;
this.actDrawerShow = true;
@@ -686,7 +699,7 @@
this.activeCode = '';
this.activedSdkOrApp = this.newActInfo()
},
- newActInfo () {
+ newActInfo() {
return {
activateCode: '',
productName: '',
@@ -696,7 +709,7 @@
devIds: ''
}
},
- getUnActivedList () {
+ getUnActivedList() {
getUnActivedSdk().then(res => {
if (res.code == 200) {
this.unActivedSDKList = res.data;
@@ -704,7 +717,7 @@
})
},
- getUnActivedAppList () {
+ getUnActivedAppList() {
getUnActivedApp().then(res => {
if (res.code == 200) {
this.unActivedAppList = res.data;
@@ -712,10 +725,10 @@
});
},
- installFormat (percentage) {
+ installFormat(percentage) {
return percentage === 100 ? '瀹夎鎴愬姛' : `${percentage}%`;
},
- actived () {
+ actived() {
let _this = this;
if (this.actType == 'sdk') {
//婵�娲荤畻娉�
@@ -753,12 +766,12 @@
});
}
},
- getCodeDetail () { },
- checkMyAlgorith () {
+ getCodeDetail() { },
+ checkMyAlgorith() {
this.actDrawerShow = false;
this.activeName = "myAlgorithm";
},
- onFileUpload (file) {
+ onFileUpload(file) {
//this.patchUpdateStatus = `<span style="color:green">涓婁紶鎴愬姛, 鐐瑰嚮鍗囩骇鎸夐挳寮�濮嬪畨瑁�</span>`;
this.patchFile = { ...file };
this.fileAdded = true;
@@ -870,12 +883,12 @@
},
- onFileAdded (f) {
+ onFileAdded(f) {
;
this.patchUpdateStatus = "";
},
// 鏍¢獙杈撳叆鐨勬槸鍚︽槸鏁板瓧
- valiNum (value) {
+ valiNum(value) {
if (value) {
let re = /[^\-?\d.]*$/;
if (!re.test(value)) {
@@ -892,7 +905,7 @@
}
},
// 宸﹁竟鎷栧姩妯″潡寰楁嫋鍔ㄧ粨鏉熷悗鐨勮Е鍙戝嚱鏁�
- endLeft (env) {
+ endLeft(env) {
this.dragging = false;
let taskId = env.to.id;
let sdkId = this.TaskMange.list1[env.oldIndex].id;
@@ -933,24 +946,24 @@
this.addTaskSdk(json);
},
// 鍙宠竟鎷栧姩妯″潡寮�濮嬫嫋鍔ㄨЕ鍙戝嚱鏁�
- startRight (env) {
+ startRight(env) {
this.$nextTick(() => {
this.dragging = true;
});
// window.window.console.log(env, "right start");
},
// 鍙宠竟鎷栧姩妯″潡鎷栧姩缁撴潫瑙﹀彂鍑芥暟
- endRight (env) {
+ endRight(env) {
// window.window.console.log(env, "right end");
},
- clickSet (data) {
+ clickSet(data) {
if (data.isSetting) {
data.isSetting = false;
} else {
data.isSetting = true;
}
},
- clickDel (data, Index) {
+ clickDel(data, Index) {
this.$confirm("鎻愮ず锛氬垹闄ゅ悗锛屾浠诲姟鍦ㄦ憚鍍忔満涓殑搴旂敤澶辨晥锛屾槸鍚﹀垹闄わ紵", {
center: true,
showConfirmButton: true,
@@ -963,7 +976,7 @@
})
.catch(err => { });
},
- clickSetAlgo (row, data) {
+ clickSetAlgo(row, data) {
// window.console.log(row, data, "缂栬緫浠诲姟涓煇涓�涓畻娉�");
if (row.isShowSetAlgo && data.id === this.TaskMange.currentAlgoId) {
row.isShowSetAlgo = false;
@@ -1029,7 +1042,7 @@
// });
}
},
- async getRulesByTaskSdk (taskId, sdkId) {
+ async getRulesByTaskSdk(taskId, sdkId) {
let res = await getRulesByTaskSdk({
taskId: taskId,
sdkId: sdkId
@@ -1065,7 +1078,7 @@
this.argsList = JSON.parse(JSON.stringify(this.TaskMange.argsList));
}
},
- async findAllSdk () {
+ async findAllSdk() {
let res = await findAllSdk();
if (res && res.success) {
this.TaskMange.list1 = res.data.map((i, index) => {
@@ -1082,7 +1095,7 @@
});
}
},
- addTask () {
+ addTask() {
let obj = {
id: "",
name: "浠诲姟" + this.TaskMange.list2.length,
@@ -1098,7 +1111,7 @@
taskArea.scrollTop = taskArea.scrollHeight;
});
},
- async findAll () {
+ async findAll() {
let res = await findAll();
if (res && res.success) {
if (res.data && res.data.length !== 0) {
@@ -1135,7 +1148,7 @@
}
}
},
- clickDelSdk (task, sdk) {
+ clickDelSdk(task, sdk) {
this.$confirm(
"鎻愮ず锛氬垹闄ゅ悗锛屾绠楁硶鍦ㄦ湰浠诲姟涓Щ闄わ紝鍚屾椂鍦ㄦ憚鍍忔満涓殑搴旂敤澶辨晥锛屾槸鍚﹀垹闄わ紵",
{
@@ -1151,7 +1164,7 @@
})
.catch(err => { });
},
- selectChange (event, type, data) {
+ selectChange(event, type, data) {
if (type === "options1") {
// window.window.console.log(type, data, "閫夋嫨涓嬫媺妗�");
data.options1.map(i => {
@@ -1162,7 +1175,7 @@
}
},
// 鍒犻櫎浠诲姟绠楁硶
- async delTaskSdk (task, sdk) {
+ async delTaskSdk(task, sdk) {
let json = {
taskId: task.id,
sdkId: sdk.id
@@ -1182,7 +1195,7 @@
}
},
// 鍒犻櫎浠诲姟
- async deleteTask (data, index) {
+ async deleteTask(data, index) {
// window.console.log(data, "deleteTask");
let res = await deleteTask({ taskId: data.id });
// this.$toast({
@@ -1199,7 +1212,7 @@
}
},
// 鏇存柊浠诲姟鐘舵��
- async updateTaskStatus (data) {
+ async updateTaskStatus(data) {
// window.console.log(data, '鏇存柊浠诲姟鐘舵��')
let json = {
taskId: data.id,
@@ -1217,7 +1230,7 @@
});
},
// 鏇存柊浠诲姟鍚嶇О
- async updateTaskName (data) {
+ async updateTaskName(data) {
let json = {
taskId: data.id,
taskName: data.name
@@ -1237,7 +1250,7 @@
}
},
// 鑾峰彇搴曞簱鏁版嵁
- async getBaseList () {
+ async getBaseList() {
// let res = await getTagList();
// if (res && res.success) {
// let filter = res.data.filter(i => {
@@ -1266,7 +1279,7 @@
];
},
// 鑾峰彇绠楁硶鍙傛暟
- async getSdkArgs (data) {
+ async getSdkArgs(data) {
let res = await getSdkArgs({
sdkId: data.id,
scope: "TASKRULE"
@@ -1288,7 +1301,7 @@
}
},
// 鏌ヨ瀛楀吀
- async findByType () {
+ async findByType() {
let res = await findByType();
if (res && res.success) {
let list = res.data.RULECOMPUTEBETWEEN.map(i => {
@@ -1301,17 +1314,17 @@
}
},
// 绠楁硶閰嶇疆锛屾柊寤�
- add () {
+ add() {
this.TaskMange.argsList.push(
JSON.parse(JSON.stringify(this.TaskMange.baseObject))
);
},
// 绠楁硶閰嶇疆 鍒犻櫎
- delRule (index) {
+ delRule(index) {
this.TaskMange.argsList.splice(index, 1);
},
// 绠楁硶鍙傛暟淇濆瓨
- async save () {
+ async save() {
let list = this.TaskMange.argsList.map(i => {
let obj = {};
obj.id = i.id;
@@ -1344,7 +1357,7 @@
}
}
},
- getDefault () {
+ getDefault() {
this.deleteTaskSdkRule(
this.TaskMange.currentTaskId,
this.TaskMange.currentAlgoId
@@ -1355,7 +1368,7 @@
);
});
},
- async deleteTaskSdkRule (taskId, sdkId) {
+ async deleteTaskSdkRule(taskId, sdkId) {
let json = {
taskId: taskId,
sdkId: sdkId
@@ -1375,7 +1388,7 @@
}
},
// 缁欎换鍔℃坊鍔犵畻娉�
- async addTaskSdk (data) {
+ async addTaskSdk(data) {
let res = await addTaskSdk(data);
if (res && res.success) {
// window.console.log(res, 'res')
@@ -1383,7 +1396,7 @@
}
},
// 鏂版坊鍔犱换鍔�
- async addTaskAsync (name) {
+ async addTaskAsync(name) {
let res = await addTask({ taskname: name });
// this.$toast({
// type: res.success ? "success" : "error",
@@ -1399,7 +1412,7 @@
this.findAll();
}
},
- cancle (row) {
+ cancle(row) {
if (row.isShowSetAlgo) {
row.isShowSetAlgo = false;
}
@@ -1409,12 +1422,12 @@
this.$set(i, "isSelect", false);
});
},
- cancleTask (row) {
+ cancleTask(row) {
if (row.isSetting) {
row.isSetting = false;
}
},
- commandAlgo (command, row, item) {
+ commandAlgo(command, row, item) {
if (command === 1) {
// console.log('璁剧疆绠楁硶')
this.clickSetAlgo(row, item);
@@ -1424,26 +1437,13 @@
this.clickDelSdk(row, item);
}
},
- commandTask (command, row) {
+ commandTask(command, row) {
if (command === 1) {
//缂栬緫浠诲姟
this.clickSet(row);
}
},
- getUser () {
- // console.log("鐧诲綍鐢ㄦ埛",JSON.parse(sessionStorage.getItem("userInfo")).username)
- if (
- sessionStorage.getItem("userInfo") &&
- (JSON.parse(sessionStorage.getItem("userInfo")).username ==
- "superadmin" ||
- JSON.parse(sessionStorage.getItem("userInfo")).username == "basic")
- ) {
- this.isSuperUser = true;
- } else {
- this.isSuperUser = false;
- }
- },
- donwload (item) {
+ donwload(item) {
this.downloading = true;
this.downloadItem = item.id;
@@ -1467,15 +1467,15 @@
this.downloadItem = "";
});
},
- commandAlgLib (item) {
+ commandAlgLib(item) {
this.$set(item, "isEdit", true);
},
- inputBlur (item) {
+ inputBlur(item) {
// console.log(item, '淇敼鍚嶇О')
this.$set(item, "isEdit", false);
},
- cleanTemplateForm () {
+ cleanTemplateForm() {
this.appSceneForm.name = "";
this.appSceneForm.desc = "";
this.appSceneForm.rules = "";
@@ -1483,10 +1483,10 @@
this.$refs.ruleEditor.cleanRule();
},
- handleTabClick () {
+ handleTabClick() {
},
- handleCreateScene () {
+ handleCreateScene() {
this.sceneDialogVisible = true;
this.dialogTitle = '鍒涘缓鍦烘櫙妯℃澘';
@@ -1499,10 +1499,10 @@
this.cleanTemplateForm();
});
},
- handleDialogClose () {
+ handleDialogClose() {
this.sceneDialogVisible = false;
},
- handleEditScene (item) {
+ handleEditScene(item) {
this.appSceneForm.name = item.name;
this.appSceneForm.desc = item.desc;
@@ -1594,7 +1594,7 @@
.src-title {
//color: #bfbfbf;
color: #bbcee8;
- font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC';
+ font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC";
font-weight: 650;
font-style: normal;
height: 36px;
@@ -1619,7 +1619,7 @@
position: absolute;
top: 50%;
left: 50%;
- background: url('/images/algo/green.gif');
+ background: url("/images/algo/green.gif");
overflow: hidden;
transform: translate(-50%, -50%);
.inner-bar {
@@ -1941,16 +1941,16 @@
}
}
.drawer-content {
- font-family: 'PingFangSC-Regular';
+ font-family: "PingFangSC-Regular";
.el-step__title.is-process {
border-color: #3d68e1 !important;
color: #3d68e1 !important;
- font-family: Tahoma, Helvetica, Arial, '\5B8B\4F53', sans-serif;
+ font-family: Tahoma, Helvetica, Arial, "\5B8B\4F53", sans-serif;
}
.el-step__head.is-process {
border-color: #3d68e1 !important;
color: #3d68e1 !important;
- font-family: Tahoma, Helvetica, Arial, '\5B8B\4F53', sans-serif;
+ font-family: Tahoma, Helvetica, Arial, "\5B8B\4F53", sans-serif;
}
.el-input {
width: 100%;
diff --git a/src/pages/analysisPower/index/App.vue b/src/pages/analysisPower/index/App.vue
index 688f357..a915dd9 100644
--- a/src/pages/analysisPower/index/App.vue
+++ b/src/pages/analysisPower/index/App.vue
@@ -50,7 +50,13 @@
</div>
<span :class="stretchStyle" @click="strethTable = !strethTable"></span>
- <el-button size="small" type="primary" style="float:right" @click="openDrawer">璁剧疆</el-button>
+ <el-button
+ size="small"
+ type="primary"
+ style="float:right"
+ @click="openDrawer"
+ v-if="showSetting"
+ >璁剧疆</el-button>
</div>
<el-table
@@ -235,6 +241,20 @@
}
return ret
+ },
+ isAdmin() {
+ if (
+ sessionStorage.getItem("userInfo") &&
+ sessionStorage.getItem("userInfo") !== ""
+ ) {
+ let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username;
+ return loginName === "superadmin" || loginName === "basic";
+ }
+
+ return false;
+ },
+ showSetting() {
+ return this.isAdmin || this.buttonAuthority.indexOf("analysisPower:set") > -1
}
},
data() {
@@ -249,7 +269,8 @@
showSysInfo: false,
drawer: false,
formData: {},
- strethTable: false
+ strethTable: false,
+ buttonAuthority: sessionStorage.getItem("buttonAuthoritys") || [],
};
},
mounted() {
diff --git a/src/pages/cameraAccess/index/VideoManage.vue b/src/pages/cameraAccess/index/VideoManage.vue
index 5e2ba7e..58bb47f 100644
--- a/src/pages/cameraAccess/index/VideoManage.vue
+++ b/src/pages/cameraAccess/index/VideoManage.vue
@@ -10,21 +10,21 @@
<el-tab-pane
:label="firstLabeName"
name="camera-info"
- v-if="this.TreeDataPool.treeActiveName == 'camera' && isShow('VIDEOCAMERA:camera:info')"
+ v-if="this.TreeDataPool.treeActiveName == 'camera' && isShow('cameraAccess:cameraInfo')"
>
<camera-info ref="cameraInfo" />
</el-tab-pane>
<el-tab-pane
:label="firstLabeName"
name="camera-info"
- v-if="this.TreeDataPool.treeActiveName == 'dataStack' && isShow('VIDEOCAMERA:dataStack:stackInfo')"
+ v-if="this.TreeDataPool.treeActiveName == 'dataStack' && isShow('dataStack:cameraInfo')"
>
<data-stack-info ref="dataStackInfo" />
</el-tab-pane>
<el-tab-pane
label="鐙珛鍦烘櫙"
name="separate-rule"
- v-if="this.TreeDataPool.treeActiveName == 'camera' && isShow('VIDEOCAMERA:camera:selfRule')"
+ v-if="this.TreeDataPool.treeActiveName == 'camera' && isShow('cameraAccess:selfRule')"
>
<separate-rules ref="sepRule" />
<!-- <local-separate ref="localSeparate" v-else></local-separate> -->
@@ -32,7 +32,7 @@
<el-tab-pane
label="鐙珛鍦烘櫙"
name="separate-rule"
- v-if="this.TreeDataPool.treeActiveName == 'dataStack' && isShow('VIDEOCAMERA:dataStack:selfRule')"
+ v-if="this.TreeDataPool.treeActiveName == 'dataStack' && isShow('dataStack:selfRule')"
>
<separate-rules ref="sepRule" />
<!-- <local-separate ref="localSeparate" v-else></local-separate> -->
@@ -40,7 +40,7 @@
<el-tab-pane
label="鑱斿姩鍦烘櫙"
name="linkage-rule"
- v-if="(isShow('VIDEOCAMERA:camera:linkRule') || isShow('VIDEOCAMERA:dataStack:linkRule')) && this.TreeDataPool.treeActiveName == 'camera'"
+ v-if="(isShow('cameraAccess:linkRule')) && this.TreeDataPool.treeActiveName == 'camera'"
>
<linkage-rule ref="linkRule" />
</el-tab-pane>
@@ -81,6 +81,7 @@
let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username;
return loginName === "superadmin" || loginName === "basic";
}
+
return false;
},
firstLabeName() {
@@ -131,26 +132,21 @@
},
created() {
if (this.TreeDataPool.treeActiveName == 'camera') {
- if (this.isShow('VIDEOCAMERA:camera:info')) {
+ if (this.isShow('cameraAccess:cameraInfo')) {
this.activeName = "camera-info"
- } else if (this.isShow('VIDEOCAMERA:camera:selfRule') || this.isShow('VIDEOCAMERA:datastack:selfRule')) {
+ } else if (this.isShow('cameraAccess:selfRule')) {
this.activeName = "separate-rule"
- } else if (this.isShow('VIDEOCAMERA:camera:linkRule') || this.isShow('VIDEOCAMERA:datastack:linkRule')) {
+ } else if (this.isShow('cameraAccess:linkRule')) {
this.activeName = "linkage-rule"
- } else if (this.isShow('VIDEOCAMERA:camera:resourceCalc') || this.isShow('VIDEOCAMERA:datastack:resourceCalc')) {
- this.activeName = "poll-setting"
}
} else {
- if (this.isShow('VIDEOCAMERA:camera:info')) {
+ if (this.isShow('dataStack:cameraInfo')) {
this.activeName = "camera-info"
- } else if (this.isShow('VIDEOCAMERA:camera:selfRule') || this.isShow('VIDEOCAMERA:datastack:selfRule')) {
+ } else if (this.isShow('dataStack:selfRule')) {
this.activeName = "separate-rule"
- } else if (this.isShow('VIDEOCAMERA:camera:linkRule') || this.isShow('VIDEOCAMERA:datastack:linkRule')) {
- this.activeName = "linkage-rule"
- } else if (this.isShow('VIDEOCAMERA:camera:resourceCalc') || this.isShow('VIDEOCAMERA:datastack:resourceCalc')) {
- this.activeName = "poll-setting"
}
}
+
this.TreeDataPool.readonly = true;
this.TreeDataPool.gbReadonly = true;
this.TreeDataPool.multiple = false;
@@ -181,15 +177,7 @@
},
methods: {
isShow(authority) {
- if (this.isAdmin) {
- return true;
- } else if (this.buttonAuthority.indexOf("," + authority + ",") > -1) {
- return true;
- } else if ("videoCamera:pollSetting" === authority) {
- return true;
- } else {
- return false;
- }
+ return this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1
},
handAddDevice(node) {
let _this = this;
diff --git a/src/pages/desktop/index/App.vue b/src/pages/desktop/index/App.vue
index 29c1394..b90ac81 100644
--- a/src/pages/desktop/index/App.vue
+++ b/src/pages/desktop/index/App.vue
@@ -25,7 +25,25 @@
components: {
Desktop, NotificationCenter, NoticeTip, Tools, ToolsEntry
},
-
+ data() {
+ return {
+ buttonAuthority: sessionStorage.getItem('buttonAuthoritys') || []
+ }
+ },
+ computed: {
+ isAdmin() {
+ if (
+ sessionStorage.getItem('userInfo') &&
+ sessionStorage.getItem('userInfo') !== ''
+ ) {
+ let loginName = JSON.parse(sessionStorage.getItem('userInfo')).username
+ return (
+ loginName === 'superadmin' || loginName === 'basic'
+ )
+ }
+ return false
+ }
+ },
mounted() {
document.getElementById('app').style.backgroundImage = process.env.VUE_APP_MAIN_URL;
this.showApps();
@@ -58,9 +76,6 @@
this.showApps();
}
});
- findAllSdk().then(() => {
-
- });
},
methods: {
showApps() {
@@ -69,6 +84,7 @@
getApps().then(rsp => {
if (rsp && rsp.success) {
_that.$store.state.desktop.docks = [];
+ let installedApps = [];
rsp.data.forEach(function (item) {
if (item.installed) {
let temp = {
@@ -93,13 +109,16 @@
isDefault: item.isDefault
}
- _that.$store.commit('desktop/addDock', temp);
- // console.log(item)
- // console.log('apps update')
- //console.log(this.$store.state.desktop.docks)
- }
+ // 鍒ゆ柇鏉冮檺
+ if (_that.isAdmin || _that.buttonAuthority.indexOf(item.package) >= 0) {
+ _that.$store.commit('desktop/addDock', temp);
+ }
+ installedApps.push(item.package);
+ }
});
+
+ sessionStorage.setItem("apps", installedApps.join(","));
}
})
},
diff --git a/src/pages/index/App.vue b/src/pages/index/App.vue
index a3b5f16..11e0516 100644
--- a/src/pages/index/App.vue
+++ b/src/pages/index/App.vue
@@ -54,6 +54,7 @@
import { tologin, getLoginUserData, getServerName } from './api.ts'
import ParticleNetwork from './ParticleNetwork'
import Licence from '@/components/licence'
+import { getMenuListData, findButtonAuthoritys, findInArr } from "@/api/utils";
export default {
name: 'login-pgae',
@@ -83,6 +84,17 @@
currentHeight: 1057,
currentWidth: 1920
}),
+ created() {
+ this.getServerName()
+ this.getScreenHeight()
+ },
+ mounted() {
+ console.log(this.serverTitle)
+ },
+ watch: {},
+ beforeDestroy() {
+ window.onresize = null
+ },
methods: {
systemLogin() {
this.nullRule = this.rules
@@ -138,8 +150,9 @@
type: 'success',
message: '鐧诲綍鎴愬姛锛�'
})
- // await this.getMenuList()
- // this.$router.push('/Layout/Video')
+
+ // 鑾峰彇鏉冮檺
+ await this.getMenuList()
location.assign("/view/desktop/")
return json
} else {
@@ -174,18 +187,25 @@
sessionStorage.setItem('title', res.data.serverName)
}
},
+ async getMenuList() {
+ let results = await getMenuListData({});
+ if (results && results.success) {
+ /* 瀛樺偍鏉冮檺 */
+ let buttonAuthoritys = results.data;
+ // console.log(this.$route.query.is_loginsss)
+ if (results && results.length && this.$route.query.is_login) {
+ this.$router.replace(results[0].url);
+ }
+ sessionStorage.setItem("buttonAuthoritys", "," + buttonAuthoritys + ",");
+ sessionStorage.setItem("menuInfo", JSON.stringify(results));
+ } else {
+ this.$toast({
+ type: "error",
+ message: "鑿滃崟鑾峰彇澶辫触"
+ });
+ }
+ },
},
- created() {
- this.getServerName()
- this.getScreenHeight()
- },
- mounted(){
- console.log(this.serverTitle)
- },
- watch: {},
- beforeDestroy() {
- window.onresize = null
- }
}
</script>
<style lang="scss">
diff --git a/src/pages/labelTrack/index/App.vue b/src/pages/labelTrack/index/App.vue
new file mode 100644
index 0000000..8741eac
--- /dev/null
+++ b/src/pages/labelTrack/index/App.vue
@@ -0,0 +1,215 @@
+<template>
+ <div class="mycanvas-container">
+ <div class="left">
+ <p>灞曠ず瑙嗗彛</p>
+ <div class="myshow">
+ <img :src="mysrc" alt width="100%" />
+ <!-- <div id="canvas" style="width:100%;height:100%" class="mycanvas"></div> -->
+ </div>
+ </div>
+ <div class="center">
+ <p>鎿嶄綔瑙嗗彛</p>
+ <div
+ class="myedit"
+ ref="myedit"
+ @mousedown.prevent="onMousedown"
+ @mousemove="onMousemove"
+ @contextmenu.prevent
+ >
+ <!-- <img src="@/assets/jia.svg" alt=""> -->
+ <img :src="mysrc" />
+ <span
+ class="myedit-span"
+ v-for="(item, index) in mydata"
+ :key="index"
+ :style="getSpanStyle(item)"
+ @contextmenu.prevent="onContextmenu(item, $event)"
+ ></span>
+ <!-- <div id="canvas" style="width:100%;height:100%" class="mycanvas"></div> -->
+ </div>
+ </div>
+ <div class="right">
+ <img src alt class="mybutton" />
+ <input v-show="0" ref="file" type="file" class="mybutton" @change="onChange" />
+ <button class="mybutton" @click="selectFile">瀵煎叆鍥剧墖</button>
+ <button class="mybutton">鏂板鏍囨敞</button>
+ <button class="mybutton">淇敼鏍囨敞</button>
+ <button class="mybutton">鍒犻櫎</button>
+ <button class="mybutton">淇濆瓨</button>
+ </div>
+ <div class="myMenu" v-show="mymenu.current" :style="mymenu.style">
+ <!-- <button @click="onRemoveItem">鍒犻櫎</button> -->
+ <ui-button type="primary" @click="onRemoveItem">鍒犻櫎</ui-button>
+ <ui-select></ui-select>
+ <select name id>
+ <option value="1">ceshi</option>
+ </select>
+ </div>
+ </div>
+</template>
+
+<script>
+export default {
+ data() {
+ return {
+ mysrc: "",
+ mydata: [],
+ mymenu: { current: null, style: { left: 0, top: 0 } }
+ };
+ },
+ mounted() {
+ document.addEventListener('mouseup', this.onMouseup)
+ },
+ beforeDestroy() {
+ document.removeEventListener('mouseup', this.onMouseup)
+ },
+ methods: {
+ getXY(e) {
+ let rect = this.$refs.myedit.getBoundingClientRect()
+ return {
+ x: e.clientX - rect.left,
+ y: e.clientY - rect.top
+ }
+ },
+ // 涓婁紶鍥剧墖1
+ onChange(e) {
+ this.mysrc = window.URL.createObjectURL(e.target.files[0]);
+ e.target.value = ''
+ },
+ // 涓婁紶鍥剧墖2,
+ selectFile() {
+ this.$refs.file.click();
+ },
+ onMousedown(e) {
+ this.mymenu.current = null
+ let { x, y } = this.getXY(e)
+ this.currentItem = { x, y, w: 0, h: 0, now: Date.now() }
+ this.startPos = { x, y }
+ this.mydata.push(this.currentItem)
+ },
+ onMousemove(e) {
+ if (!this.currentItem) return;
+ let { x, y } = this.getXY(e)
+ this.currentItem.w = Math.abs(x - this.startPos.x)
+ this.currentItem.h = Math.abs(y - this.startPos.y)
+ },
+ onMouseup(e) {
+ this.currentItem = this.startPos = null;
+ this.mydata = this.mydata.filter(_ => _.w > 10 && _.h > 10)
+ },
+ onContextmenu(item, e) {
+ this.mymenu = {
+ current: item,
+ style: {
+ top: e.clientY + 'px',
+ left: e.clientX + 'px'
+ }
+ }
+ },
+ onRemoveItem() {
+ this.mydata.splice(this.mydata.indexOf(this.mymenu.current), 1)
+ this.mymenu = { ...this.mymenu, current: null }
+ },
+ getSpanStyle(item) {
+ return {
+ width: `${item.w}px`,
+ height: `${item.h}px`,
+ top: `${item.y}px`,
+ left: `${item.x}px`
+ };
+ }
+ }
+};
+</script>
+<style lang="less" scoped>
+// 璁剧疆缁樺浘鏍峰紡1
+body {
+ user-select: none;
+}
+
+.myMenu {
+ position: fixed;
+ top: 400px;
+ left: 400px;
+ width: 100px;
+ padding: 8px 0;
+ background-color: #fff;
+ > * {
+ width: 100%;
+ }
+}
+
+#canvas > div {
+ /* border: 2px solid green; */
+ position: absolute;
+ background-color: transparent;
+}
+
+#canvas > div > span {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ font-family: simsun;
+ font-size: 9pt;
+}
+
+// 璁剧疆缁樺浘鏍峰紡2
+
+.mycanvas-container {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+
+ .left,
+ .center,
+ .right {
+ width: 300px;
+ // height: 520px;
+ margin: 20px;
+
+ p {
+ text-align: center;
+ }
+
+ .myshow,
+ .myedit {
+ width: 300px;
+ // height: 500px;
+ border: 1px solid #000;
+ position: relative;
+ .myedit-span {
+ position: absolute;
+ border: 1px dashed #fff;
+ background: url("/images/cameraAccess/video.png") no-repeat center
+ center;
+ background-size: contain;
+ }
+
+ .mycanvas {
+ border: 1px solid pink;
+ position: absolute;
+ top: 0;
+ left: 0;
+ }
+
+ img {
+ width: 100%;
+ }
+ }
+ }
+
+ .right {
+ width: 150px;
+ display: flex;
+ justify-content: center;
+ align-items: left;
+ flex-direction: column;
+
+ .mybutton {
+ margin-top: 20px;
+ display: block;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/src/pages/labelTrack/index/api.ts b/src/pages/labelTrack/index/api.ts
new file mode 100644
index 0000000..05fb010
--- /dev/null
+++ b/src/pages/labelTrack/index/api.ts
@@ -0,0 +1,20 @@
+import request from '@/scripts/httpRequest'
+import qs from 'qs'
+
+// Post
+export const tologin = (query: any) => {
+ return request({
+ url: '/data/api-u/sys/login',
+ method: 'post',
+ data: qs.stringify(query)
+ })
+}
+
+// get
+export const testDBCompare = (query: any) => {
+ return request({
+ url: '../../data/api-v/face/testEachCompareAll',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/src/pages/labelTrack/index/main.ts b/src/pages/labelTrack/index/main.ts
new file mode 100644
index 0000000..72eb673
--- /dev/null
+++ b/src/pages/labelTrack/index/main.ts
@@ -0,0 +1,13 @@
+import Vue from 'vue';
+import App from './App.vue'
+
+import ElementUI from 'element-ui';
+import 'element-ui/lib/theme-chalk/index.css';
+import "@/assets/css/element-variables.scss";
+
+Vue.use(ElementUI);
+
+new Vue({
+ el: '#app',
+ render: h => h(App)
+});
diff --git a/src/pages/settings/components/BasicSetting.vue b/src/pages/settings/components/BasicSetting.vue
index 437cf00..3c05bf4 100644
--- a/src/pages/settings/components/BasicSetting.vue
+++ b/src/pages/settings/components/BasicSetting.vue
@@ -8,7 +8,7 @@
type="border-card"
>
<!-- 鏈満淇℃伅 -->
- <el-tab-pane label="鏈満淇℃伅" name="first">
+ <el-tab-pane label="鏈満淇℃伅" name="sysInfo" v-if="isShow('settings:sysInfo')">
<el-menu
:default-openeds="openeds"
background-color="#fff"
@@ -179,7 +179,7 @@
</el-tab-pane>
<!-- 鏃堕棿閰嶇疆 -->
- <el-tab-pane label="鏃堕棿閰嶇疆" name="second">
+ <el-tab-pane label="鏃堕棿閰嶇疆" name="timeSet" v-if="isShow('settings:timeSet')">
<el-form label-width="100px">
<el-form-item label="璁惧鏃堕棿">
<!-- <el-input v-model="equipmentTime" placeholder="璇疯緭鍏�" size="small"></el-input> -->
@@ -269,7 +269,7 @@
</el-tab-pane>
<!-- 闆嗙兢绠$悊 -->
- <el-tab-pane label="闆嗙兢绠$悊" name="third">
+ <el-tab-pane label="闆嗙兢绠$悊" name="cluster" v-if="isShow('settings:cluster')">
<cluster-management></cluster-management>
</el-tab-pane>
<!-- <el-tab-pane label="澶栭儴璁块棶" name="fourth">
@@ -312,11 +312,11 @@
</el-submenu>
</el-menu>
</el-tab-pane>-->
- <el-tab-pane label="鏉冮檺绠$悊" name="user">
- <authority-management v-if="activeName === 'user'"></authority-management>
+ <el-tab-pane label="鏉冮檺绠$悊" name="permission" v-if="isShow('settings:permission')">
+ <authority-management v-if="activeName === 'permission'"></authority-management>
</el-tab-pane>
- <el-tab-pane label="骞挎挱璁剧疆" name="radio">
- <radio-set v-if="activeName === 'radio'"></radio-set>
+ <el-tab-pane label="骞挎挱璁剧疆" name="broadcast" v-if="isShow('settings:broadcast')">
+ <radio-set v-if="activeName === 'broadcast'"></radio-set>
</el-tab-pane>
</el-tabs>
</div>
@@ -360,7 +360,18 @@
}))
})
return options
- }
+ },
+ isAdmin() {
+ if (
+ sessionStorage.getItem("userInfo") &&
+ sessionStorage.getItem("userInfo") !== ""
+ ) {
+ let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username;
+ return loginName === "superadmin" || loginName === "basic";
+ }
+
+ return false;
+ },
},
directives: {
focus: {
@@ -374,7 +385,7 @@
loading: true,
loadingText: "",
gutter: 10,
- activeName: "first",
+ activeName: "sysInfo",
timezone: "",
syncType: "1",
ntpServer: "",
@@ -471,8 +482,22 @@
countyOptions: []
},
webPort: 0,
- ntpTestLoading: false
+ ntpTestLoading: false,
+ buttonAuthority: sessionStorage.getItem("buttonAuthoritys") || [],
};
+ },
+ created() {
+ if (this.isShow("settings:sysInfo")) {
+ this.activeName = "sysInfo";
+ } else if (this.isShow("settings:timeSet")) {
+ this.activeName = "timeSet";
+ } else if (this.isShow("settings:cluster")) {
+ this.activeName = "cluster";
+ } else if (this.isShow("settings:permission")) {
+ this.activeName = "permission";
+ } else if (this.isShow("settings:broadcast")) {
+ this.activeName = "broadcast";
+ }
},
mounted() {
this.$nextTick(() => {
@@ -489,6 +514,9 @@
clearInterval(this.browserTimer);
},
methods: {
+ isShow(authority) {
+ return this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1
+ },
initSysinfo() {
this.loadingText = "姝e湪鑾峰彇璁惧淇℃伅...";
getDevInfo().then(rsp => {
diff --git a/src/pages/vindicate/index/App.vue b/src/pages/vindicate/index/App.vue
index e41e502..7f0e417 100644
--- a/src/pages/vindicate/index/App.vue
+++ b/src/pages/vindicate/index/App.vue
@@ -1,13 +1,12 @@
<template>
<div class="s-system-manage">
<el-tabs
-
id="systemMaintenance"
v-model="activeName"
v-loading="loading"
:element-loading-text="loadingText"
>
- <el-tab-pane label="璁惧缁存姢" name="first">
+ <el-tab-pane label="璁惧缁存姢" name="device" v-if="isShow('vindicate:device')">
<div class="s-system-maintenance">
<div class="box-card">
<div class="ui-top-view">
@@ -123,7 +122,7 @@
</div>
</div>
</el-tab-pane>
- <el-tab-pane label="鏁版嵁搴撶淮鎶�" name="second">
+ <el-tab-pane label="鏁版嵁搴撶淮鎶�" name="dbvdc" v-if="isShow('vindicate:db')">
<div class="box">
<p class="title">
<label>鏁版嵁娓呯悊</label>
@@ -172,7 +171,7 @@
timer: null,
buttonAuthority: sessionStorage.getItem("buttonAuthoritys") || [],
rebootCron: "",
- activeName: "first",
+ activeName: "device",
restartValue: "涓嶉噸鍚�",
restartTimeValue: new Date(2019, 9, 10, 18, 40),
loading: false,
@@ -193,14 +192,13 @@
},
},
upgrading: false,
- fileAdded: false
+ fileAdded: false,
};
},
mounted() {
this.getRebootCron()
- if (!this.isShow('videoSystem:sysManage:sysfix')) {
- console.log("榛樿鏄剧ず鏁版嵁搴撶淮鎶�")
- this.activeName = "second"
+ if (!this.isShow('vindicate:device')) {
+ this.activeName = "dbvdc"
}
},
computed: {
@@ -485,15 +483,15 @@
width: 100%;
height: 100%;
.el-button--primary {
- color: #FFFFFF;
- background-color: #3D68E1;
- border-color: #3D68E1;
+ color: #ffffff;
+ background-color: #3d68e1;
+ border-color: #3d68e1;
}
- .el-button--primary.is-disabled,
- .el-button--primary.is-disabled:hover,
- .el-button--primary.is-disabled:focus,
- .el-button--primary.is-disabled:active{
- color: #FFFFFF;
+ .el-button--primary.is-disabled,
+ .el-button--primary.is-disabled:hover,
+ .el-button--primary.is-disabled:focus,
+ .el-button--primary.is-disabled:active {
+ color: #ffffff;
background-color: #9eb4f0;
border-color: #9eb4f0;
}
--
Gitblit v1.8.0