From 98a6297b10a4b97c3022f84d3ba7908c178d9ee0 Mon Sep 17 00:00:00 2001 From: hanbaoshan <hanbaoshan@aiotlink.com> Date: 星期二, 20 十月 2020 10:30:10 +0800 Subject: [PATCH] 应用中心安装提示bug修复 --- src/pages/settings/components/BasicSetting.vue | 191 ++++++++++++++++++++++++++++++----------------- 1 files changed, 121 insertions(+), 70 deletions(-) diff --git a/src/pages/settings/components/BasicSetting.vue b/src/pages/settings/components/BasicSetting.vue index 3bab7ee..68ad4e5 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" @@ -76,23 +76,27 @@ <template slot="title"> <b class="tree-font">璇︾粏淇℃伅</b> </template> - <el-menu-item-group class="item-group"> + <el-menu-item-group class="item-group desc-info"> <el-row :gutter="gutter"> <el-col :span="12" class="flex-box"> - <div class="xiangqin-label">ID</div> + <div class="xiangqin-label">璁惧ID</div> <div class="xiangqing-info">{{sysinfo.server_id}}</div> </el-col> - <el-col :span="12" class="flex-box"> + <!-- <el-col :span="12" class="flex-box"> <div class="xiangqin-label">璁惧缂栧彿</div> <div class="xiangqing-info">{{sysinfo.deviceNum}}</div> - </el-col> + </el-col>--> <el-col :span="12" class="flex-box"> <div class="xiangqin-label">璁惧鍨嬪彿</div> - <div class="xiangqing-info">{{sysinfo.deviceType}}</div> + <div class="xiangqing-info">{{sysinfo.deviceModel}}</div> </el-col> <el-col :span="12" class="flex-box"> - <div class="xiangqin-label">璁惧搴忓垪鍙�</div> - <div class="xiangqing-info">{{sysinfo.deviceSerialNum}}</div> + <div class="xiangqin-label">璁惧绫诲瀷</div> + <div class="xiangqing-info">{{sysinfo.deviceDesc}}</div> + </el-col> + <el-col :span="12" class="flex-box"> + <div class="xiangqin-label">閫氶亾涓暟</div> + <div class="xiangqing-info">{{sysinfo.channelCount}}</div> </el-col> <el-col :span="12" class="flex-box"> <div class="xiangqin-label">涓绘帶鐗堟湰</div> @@ -103,12 +107,20 @@ <div class="xiangqing-info">{{sysinfo.webVersion}}</div> </el-col> <el-col :span="12" class="flex-box"> - <div class="xiangqin-label">閫氶亾涓暟</div> - <div class="xiangqing-info">{{sysinfo.channelCount}}</div> + <div class="xiangqin-label">纭洏淇℃伅</div> + <div class="xiangqing-info">{{sysinfo.disks}}</div> </el-col> <el-col :span="12" class="flex-box"> - <div class="xiangqin-label">纭洏涓暟</div> - <div class="xiangqing-info">{{sysinfo.diskCount}}</div> + <div class="xiangqin-label">CPU</div> + <div class="xiangqing-info">{{sysinfo.cpuInfo}}</div> + </el-col> + <el-col :span="12" class="flex-box"> + <div class="xiangqin-label">鍐呭瓨</div> + <div class="xiangqing-info">{{sysinfo.mem}}</div> + </el-col> + <el-col :span="12" class="flex-box"> + <div class="xiangqin-label">杩愯鏃堕棿</div> + <div class="xiangqing-info">{{sysinfo.uptime}}</div> </el-col> </el-row> </el-menu-item-group> @@ -159,24 +171,24 @@ </el-menu-item-group> </el-submenu> <!-- 瀵瑰鏈嶅姟IP 鏀瑰悕涓哄閮ㄧ綉缁�(鏂皌ab)--> - </el-menu> </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> --> {{ equipmentTime }} </el-form-item> - <el-form-item label="鏃跺尯" prop="timezone"> + <!-- <el-form-item label="鏃跺尯" prop="timezone"> <el-select v-model="timezone" placeholder="璇烽�夋嫨" style="width: 360px; height: 32px" size="small" + @change="checkTimeZone" > <el-option v-for="item in timeZoneOption" @@ -185,7 +197,7 @@ :value="item.value" ></el-option> </el-select> - </el-form-item> + </el-form-item>--> <div style="text-align: left;padding: 10px 0px"> <div class="time-type">NTP鏍℃椂</div> <div style="padding: 10px 0px;"> @@ -216,6 +228,7 @@ style="position: absolute; left: 330px;" :disabled="syncType === '2'" @click="testNTP" + :loading="ntpTestLoading" >娴嬭瘯</el-button> </el-form-item> @@ -233,7 +246,6 @@ placeholder="閫夋嫨鏃ユ湡鏃堕棿" size="small" value-format="yyyy-MM-dd HH:mm:ss" - :readonly="settimeRadio" :disabled="syncType === '1'" ></el-date-picker> <el-checkbox @@ -253,10 +265,10 @@ </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"> + <!-- <el-tab-pane label="澶栭儴璁块棶" name="fourth"> <el-menu :default-openeds="openeds" background-color="#fff" @@ -294,29 +306,13 @@ </el-form> </el-menu-item-group> </el-submenu> - <el-submenu index="1"> - <template slot="title"> - <b class="tree-font">澶栭儴璁块棶鍒楄〃</b> - </template> - <el-menu-item-group class="item-group"> - <div> - <el-table :data="ipServer.fileTable" border fit style="width: 100%"> - <el-table-column type="index" label="搴忓彿" align="center" width="50"></el-table-column> - <el-table-column prop="date" label="鍚嶇О" align="center"></el-table-column> - <el-table-column prop="name" label="ID" align="center"></el-table-column> - <el-table-column prop="name" label="IP" align="center"></el-table-column> - <el-table-column prop="name" label="鍦ㄧ嚎鐘舵��" align="center"></el-table-column> - </el-table> - </div> - </el-menu-item-group> - </el-submenu> </el-menu> + </el-tab-pane>--> + <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="user"> - <authority-management v-if="activeName === 'user'"></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> @@ -342,6 +338,7 @@ import ClusterManagement from "./ClusterManagement"; import AuthorityManagement from "./AuthorityManagement"; import RadioSet from "./RadioSet"; +import config from '../../../../package.json' export default { name: "BasicSettings", @@ -360,7 +357,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 +382,7 @@ loading: true, loadingText: "", gutter: 10, - activeName: "first", + activeName: "sysInfo", timezone: "", syncType: "1", ntpServer: "", @@ -461,29 +469,6 @@ ip: "", localhost: "", localFilePort: "", - fileTable: [ - { - date: '2016-05-02', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�', - edit: false - }, { - date: '2016-05-04', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�', - edit: false - }, { - date: '2016-05-01', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�', - edit: false - }, { - date: '2016-05-03', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�', - edit: false - } - ] }, locationCity: { province: '', @@ -493,8 +478,23 @@ cityOptions: [], countyOptions: [] }, + webPort: 0, + ntpTestLoading: false, + buttonAuthority: sessionStorage.getItem("buttonAuthoritys") || [], }; - webPort: 0; + }, + 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(() => { @@ -502,6 +502,8 @@ // this.initAlarmConf(); this.initResourceConfig(); this.initClockConf(); + //this.markStartTime(); + }); }, beforeDestroy() { @@ -509,6 +511,9 @@ clearInterval(this.browserTimer); }, methods: { + isShow(authority) { + return this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1 + }, initSysinfo() { this.loadingText = "姝e湪鑾峰彇璁惧淇℃伅..."; getDevInfo().then(rsp => { @@ -522,11 +527,23 @@ this.alarmConf.min_video_len = rsp.data.min_video_len; this.alarmConf.max_video_len = rsp.data.max_video_len; + if (this.sysinfo.deviceInfo) { + let devInfo = this.sysinfo.deviceInfo; + + this.sysinfo.cpuInfo = devInfo.cpu[0].modelName; + this.sysinfo.disks = "( " + devInfo.disk + ") "; + this.sysinfo.mem = (devInfo.mem.total / 1024 / 1024 / 1024).toFixed(2) + "GB"; + // this.sysinfo.arch = devInfo.host.kernelArch; + this.sysinfo.uptime = this.secondsFormat(devInfo.host.uptime); + } + if (!this.sysinfo.server_port) { this.sysinfo.server_port = 7003; } this.webPort = this.sysinfo.server_port; + + this.sysinfo.webVersion = config.version; } this.loading = false; @@ -534,11 +551,20 @@ this.loading = false; }); }, - initClockConf() { + secondsFormat(s) { + var day = Math.floor(s / (24 * 3600)); // Math.floor()鍚戜笅鍙栨暣 + var hour = Math.floor((s - day * 24 * 3600) / 3600); + var minute = Math.floor((s - day * 24 * 3600 - hour * 3600) / 60); + var second = s - day * 24 * 3600 - hour * 3600 - minute * 60; + return day + "澶�" + hour + "鏃�" + minute + "鍒�" + second + "绉�"; + }, + initClockConf(ntpTest = false) { getClockInfo().then(rsp => { if (rsp && rsp.success) { this.timezone = rsp.data.time_zone; - this.syncType = rsp.data.ntp ? "1" : "2"; + if (!ntpTest) { + this.syncType = rsp.data.ntp ? "1" : "2"; + } if (rsp.data.ntp) { this.ntpServer = rsp.data.ntp_server; this.timeInterval = rsp.data.interval; @@ -583,6 +609,10 @@ this.settime = this.formatTime(timestamp, 'Y-M-D h:m:s') }, 1000) } + }, + markStartTime() { + let timestamp = new Date().getTime() / 1000; + this.settime = this.formatTime(timestamp, 'Y-M-D h:m:s') }, submitSysinfo() { this.$refs["sysinfo"].validate(valid => { @@ -653,6 +683,10 @@ } }); }, + checkTimeZone(val) { + debugger; + + }, submitClock() { if (this.syncType === '1') { if (this.ntpServer === "") { @@ -687,9 +721,12 @@ message: "璁剧疆鎴愬姛" }); } + + this.initClockConf(); }) }, testNTP() { + this.ntpTestLoading = true; testNTPserver({ server: this.ntpServer }).then(rsp => { if (rsp && rsp.success) { this.$notify({ @@ -702,11 +739,15 @@ message: "鏃堕棿鍚屾澶辫触" }); } + this.ntpTestLoading = false; + this.initClockConf(true); + }).catch(err => { this.$notify({ type: "error", message: "鏃堕棿鍚屾澶辫触,璇锋鏌ユ湇鍔″櫒ip" }); + this.ntpTestLoading = false; }) }, submitAlarm() { @@ -821,8 +862,8 @@ // margin-left: -80px; .el-form-item { text-align: left; - &.is-required:not(.is-no-asterisk)>.el-form-item__label:before{ - margin-left:-8px; + &.is-required:not(.is-no-asterisk) > .el-form-item__label:before { + margin-left: -8px; } .el-button { float: right; @@ -971,6 +1012,16 @@ width: 300px; } } +.desc-info { + margin-bottom: 14px; + .flex-box { + height: 40px; + line-height: 40px; + .xiangqin-label { + width: 80px; + } + } +} .menu-css, .el-menu { border-right: none; -- Gitblit v1.8.0