| | |
| | | <template> |
| | | <div id="app" class='el-science-blue'> |
| | | <div id="app" class="el-science-blue" :class="getClass"> |
| | | <router-view ref="routerView"></router-view> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | let link; |
| | | export default { |
| | | name: 'App', |
| | | data() { |
| | | let link; |
| | | export default { |
| | | name: "App", |
| | | data() { |
| | | return { |
| | | fullScreen: false, |
| | | }; |
| | | }, |
| | | watch: { |
| | | "$store.state.ukey.connect"(isConnet) { |
| | | this.$store.dispatch("ukey/checkIsIn", isConnet); |
| | | }, |
| | | "$store.state.ukey.isIn"(isIn) { |
| | | this.$store.dispatch("ukey/changeId", isIn); |
| | | }, |
| | | "$store.state.theme.activeSkin"(val) { |
| | | if (val == "science-blue") { |
| | | link.href = "./theme/science-blue.css"; |
| | | } else if (val == "science-green") { |
| | | link.href = "./theme/science-green.css"; |
| | | } else if (val == "science-black") { |
| | | link.href = "./theme/science-black.css"; |
| | | } |
| | | let iframes = this.$refs.routerView.$el.getElementsByTagName("iframe"); |
| | | for (let i = 0; i < iframes.length; i++) { |
| | | iframes[i].contentDocument.getElementById("theme").href = link.href; |
| | | } |
| | | }, |
| | | }, |
| | | mounted() { |
| | | // 启动ukey监控 |
| | | this.$store.dispatch("ukey/load", true); |
| | | require("./assets/css/m-elementui.css"); |
| | | this.appenCss(); |
| | | require("./assets/css/basic.css"); |
| | | require("./assets/css/common.css"); |
| | | }, |
| | | methods: { |
| | | appenCss() { |
| | | link = document.createElement("link"); |
| | | link.type = "text/css"; |
| | | link.id = "theme"; |
| | | link.rel = "stylesheet"; |
| | | if (this.$store.state.theme.activeSkin == "science-blue") { |
| | | link.href = "./theme/science-blue.css"; |
| | | } else if (this.$store.state.theme.activeSkin == "science-green") { |
| | | link.href = "./theme/science-green.css"; |
| | | } else if (this.$store.state.theme.activeSkin == "science-black") { |
| | | link.href = "./theme/science-black.css"; |
| | | } |
| | | document.getElementsByTagName("head")[0].appendChild(link); |
| | | }, |
| | | }, |
| | | computed: { |
| | | getClass() { |
| | | return { |
| | | fullScreen: false, |
| | | } |
| | | "no-bg": this.$route.path == "/home" ? false : true, |
| | | }; |
| | | }, |
| | | watch: { |
| | | "$store.state.ukey.connect"(isConnet) { |
| | | this.$store.dispatch("ukey/checkIsIn", isConnet); |
| | | }, |
| | | "$store.state.ukey.isIn"(isIn) { |
| | | this.$store.dispatch('ukey/changeId', isIn); |
| | | }, |
| | | "$store.state.theme.activeSkin"(val) { |
| | | if (val == 'science-blue') { |
| | | link.href = './theme/science-blue.css'; |
| | | } else if (val == 'science-green') { |
| | | link.href = './theme/science-green.css'; |
| | | } else if (val == 'science-black') { |
| | | link.href = './theme/science-black.css'; |
| | | } |
| | | let iframes = this.$refs.routerView.$el.getElementsByTagName("iframe"); |
| | | for (let i = 0; i < iframes.length; i++) { |
| | | iframes[i].contentDocument.getElementById("theme").href = link.href; |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | // 启动ukey监控 |
| | | this.$store.dispatch('ukey/load', true); |
| | | require('./assets/css/m-elementui.css'); |
| | | this.appenCss(); |
| | | require('./assets/css/basic.css'); |
| | | require('./assets/css/common.css'); |
| | | }, |
| | | methods: { |
| | | appenCss() { |
| | | link = document.createElement('link'); |
| | | link.type = 'text/css'; |
| | | link.id = "theme"; |
| | | link.rel = 'stylesheet'; |
| | | if (this.$store.state.theme.activeSkin == 'science-blue') { |
| | | link.href = './theme/science-blue.css'; |
| | | } else if (this.$store.state.theme.activeSkin == 'science-green') { |
| | | link.href = './theme/science-green.css'; |
| | | } else if (this.$store.state.theme.activeSkin == 'science-black') { |
| | | link.href = './theme/science-black.css'; |
| | | } |
| | | document.getElementsByTagName("head")[0].appendChild(link); |
| | | }, |
| | | } |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | | #app { |
| | | box-sizing: border-box; |
| | | height: 100vh; |
| | | } |
| | | </style> |
| | | #app { |
| | | box-sizing: border-box; |
| | | height: 100vh; |
| | | } |
| | | #app.no-bg { |
| | | background-image: none; |
| | | } |
| | | </style> |
| | |
| | | level: 1, |
| | | childrens: [ |
| | | { |
| | | label: "告警派单管理", |
| | | name: "alarmDispatch", |
| | | src: "#/alarmDispatch", |
| | | closable: true, |
| | | id: 4012, |
| | | menuId: 4, |
| | | enableduse: true, |
| | | ord: 12, |
| | | level: 2, |
| | | }, |
| | | { |
| | | label: "电源实时告警", |
| | | name: "powerRealtimeInfo", |
| | | src: "#/powerRealtimeInfo", |
| | |
| | | ord: 11, |
| | | level: 2, |
| | | } |
| | | // 最大ord=11 |
| | | // 最大ord=12 |
| | | ] |
| | | }, |
| | | { |
| | |
| | | <template> |
| | | <div |
| | | class="flex-layout" :class=getRootClass :style="getRootStyle" |
| | | v-loading="loading" |
| | | element-loading-text="拼命加载中" |
| | | element-loading-spinner="el-icon-loading" |
| | | element-loading-background="rgba(0, 0, 0, 0.2)"> |
| | | <div class="flex-layout-header"> |
| | | <slot name="header"></slot> |
| | | </div> |
| | | <div class="flex-layout-body" :class="{'no-bg': noBg}"> |
| | | <slot></slot> |
| | | </div> |
| | | <div class="flex-layout-footer"> |
| | | <slot name="footer"></slot> |
| | | </div> |
| | | <div |
| | | class="flex-layout" |
| | | :class="getRootClass" |
| | | :style="getRootStyle" |
| | | v-loading="loading" |
| | | element-loading-text="拼命加载中" |
| | | element-loading-spinner="el-icon-loading" |
| | | element-loading-background="rgba(0, 0, 0, 0.2)" |
| | | > |
| | | <div class="flex-layout-header"> |
| | | <slot name="header"></slot> |
| | | </div> |
| | | <div class="flex-layout-body" :class="{ 'no-bg': noBg }"> |
| | | <slot></slot> |
| | | </div> |
| | | <div class="flex-layout-footer"> |
| | | <slot name="footer"></slot> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | props: { |
| | | direction: { |
| | | type: String, |
| | | default: '', |
| | | }, |
| | | height: { |
| | | type: String, |
| | | default: "100%", |
| | | }, |
| | | noBg: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | loading: { |
| | | type: Boolean, |
| | | default: false, |
| | | } |
| | | props: { |
| | | direction: { |
| | | type: String, |
| | | default: "", |
| | | }, |
| | | computed: { |
| | | getRootClass: function() { |
| | | return { |
| | | 'direction-row': this.direction == 'row'?true: false |
| | | }; |
| | | }, |
| | | getRootStyle: function() { |
| | | return { |
| | | 'height': this.height, |
| | | } |
| | | }, |
| | | } |
| | | } |
| | | height: { |
| | | type: String, |
| | | default: "100%", |
| | | }, |
| | | noBg: { |
| | | type: Boolean, |
| | | default: false, |
| | | }, |
| | | loading: { |
| | | type: Boolean, |
| | | default: false, |
| | | }, |
| | | }, |
| | | computed: { |
| | | getRootClass: function() { |
| | | return { |
| | | "direction-row": this.direction == "row" ? true : false, |
| | | }; |
| | | }, |
| | | getRootStyle: function() { |
| | | return { |
| | | height: this.height, |
| | | }; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .flex-layout { |
| | | display: flex; |
| | | flex-direction: column; |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | height: 100%; |
| | | } |
| | | .flex-layout.direction-row { |
| | | flex-direction: row; |
| | | flex-direction: row; |
| | | } |
| | | .flex-layout.full-ht { |
| | | height: 100%; |
| | | height: 100%; |
| | | } |
| | | |
| | | .flex-layout-body { |
| | | flex: 1; |
| | | overflow-x: hidden; |
| | | overflow-y: auto; |
| | | flex: 1; |
| | | overflow-x: hidden; |
| | | overflow-y: auto; |
| | | } |
| | | .flex-layout-body.no-bg { |
| | | background-color: #05227200; |
| | | background-color: #05227200; |
| | | } |
| | | </style> |
| | | |
| | | |
New file |
| | |
| | | <template> |
| | | <content-box class="page-root" title="派单管理"> |
| | | <admin-view v-if="userPower"></admin-view> |
| | | <maintncer-view v-else></maintncer-view> |
| | | </content-box> |
| | | </template> |
| | | |
| | | <script> |
| | | import ContentBox from "@/components/ContentBox"; |
| | | import AdminView from "./components/admin-view.vue"; |
| | | import maintncerView from "@/pages/alarmMager/components/maintncer-view.vue"; |
| | | export default { |
| | | components: { |
| | | ContentBox, |
| | | AdminView, |
| | | maintncerView, |
| | | }, |
| | | data() { |
| | | let userPower = sessionStorage.getItem("userPower"); |
| | | return { |
| | | userPower: 1, |
| | | }; |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped></style> |
New file |
| | |
| | | <template> |
| | | <el-tabs v-model="acTabs" tab-position="left" style="height: 100%;"> |
| | | <el-tab-pane label="待派发"> |
| | | <alarm-bill-type></alarm-bill-type> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="已派发"></el-tab-pane> |
| | | <el-tab-pane label="待审核"></el-tab-pane> |
| | | <el-tab-pane label="已完成"></el-tab-pane> |
| | | </el-tabs> |
| | | </template> |
| | | |
| | | <script> |
| | | import alarmBillType from "@/pages/alarmMager/components/alarm-bill-type"; |
| | | export default { |
| | | components: { |
| | | alarmBillType, |
| | | }, |
| | | data() { |
| | | return { |
| | | acTabs: 0, |
| | | waitHandOut: { |
| | | data: [], |
| | | page: { |
| | | pageSize: 10, |
| | | pageCurr: 0, |
| | | }, |
| | | }, |
| | | handOuted: { |
| | | data: [], |
| | | page: { |
| | | pageSize: 10, |
| | | pageCurr: 0, |
| | | }, |
| | | }, |
| | | waitVerity: { |
| | | data: [], |
| | | page: { |
| | | pageSize: 10, |
| | | pageCurr: 0, |
| | | }, |
| | | }, |
| | | finishedInfo: { |
| | | data: [], |
| | | page: { |
| | | pageSize: 10, |
| | | pageCurr: 0, |
| | | }, |
| | | }, |
| | | }; |
| | | }, |
| | | methods: { |
| | | searchData() {}, |
| | | }, |
| | | mounted() {}, |
| | | beforeDestroy() {}, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped></style> |
New file |
| | |
| | | <template> |
| | | <flex-layout no-bg> |
| | | <div class="flex-page-content"> |
| | | <el-table stripe size="small" :data="data" height="100%"> |
| | | <el-table-column |
| | | prop="UDepartment" |
| | | align="center" |
| | | label="维护区" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="UDepartment" |
| | | align="center" |
| | | label="维护区" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="UDepartment" |
| | | align="center" |
| | | label="维护区" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="UDepartment" |
| | | align="center" |
| | | label="维护区" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="UDepartment" |
| | | align="center" |
| | | label="维护区" |
| | | ></el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="flex-page-footer" slot="footer"> |
| | | <el-pagination |
| | | size="mini" |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="page.pageCurr" |
| | | :page-sizes="[10, 20, 30, 50, 100]" |
| | | :page-size="page.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="totalNum" |
| | | ></el-pagination> |
| | | </div> |
| | | </flex-layout> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | props: { |
| | | note: { |
| | | type: Number, |
| | | default: 1, |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | data: [], |
| | | page: { |
| | | pageSize: 10, |
| | | pageCurr: 0, |
| | | }, |
| | | totalNum: 0, |
| | | }; |
| | | }, |
| | | methods: { |
| | | queryData() {}, |
| | | // 显示条数改变时 |
| | | handleSizeChange(val) { |
| | | this.page.pageSize = val; |
| | | this.queryData(); |
| | | }, |
| | | // 翻页 |
| | | handleCurrentChange(val) { |
| | | this.page.pageCurr = val; |
| | | this.queryData(); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped></style> |
New file |
| | |
| | | <template> |
| | | <el-tabs v-model="acTabs" tab-position="left" style="height: 100%;"> |
| | | <el-tab-pane label="全部"> </el-tab-pane> |
| | | <el-tab-pane label="待处理"> </el-tab-pane> |
| | | <el-tab-pane label="处理中"> </el-tab-pane> |
| | | <el-tab-pane label="已完成"> </el-tab-pane> |
| | | </el-tabs> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return {}; |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped></style> |
New file |
| | |
| | | <template> |
| | | <el-table stripe size="small" :data="data" height="100%"> |
| | | <el-table-column |
| | | prop="battGroupId" |
| | | align="center" |
| | | label="电池组ID" |
| | | ></el-table-column> |
| | | </el-table> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | data: [], |
| | | }; |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped></style> |
| | |
| | | <template> |
| | | <flex-layout class="page-home"> |
| | | <flex-layout class="page-home" no-bg> |
| | | <page-header |
| | | slot="header" |
| | | :class="{ 'show-drawer': drawer }" |
| | |
| | | <template> |
| | | <div class="login-wrapper"> |
| | | <div class="login_container"> |
| | | <div class="sliderCon"> |
| | | <div class="logo"> |
| | | <img :src="logoUrl" class="logoImg"> |
| | | {{ platformName }} |
| | | </div> |
| | | <img src="../assets/images/login-img.png" class="picImg"> |
| | | </div> |
| | | <div class="login_box"> |
| | | <div class="title">用户登录</div> |
| | | <!-- 登录表单区 --> |
| | | <el-form label-width="0px" class="login_from" :model="loginForm" ref="loginFormRef"> |
| | | <!-- 用户名 --> |
| | | <el-form-item prop="username"> |
| | | <el-input class="input" v-model="loginForm.username" prefix-icon="el-icon-user" |
| | | @keyup.enter.native.stop="onSubmit"></el-input> |
| | | </el-form-item> |
| | | <!-- 密码 --> |
| | | <el-form-item prop="password"> |
| | | <el-input class="input" v-model="loginForm.password" prefix-icon="el-icon-lock" type="password" |
| | | @keyup.enter.native.stop="onSubmit"></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="btns"> |
| | | <el-button :loading="loading" type="primary" @click="onSubmit" class="loginBtn">登录</el-button> |
| | | </el-form-item> |
| | | <el-form-item v-if="!register"> |
| | | <a href="javascript:;" @click="license.show = true" |
| | | class="regBtn">平台注册</a> |
| | | </el-form-item> |
| | | <el-form-item v-else> |
| | | <a href="javascript:;" class="regBtn">已激活</a> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <!-- license弹框输入面板 --> |
| | | <el-dialog |
| | | title="平台注册提示" width="600px" |
| | | :visible.sync="license.show" |
| | | :close-on-click-modal="false" top="0" |
| | | class="dialog-center" :modal-append-to-body="false"> |
| | | <add-license v-if="license.show" :visible.sync="license.show"></add-license> |
| | | </el-dialog> |
| | | <!-- 人脸登陆 --> |
| | | <el-dialog |
| | | title="人脸登陆" width="480px" |
| | | :visible.sync="face.show" |
| | | :close-on-click-modal="false" top="0" |
| | | class="dialog-center" :modal-append-to-body="false"> |
| | | <face-login v-if="face.show" :visible.sync="face.show" @success="checkServeLicense"></face-login> |
| | | </el-dialog> |
| | | <!-- 功能描述 --> |
| | | <el-dialog |
| | | title="配置清单" width="960px" |
| | | :visible.sync="config.show" |
| | | :close-on-click-modal="false" top="0" |
| | | class="dialog-center" :modal-append-to-body="false"> |
| | | <config-info></config-info> |
| | | </el-dialog> |
| | | <!-- uKey的验证 --> |
| | | <el-dialog |
| | | title="uKey绑定" width="750px" |
| | | :visible.sync="uKey.show" |
| | | :close-on-click-modal="false" top="0" |
| | | class="dialog-center" :modal-append-to-body="false"> |
| | | <ukey-bind v-if="uKey.show" :visible.sync="uKey.show"></ukey-bind> |
| | | </el-dialog> |
| | | <div class="tools-container"> |
| | | <div class="tools-item" :class="uKeyState" v-if="$CFG.uKey.value" @click="uKey.show=true"> |
| | | <span class="iconfont el-icon-CombinedShape"></span> |
| | | </div> |
| | | <div class="tools-item" v-if="$CFG.face.value" @click="face.show=true"> |
| | | <span class="iconfont el-icon-renlianshibie"></span> |
| | | </div> |
| | | <div class="tools-item" @click="config.show=true"> |
| | | <span class="iconfont el-icon-peizhi"></span> |
| | | </div> |
| | | </div> |
| | | <div class="login-wrapper"> |
| | | <div class="login_container"> |
| | | <div class="sliderCon"> |
| | | <div class="logo"> |
| | | <img :src="logoUrl" class="logoImg" /> |
| | | {{ platformName }} |
| | | </div> |
| | | <div class="copy-right" v-if="copyRight.value"> |
| | | {{copyRight.data}} |
| | | <img src="../assets/images/login-img.png" class="picImg" /> |
| | | </div> |
| | | <div class="login_box"> |
| | | <div class="title">用户登录</div> |
| | | <!-- 登录表单区 --> |
| | | <el-form |
| | | label-width="0px" |
| | | class="login_from" |
| | | :model="loginForm" |
| | | ref="loginFormRef" |
| | | > |
| | | <!-- 用户名 --> |
| | | <el-form-item prop="username"> |
| | | <el-input |
| | | class="input" |
| | | v-model="loginForm.username" |
| | | prefix-icon="el-icon-user" |
| | | @keyup.enter.native.stop="onSubmit" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <!-- 密码 --> |
| | | <el-form-item prop="password"> |
| | | <el-input |
| | | class="input" |
| | | v-model="loginForm.password" |
| | | prefix-icon="el-icon-lock" |
| | | type="password" |
| | | @keyup.enter.native.stop="onSubmit" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="btns"> |
| | | <el-button |
| | | :loading="loading" |
| | | type="primary" |
| | | @click="onSubmit" |
| | | class="loginBtn" |
| | | >登录</el-button |
| | | > |
| | | </el-form-item> |
| | | <el-form-item v-if="!register"> |
| | | <a href="javascript:;" @click="license.show = true" class="regBtn" |
| | | >平台注册</a |
| | | > |
| | | </el-form-item> |
| | | <el-form-item v-else> |
| | | <a href="javascript:;" class="regBtn">已激活</a> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <!-- license弹框输入面板 --> |
| | | <el-dialog |
| | | title="平台注册提示" |
| | | width="600px" |
| | | :visible.sync="license.show" |
| | | :close-on-click-modal="false" |
| | | top="0" |
| | | class="dialog-center" |
| | | :modal-append-to-body="false" |
| | | > |
| | | <add-license |
| | | v-if="license.show" |
| | | :visible.sync="license.show" |
| | | ></add-license> |
| | | </el-dialog> |
| | | <!-- 人脸登陆 --> |
| | | <el-dialog |
| | | title="人脸登陆" |
| | | width="480px" |
| | | :visible.sync="face.show" |
| | | :close-on-click-modal="false" |
| | | top="0" |
| | | class="dialog-center" |
| | | :modal-append-to-body="false" |
| | | > |
| | | <face-login |
| | | v-if="face.show" |
| | | :visible.sync="face.show" |
| | | @success="checkServeLicense" |
| | | ></face-login> |
| | | </el-dialog> |
| | | <!-- 功能描述 --> |
| | | <el-dialog |
| | | title="配置清单" |
| | | width="960px" |
| | | :visible.sync="config.show" |
| | | :close-on-click-modal="false" |
| | | top="0" |
| | | class="dialog-center" |
| | | :modal-append-to-body="false" |
| | | > |
| | | <config-info></config-info> |
| | | </el-dialog> |
| | | <!-- uKey的验证 --> |
| | | <el-dialog |
| | | title="uKey绑定" |
| | | width="750px" |
| | | :visible.sync="uKey.show" |
| | | :close-on-click-modal="false" |
| | | top="0" |
| | | class="dialog-center" |
| | | :modal-append-to-body="false" |
| | | > |
| | | <ukey-bind v-if="uKey.show" :visible.sync="uKey.show"></ukey-bind> |
| | | </el-dialog> |
| | | <div class="tools-container"> |
| | | <div |
| | | class="tools-item" |
| | | :class="uKeyState" |
| | | v-if="$CFG.uKey.value" |
| | | @click="uKey.show = true" |
| | | > |
| | | <span class="iconfont el-icon-CombinedShape"></span> |
| | | </div> |
| | | <div |
| | | class="tools-item" |
| | | v-if="$CFG.face.value" |
| | | @click="face.show = true" |
| | | > |
| | | <span class="iconfont el-icon-renlianshibie"></span> |
| | | </div> |
| | | <div class="tools-item" @click="config.show = true"> |
| | | <span class="iconfont el-icon-peizhi"></span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="copy-right" v-if="copyRight.value"> |
| | | {{ copyRight.data }} |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import AddLicense from "@/pages/AddLicense"; |
| | | import FaceLogin from '@/components/face/FaceLogin'; |
| | | import FaceLogin from "@/components/face/FaceLogin"; |
| | | import { |
| | | login, |
| | | initDBPool, |
| | | checkLoginSession, uKeyLogin, getRandomFromServer, loginSignVerity |
| | | login, |
| | | initDBPool, |
| | | checkLoginSession, |
| | | uKeyLogin, |
| | | getRandomFromServer, |
| | | loginSignVerity, |
| | | } from "@/assets/js/api"; |
| | | import ConfigInfo from "@/pages/configInfo"; |
| | | import UkeyBind from "@/components/UKeyBind"; |
| | | import nfdw from '@/assets/images/nfdw-log.png'; |
| | | import gjdw from '@/assets/images/gjdw-log.png'; |
| | | import gjdx from '@/assets/images/gjdx-log.png'; |
| | | import qwh from '@/assets/images/qwh-logo.png'; |
| | | import yuanchange from '@/assets/images/yuanchang_logo2.png'; |
| | | import nfdw from "@/assets/images/nfdw-log.png"; |
| | | import gjdw from "@/assets/images/gjdw-log.png"; |
| | | import gjdx from "@/assets/images/gjdx-log.png"; |
| | | import qwh from "@/assets/images/qwh-logo.png"; |
| | | import yuanchange from "@/assets/images/yuanchang_logo2.png"; |
| | | import platform from "@/assets/js/config"; |
| | | import SoftUKey from "@/assets/js/tools/SoftUKey"; |
| | | import SoftKey3W from "@/assets/js/Syunew3"; |
| | | |
| | | export default { |
| | | components: { |
| | | UkeyBind, |
| | | ConfigInfo, |
| | | AddLicense, |
| | | FaceLogin |
| | | }, |
| | | data() { |
| | | return { |
| | | register: false, |
| | | loading: false, |
| | | labelPosition: "right" /* 登录表单 */, |
| | | formLabelAlign: { |
| | | name: "", |
| | | region: "", |
| | | type: "" |
| | | }, |
| | | /* 登录表单el-form 的 数据绑定 */ |
| | | loginForm: { |
| | | username: "", |
| | | password: "" |
| | | }, |
| | | license: { |
| | | show: false |
| | | }, |
| | | face: { |
| | | show: false |
| | | }, |
| | | config: { |
| | | show: false |
| | | }, |
| | | uKey: { |
| | | show: false, |
| | | }, |
| | | platformName: "", |
| | | logoConfig: platform.logo, |
| | | copyRight: platform.copyRight, |
| | | softUKey: new SoftUKey(SoftKey3W) |
| | | }; |
| | | }, |
| | | created() { |
| | | this.searchPlatformName(); |
| | | }, |
| | | methods: { |
| | | /* 初始化连接池 检测后台session*/ |
| | | async woData() { |
| | | const [pool, sessions] = await Promise.all([initDBPool, checkLoginSession]) |
| | | /* console.log('pool',pool); |
| | | components: { |
| | | UkeyBind, |
| | | ConfigInfo, |
| | | AddLicense, |
| | | FaceLogin, |
| | | }, |
| | | data() { |
| | | return { |
| | | register: false, |
| | | loading: false, |
| | | labelPosition: "right" /* 登录表单 */, |
| | | formLabelAlign: { |
| | | name: "", |
| | | region: "", |
| | | type: "", |
| | | }, |
| | | /* 登录表单el-form 的 数据绑定 */ |
| | | loginForm: { |
| | | username: "", |
| | | password: "", |
| | | }, |
| | | license: { |
| | | show: false, |
| | | }, |
| | | face: { |
| | | show: false, |
| | | }, |
| | | config: { |
| | | show: false, |
| | | }, |
| | | uKey: { |
| | | show: false, |
| | | }, |
| | | platformName: "", |
| | | logoConfig: platform.logo, |
| | | copyRight: platform.copyRight, |
| | | softUKey: new SoftUKey(SoftKey3W), |
| | | }; |
| | | }, |
| | | created() { |
| | | this.searchPlatformName(); |
| | | }, |
| | | methods: { |
| | | /* 初始化连接池 检测后台session*/ |
| | | async woData() { |
| | | const [pool, sessions] = await Promise.all([ |
| | | initDBPool, |
| | | checkLoginSession, |
| | | ]); |
| | | /* console.log('pool',pool); |
| | | console.log('sessions',sessions); */ |
| | | }, |
| | | onSubmit() { |
| | | if (!this.register && process.env.NODE_ENV != "dev") { |
| | | this.$layer.msg("平台未注册,请先注册平台!"); |
| | | return; |
| | | } |
| | | if (this.loading) { |
| | | return; |
| | | } |
| | | }, |
| | | onSubmit() { |
| | | if (!this.register && process.env.NODE_ENV != "dev") { |
| | | this.$layer.msg("平台未注册,请先注册平台!"); |
| | | return; |
| | | } |
| | | if (this.loading) { |
| | | return; |
| | | } |
| | | |
| | | if (this.$CFG.uKey.value) { |
| | | this.uKeyLogin(); |
| | | } else { |
| | | this.normalLogin(); |
| | | } |
| | | }, |
| | | normalLogin() { |
| | | // 校验用户 |
| | | if (this.loginForm.username && this.loginForm.password) { |
| | | // 开启等待框 |
| | | this.loading = true; |
| | | login(this.loginForm.username, this.loginForm.password).then(res => { |
| | | // 对结果进行处理 |
| | | this.handleLogin(res); |
| | | }).catch(error => { |
| | | // 关闭等待 |
| | | this.loading = false; |
| | | console.log(error); |
| | | this.$message.error("网络异常"); |
| | | }); |
| | | } else { |
| | | this.$message.error("用户名或密码不能为空"); |
| | | } |
| | | }, |
| | | getRandomFromServer() { |
| | | getRandomFromServer().then(res=>{ |
| | | let rs = JSON.parse(res.data.result); |
| | | if(rs.code == 1) { |
| | | let randomNumber = rs.data; |
| | | this.softUKey.getSign(randomNumber, this.checkUKeySign); |
| | | }else { |
| | | this.$message.error("服务器连接异常!"); |
| | | } |
| | | }).catch(error=>{ |
| | | this.$message.error("服务器连接异常!"); |
| | | }); |
| | | }, |
| | | checkUKeySign(result) { |
| | | let reg = new RegExp("&", "g"); |
| | | result.inPath = result.inPath.replace(reg, "%26"); |
| | | result.inPath = result.inPath.replace(/\\/g, "huodongwei"); |
| | | loginSignVerity(result).then(res=>{ |
| | | let rs = JSON.parse(res.data.result); |
| | | if(rs.code == 1) { |
| | | this.uKeyLogin(); |
| | | }else { |
| | | this.$message.error("UKey签名校验失败!"); |
| | | } |
| | | }).catch(error=>{ |
| | | this.$message.error("服务器连接异常!"); |
| | | }); |
| | | }, |
| | | uKeyLogin() { |
| | | // |
| | | if (!this.$store.state.ukey.connect) { |
| | | this.$message.error("请先安装uKey客户端服务"); |
| | | return; |
| | | } |
| | | if (!this.$store.state.ukey.isIn) { |
| | | this.$message.warning("请先插入uKey"); |
| | | return; |
| | | } |
| | | |
| | | // 校验用户 |
| | | if (this.loginForm.username && this.loginForm.password) { |
| | | // 开启等待框 |
| | | this.loading = true; |
| | | uKeyLogin(this.loginForm.username, this.loginForm.password, this.$store.state.ukey.id).then(res => { |
| | | // 对结果进行处理 |
| | | this.handleLogin(res); |
| | | }).catch(error => { |
| | | // 关闭等待 |
| | | this.loading = false; |
| | | console.log(error); |
| | | this.$message.error("网络异常"); |
| | | }); |
| | | } else { |
| | | this.$message.error("用户名或密码不能为空"); |
| | | } |
| | | }, |
| | | handleLogin(res) { |
| | | if (this.$CFG.uKey.value) { |
| | | this.uKeyLogin(); |
| | | } else { |
| | | this.normalLogin(); |
| | | } |
| | | }, |
| | | normalLogin() { |
| | | // 校验用户 |
| | | if (this.loginForm.username && this.loginForm.password) { |
| | | // 开启等待框 |
| | | this.loading = true; |
| | | login(this.loginForm.username, this.loginForm.password) |
| | | .then((res) => { |
| | | // 对结果进行处理 |
| | | this.handleLogin(res); |
| | | }) |
| | | .catch((error) => { |
| | | // 关闭等待 |
| | | this.loading = false; |
| | | let rs = JSON.parse(res.data.result); |
| | | if (rs.code == 1) { |
| | | this.$message.success("登录成功"); |
| | | sessionStorage.setItem('username', this.loginForm.username); |
| | | sessionStorage.setItem('userId', rs.data); |
| | | // 自动登录无法返回登录页 |
| | | if (this.$store.state.user.autoLogin) { |
| | | this.$router.replace("/home"); |
| | | } else { |
| | | this.$router.push("/home"); |
| | | } |
| | | |
| | | // 设置用户的权限 |
| | | this.$store.dispatch('user/getPermits'); |
| | | } else { |
| | | this.$message.error(rs.msg); |
| | | } |
| | | }, |
| | | checkServeLicense() { |
| | | // 校验服务器是否注册 |
| | | this.$apis.license.checkServeLicense().then(res => { |
| | | let rs = JSON.parse(res.data.result); |
| | | if (rs.code == 1) { |
| | | this.register = true; |
| | | } else { |
| | | this.$layer.msg("平台未注册!请先注册。"); |
| | | this.license.show = true; |
| | | this.register = false; |
| | | } |
| | | }).catch(error => { |
| | | console.log(error); |
| | | }); |
| | | }, |
| | | autoLogin() { // 自动登录 |
| | | this.$apis.login.checkReferer().then(res => { |
| | | let rs = JSON.parse(res.data.result); |
| | | console.log(rs); |
| | | if (rs) { |
| | | this.$store.dispatch('user/changeAutoLogin', 1); |
| | | this.loginForm.username = "zhdl"; |
| | | this.loginForm.password = "123456"; |
| | | this.normalLogin(); |
| | | } |
| | | }).catch(error => { |
| | | |
| | | }); |
| | | // let pattern = /(localhost)|(www\.sw-ht\.com)/; |
| | | // let where = document.referrer; |
| | | // if(pattern.test(where)) { |
| | | // this.$store.dispatch('user/changeAutoLogin', 1); |
| | | // this.loginForm.username = "zhdl"; |
| | | // this.loginForm.password = "123456"; |
| | | // this.normalLogin(); |
| | | // }else { |
| | | // this.$store.dispatch('user/changeAutoLogin', 0); |
| | | // } |
| | | }, |
| | | searchPlatformName() { |
| | | this.$apis.pageSetting.realTime.searchName().then(res=>{ |
| | | let rs = JSON.parse(res.data.result); |
| | | if(rs.code == 1) { |
| | | let data = rs.data[0]; |
| | | this.platformName = data.param; |
| | | }else { |
| | | this.platformName = "蓄电池后台监控管理平台"; |
| | | } |
| | | sessionStorage.setItem('platformName', this.platformName); |
| | | }).catch(error=>{ |
| | | this.platformName = "蓄电池后台监控管理平台"; |
| | | sessionStorage.setItem('platformName', this.platformName); |
| | | }); |
| | | } |
| | | console.log(error); |
| | | this.$message.error("网络异常"); |
| | | }); |
| | | } else { |
| | | this.$message.error("用户名或密码不能为空"); |
| | | } |
| | | }, |
| | | computed: { |
| | | uKeyState() { |
| | | let state = -1; |
| | | let uKey = this.$store.state.ukey; |
| | | let cls = "state-error"; |
| | | // 设置uKey的状态 |
| | | if (uKey.connect) { |
| | | if (uKey.isIn) { |
| | | state = 1; |
| | | } else { |
| | | state = 0; |
| | | } |
| | | } else { |
| | | state = -1; |
| | | } |
| | | // 根据状态确定uKey图表的颜色 |
| | | switch (state) { |
| | | case 0: |
| | | cls = "state-default"; |
| | | break; |
| | | case 1: |
| | | cls = ""; |
| | | break; |
| | | default: |
| | | cls = "state-error"; |
| | | break; |
| | | } |
| | | return cls; |
| | | }, |
| | | logoUrl() { |
| | | let logoConfig = this.logoConfig; |
| | | let image = yuanchange; |
| | | |
| | | if(!logoConfig.value) { |
| | | return image; |
| | | } |
| | | |
| | | switch (logoConfig.fileName) { |
| | | case "nfdw": |
| | | image = nfdw |
| | | break; |
| | | case "gjdx": |
| | | image = gjdx; |
| | | break; |
| | | case 'qwh': |
| | | image = qwh; |
| | | break; |
| | | case 'gjdw': |
| | | image = gjdw; |
| | | break; |
| | | } |
| | | return image; |
| | | } |
| | | getRandomFromServer() { |
| | | getRandomFromServer() |
| | | .then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | if (rs.code == 1) { |
| | | let randomNumber = rs.data; |
| | | this.softUKey.getSign(randomNumber, this.checkUKeySign); |
| | | } else { |
| | | this.$message.error("服务器连接异常!"); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | this.$message.error("服务器连接异常!"); |
| | | }); |
| | | }, |
| | | mounted() { |
| | | // 初始化user的信息 |
| | | this.$store.commit('user/init'); |
| | | // 初始化登录状态 |
| | | sessionStorage.setItem('username', ""); |
| | | this.checkServeLicense(); |
| | | checkUKeySign(result) { |
| | | let reg = new RegExp("&", "g"); |
| | | result.inPath = result.inPath.replace(reg, "%26"); |
| | | result.inPath = result.inPath.replace(/\\/g, "huodongwei"); |
| | | loginSignVerity(result) |
| | | .then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | if (rs.code == 1) { |
| | | this.uKeyLogin(); |
| | | } else { |
| | | this.$message.error("UKey签名校验失败!"); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | this.$message.error("服务器连接异常!"); |
| | | }); |
| | | }, |
| | | uKeyLogin() { |
| | | // |
| | | if (!this.$store.state.ukey.connect) { |
| | | this.$message.error("请先安装uKey客户端服务"); |
| | | return; |
| | | } |
| | | if (!this.$store.state.ukey.isIn) { |
| | | this.$message.warning("请先插入uKey"); |
| | | return; |
| | | } |
| | | |
| | | // 自动登录 |
| | | this.autoLogin(); |
| | | } |
| | | // 校验用户 |
| | | if (this.loginForm.username && this.loginForm.password) { |
| | | // 开启等待框 |
| | | this.loading = true; |
| | | uKeyLogin( |
| | | this.loginForm.username, |
| | | this.loginForm.password, |
| | | this.$store.state.ukey.id |
| | | ) |
| | | .then((res) => { |
| | | // 对结果进行处理 |
| | | this.handleLogin(res); |
| | | }) |
| | | .catch((error) => { |
| | | // 关闭等待 |
| | | this.loading = false; |
| | | console.log(error); |
| | | this.$message.error("网络异常"); |
| | | }); |
| | | } else { |
| | | this.$message.error("用户名或密码不能为空"); |
| | | } |
| | | }, |
| | | handleLogin(res) { |
| | | // 关闭等待 |
| | | this.loading = false; |
| | | let rs = JSON.parse(res.data.result); |
| | | if (rs.code == 1) { |
| | | this.$message.success("登录成功"); |
| | | sessionStorage.setItem("username", this.loginForm.username); |
| | | sessionStorage.setItem("userId", rs.data); |
| | | sessionStorage.setItem("userPower", rs.data2); |
| | | // 自动登录无法返回登录页 |
| | | if (this.$store.state.user.autoLogin) { |
| | | this.$router.replace("/home"); |
| | | } else { |
| | | this.$router.push("/home"); |
| | | } |
| | | |
| | | // 设置用户的权限 |
| | | this.$store.dispatch("user/getPermits"); |
| | | } else { |
| | | this.$message.error(rs.msg); |
| | | } |
| | | }, |
| | | checkServeLicense() { |
| | | // 校验服务器是否注册 |
| | | this.$apis.license |
| | | .checkServeLicense() |
| | | .then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | if (rs.code == 1) { |
| | | this.register = true; |
| | | } else { |
| | | this.$layer.msg("平台未注册!请先注册。"); |
| | | this.license.show = true; |
| | | this.register = false; |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.log(error); |
| | | }); |
| | | }, |
| | | autoLogin() { |
| | | // 自动登录 |
| | | this.$apis.login |
| | | .checkReferer() |
| | | .then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | console.log(rs); |
| | | if (rs) { |
| | | this.$store.dispatch("user/changeAutoLogin", 1); |
| | | this.loginForm.username = "zhdl"; |
| | | this.loginForm.password = "123456"; |
| | | this.normalLogin(); |
| | | } |
| | | }) |
| | | .catch((error) => {}); |
| | | // let pattern = /(localhost)|(www\.sw-ht\.com)/; |
| | | // let where = document.referrer; |
| | | // if(pattern.test(where)) { |
| | | // this.$store.dispatch('user/changeAutoLogin', 1); |
| | | // this.loginForm.username = "zhdl"; |
| | | // this.loginForm.password = "123456"; |
| | | // this.normalLogin(); |
| | | // }else { |
| | | // this.$store.dispatch('user/changeAutoLogin', 0); |
| | | // } |
| | | }, |
| | | searchPlatformName() { |
| | | this.$apis.pageSetting.realTime |
| | | .searchName() |
| | | .then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | if (rs.code == 1) { |
| | | let data = rs.data[0]; |
| | | this.platformName = data.param; |
| | | } else { |
| | | this.platformName = "蓄电池后台监控管理平台"; |
| | | } |
| | | sessionStorage.setItem("platformName", this.platformName); |
| | | }) |
| | | .catch((error) => { |
| | | this.platformName = "蓄电池后台监控管理平台"; |
| | | sessionStorage.setItem("platformName", this.platformName); |
| | | }); |
| | | }, |
| | | }, |
| | | computed: { |
| | | uKeyState() { |
| | | let state = -1; |
| | | let uKey = this.$store.state.ukey; |
| | | let cls = "state-error"; |
| | | // 设置uKey的状态 |
| | | if (uKey.connect) { |
| | | if (uKey.isIn) { |
| | | state = 1; |
| | | } else { |
| | | state = 0; |
| | | } |
| | | } else { |
| | | state = -1; |
| | | } |
| | | // 根据状态确定uKey图表的颜色 |
| | | switch (state) { |
| | | case 0: |
| | | cls = "state-default"; |
| | | break; |
| | | case 1: |
| | | cls = ""; |
| | | break; |
| | | default: |
| | | cls = "state-error"; |
| | | break; |
| | | } |
| | | return cls; |
| | | }, |
| | | logoUrl() { |
| | | let logoConfig = this.logoConfig; |
| | | let image = yuanchange; |
| | | |
| | | if (!logoConfig.value) { |
| | | return image; |
| | | } |
| | | |
| | | switch (logoConfig.fileName) { |
| | | case "nfdw": |
| | | image = nfdw; |
| | | break; |
| | | case "gjdx": |
| | | image = gjdx; |
| | | break; |
| | | case "qwh": |
| | | image = qwh; |
| | | break; |
| | | case "gjdw": |
| | | image = gjdw; |
| | | break; |
| | | } |
| | | return image; |
| | | }, |
| | | }, |
| | | mounted() { |
| | | // 初始化user的信息 |
| | | this.$store.commit("user/init"); |
| | | // 初始化登录状态 |
| | | sessionStorage.setItem("username", ""); |
| | | this.checkServeLicense(); |
| | | |
| | | // 自动登录 |
| | | this.autoLogin(); |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | | .login_from .el-input__inner { |
| | | height: 48px; |
| | | line-height: 48px; |
| | | height: 48px; |
| | | line-height: 48px; |
| | | } |
| | | |
| | | .el-science-blue .login_from .el-input.is-disabled .el-input__inner, .el-science-blue .login_from .el-input__inner { |
| | | background-color: transparent; |
| | | border-color: #e4e4e4; |
| | | color: #868686; |
| | | .el-science-blue .login_from .el-input.is-disabled .el-input__inner, |
| | | .el-science-blue .login_from .el-input__inner { |
| | | background-color: transparent; |
| | | border-color: #e4e4e4; |
| | | color: #868686; |
| | | } |
| | | |
| | | .el-science-blue .login_from .el-input__prefix, .el-input__suffix, .el-science-blue .login_from .el-select .el-input .el-select__caret { |
| | | color: #007fe1; |
| | | .el-science-blue .login_from .el-input__prefix, |
| | | .el-input__suffix, |
| | | .el-science-blue .login_from .el-select .el-input .el-select__caret { |
| | | color: #007fe1; |
| | | } |
| | | </style> |
| | | |
| | | <style lang="less" scoped> |
| | | .login-wrapper { |
| | | position: relative; |
| | | width: 100%; |
| | | height: 100%; |
| | | position: relative; |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | /* 登录大盒子背景 */ |
| | | .login_container { |
| | | width: 100%; |
| | | height: 100%; |
| | | background: url(../assets/images/login-bg.jpg) 0 0 no-repeat; |
| | | background-size: 100% 100%; |
| | | display: flex; |
| | | justify-content: space-around; |
| | | align-items: center; |
| | | width: 100%; |
| | | height: 100%; |
| | | background: url(../assets/images/login-bg.jpg) 0 0 no-repeat; |
| | | background-size: 100% 100%; |
| | | display: flex; |
| | | justify-content: space-around; |
| | | align-items: center; |
| | | } |
| | | |
| | | .tools-container { |
| | | position: absolute; |
| | | bottom: 0; |
| | | right: 0; |
| | | background-color: #FFFFFF; |
| | | position: absolute; |
| | | bottom: 0; |
| | | right: 0; |
| | | background-color: #ffffff; |
| | | } |
| | | |
| | | .tools-container .tools-item { |
| | | padding: 8px; |
| | | cursor: pointer; |
| | | padding: 8px; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .tools-container .tools-item:hover { |
| | | |
| | | background-color: #e4e4e4; |
| | | background-color: #e4e4e4; |
| | | } |
| | | |
| | | .tools-container .iconfont { |
| | | font-size: 22px; |
| | | color: #0080ff; |
| | | font-size: 22px; |
| | | color: #0080ff; |
| | | } |
| | | |
| | | .tools-container .state-default .iconfont { |
| | | color: #808080; |
| | | color: #808080; |
| | | } |
| | | |
| | | .tools-container .state-error .iconfont { |
| | | color: #ff0000; |
| | | color: #ff0000; |
| | | } |
| | | |
| | | .sliderCon { |
| | | margin-top: -6vh; |
| | | margin-top: -6vh; |
| | | |
| | | .logo { |
| | | display: flex; |
| | | align-items: center; |
| | | font-size: 48px; |
| | | color: #007fe1; |
| | | font-weight: bold; |
| | | .logo { |
| | | display: flex; |
| | | align-items: center; |
| | | font-size: 48px; |
| | | color: #007fe1; |
| | | font-weight: bold; |
| | | |
| | | .logoImg { |
| | | height: 50px; |
| | | margin-right: 14px; |
| | | } |
| | | .logoImg { |
| | | height: 50px; |
| | | margin-right: 14px; |
| | | } |
| | | } |
| | | |
| | | .picImg { |
| | | width: 580px; |
| | | margin-top: 12vh; |
| | | } |
| | | .picImg { |
| | | width: 580px; |
| | | margin-top: 12vh; |
| | | } |
| | | } |
| | | |
| | | /* 登录框 */ |
| | | .login_box { |
| | | width: 430px; |
| | | height: 400px; |
| | | width: 430px; |
| | | height: 400px; |
| | | background-color: #fff; |
| | | border-radius: 3px; |
| | | padding: 40px 60px; |
| | | box-sizing: border-box; |
| | | position: relative; |
| | | z-index: 2; |
| | | |
| | | .title { |
| | | font-size: 20px; |
| | | color: #007fe1; |
| | | font-weight: bold; |
| | | margin-bottom: 30px; |
| | | } |
| | | |
| | | /* v图片的盒子 */ |
| | | |
| | | .avatar { |
| | | height: 130px; |
| | | width: 130px; |
| | | border: 1px solid #eee; |
| | | border-radius: 50%; |
| | | /* 边框圆角 */ |
| | | padding: 10px; |
| | | box-shadow: 0 0 10px #ddd; |
| | | position: absolute; |
| | | left: 50%; |
| | | transform: translate(-50%, -50%); |
| | | background-color: #fff; |
| | | border-radius: 3px; |
| | | padding: 40px 60px; |
| | | box-sizing: border-box; |
| | | position: relative; |
| | | z-index: 2; |
| | | /* v图片 */ |
| | | |
| | | .title { |
| | | font-size: 20px; |
| | | color: #007fe1; |
| | | font-weight: bold; |
| | | margin-bottom: 30px; |
| | | img { |
| | | width: 130px; |
| | | height: 130px; |
| | | border-radius: 50%; |
| | | background-color: #eeeeee; |
| | | } |
| | | |
| | | /* v图片的盒子 */ |
| | | |
| | | .avatar { |
| | | height: 130px; |
| | | width: 130px; |
| | | border: 1px solid #eee; |
| | | border-radius: 50%; |
| | | /* 边框圆角 */ |
| | | padding: 10px; |
| | | box-shadow: 0 0 10px #ddd; |
| | | position: absolute; |
| | | left: 50%; |
| | | transform: translate(-50%, -50%); |
| | | background-color: #fff; |
| | | /* v图片 */ |
| | | |
| | | img { |
| | | width: 130px; |
| | | height: 130px; |
| | | border-radius: 50%; |
| | | background-color: #eeeeee; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .login_box::after { |
| | | content: ""; |
| | | display: block; |
| | | width: 446px; |
| | | height: 416px; |
| | | position: absolute; |
| | | top: -8px; |
| | | left: -8px; |
| | | background: rgba(255, 255, 255, 0.4); |
| | | z-index: -1; |
| | | content: ""; |
| | | display: block; |
| | | width: 446px; |
| | | height: 416px; |
| | | position: absolute; |
| | | top: -8px; |
| | | left: -8px; |
| | | background: rgba(255, 255, 255, 0.4); |
| | | z-index: -1; |
| | | } |
| | | |
| | | /* 登录按钮 */ |
| | | .btns { |
| | | text-align: center; |
| | | text-align: center; |
| | | } |
| | | |
| | | .loginBtn { |
| | | width: 100%; |
| | | display: block; |
| | | text-align: center; |
| | | height: 48px; |
| | | margin-top: 10px; |
| | | width: 100%; |
| | | display: block; |
| | | text-align: center; |
| | | height: 48px; |
| | | margin-top: 10px; |
| | | } |
| | | |
| | | .regBtn { |
| | | color: #007fe1; |
| | | margin-right: 10px; |
| | | color: #007fe1; |
| | | margin-right: 10px; |
| | | } |
| | | |
| | | @media screen and (max-width: 1680px) { |
| | | .sliderCon .logo { |
| | | font-size: 40px; |
| | | } |
| | | .sliderCon .logo { |
| | | font-size: 40px; |
| | | } |
| | | |
| | | .sliderCon .picImg { |
| | | width: 480px; |
| | | } |
| | | .sliderCon .picImg { |
| | | width: 480px; |
| | | } |
| | | |
| | | .login_box { |
| | | width: 400px; |
| | | height: 360px; |
| | | } |
| | | .login_box { |
| | | width: 400px; |
| | | height: 360px; |
| | | } |
| | | |
| | | .login_box::after { |
| | | width: 416px; |
| | | height: 376px; |
| | | } |
| | | |
| | | .login_box::after { |
| | | width: 416px; |
| | | height: 376px; |
| | | } |
| | | } |
| | | </style> |
| | | |
| | | <style scoped> |
| | | .copy-right { |
| | | position: absolute; |
| | | width: 100%; |
| | | text-align: center; |
| | | bottom: 16px; |
| | | z-index: 999; |
| | | font-size: 12px; |
| | | position: absolute; |
| | | width: 100%; |
| | | text-align: center; |
| | | bottom: 16px; |
| | | z-index: 999; |
| | | font-size: 12px; |
| | | } |
| | | </style> |
| | |
| | | routes |
| | | }); |
| | | |
| | | router.beforeEach((to, from, next)=>{ |
| | | router.beforeEach((to, from, next) => { |
| | | // 存储当前显示页面的名称 |
| | | let pageName = to.name?to.name: ''; |
| | | let pageName = to.name ? to.name : ''; |
| | | sessionStorage.setItem('acTabs', pageName); |
| | | |
| | | if(to.name != 'login' && !sessionStorage.getItem('username')) { |
| | | if (to.name != 'login' && !sessionStorage.getItem('username')) { |
| | | next('\login'); |
| | | }else { |
| | | } else { |
| | | next(); |
| | | } |
| | | }); |
| | | const routerPush = VueRouter.prototype.push |
| | | const routerPush = VueRouter.prototype.push; |
| | | VueRouter.prototype.push = function push(location) { |
| | | return routerPush.call(this, location).catch(error=> error) |
| | | } |
| | | return routerPush.call(this, location).catch(error => error) |
| | | }; |
| | | |
| | | export default router; |
| | |
| | | redirect: '/login' |
| | | }, |
| | | |
| | | { |
| | | path: '/login', |
| | | name: 'login', |
| | | meta: {}, |
| | | component: (resolve) => require(['@/pages/login.vue'], resolve) |
| | | { |
| | | path: '/login', |
| | | name: 'login', |
| | | meta: {}, |
| | | component: (resolve) => require(['@/pages/login.vue'], resolve) |
| | | }, |
| | | // 测试页面 |
| | | { |
| | | path: '/wxTest', |
| | | name: 'wxTest', |
| | | meta: {}, |
| | | component: (resolve) => require(['@/pages/wxTest.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/home', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/home.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/index', |
| | | name: 'index', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/index.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/screen', |
| | | name: 'screen', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/screen.vue'], resolve) |
| | | }, |
| | | { |
| | | path: "/three-home", |
| | | name: "threeHome", |
| | | meta: { |
| | | name: "3D站点" |
| | | }, |
| | | // 测试页面 |
| | | { |
| | | path: '/wxTest', |
| | | name: 'wxTest', |
| | | meta: {}, |
| | | component: (resolve) => require(['@/pages/wxTest.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/home', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/home.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/index', |
| | | name: 'index', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/index.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/screen', |
| | | name: 'screen', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/screen.vue'], resolve) |
| | | }, |
| | | { |
| | | path: "/three-home", |
| | | name: "threeHome", |
| | | meta: { |
| | | name: "3D站点" |
| | | component: (resolve) => require(['../pages/dataTest/threeHome.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/moving-ring-system/', |
| | | name: 'movingRingSystem', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/movingRingSystem/index.vue'], resolve), |
| | | children: [ |
| | | { |
| | | path: 'real-time/:BattGroupId', |
| | | name: 'movingRingSysteRrealTime', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/realTime.vue'], resolve) |
| | | }, |
| | | component: (resolve) => require(['../pages/dataTest/threeHome.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/moving-ring-system/', |
| | | name: 'movingRingSystem', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/movingRingSystem/index.vue'], resolve), |
| | | children: [ |
| | | { |
| | | path: 'real-time/:BattGroupId', |
| | | name: 'movingRingSysteRrealTime', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/realTime.vue'], resolve) |
| | | }, |
| | | { |
| | | path: 'real-time/:BattGroupId/:powerDeviceId', |
| | | name: 'movingRingSysteRrealTime', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/realTimeForShanXi.vue'], resolve) |
| | | }, |
| | | { |
| | | path: 'real-time-aio/:BattGroupId', |
| | | name: 'movingRingSysteRrealTime', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/realTimeAio.vue'], resolve) |
| | | }, |
| | | { |
| | | path: 'power-box/:powerDeviceId', |
| | | name: 'powerBox', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/movingRingSystem/powerBox.vue'], resolve) |
| | | }, |
| | | { |
| | | path: 'ele-info/:powerDeviceId', |
| | | name: 'movingRingSystemEleInfo', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataMager/realTimeData.vue'], resolve) |
| | | }, |
| | | { |
| | | path: 'isolating-device/:powerDeviceId', |
| | | name: 'movingRingSystemIsolating', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/movingRingSystem/isolatingDevice.vue'], resolve) |
| | | }, |
| | | { |
| | | path: 'charger-status/:powerDeviceId', |
| | | name: 'movingRingSystemCharger', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/movingRingSystem/chargerStatus.vue'], resolve) |
| | | }, |
| | | { |
| | | path: 'air/:powerDeviceId', |
| | | name: 'movingRingAir', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/movingRingSystem/airCooditioner.vue'], resolve) |
| | | }, |
| | | { |
| | | path: 'lithium-battery/:BattGroupId', |
| | | name: 'movingRingLithiumBattery', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/movingRingSystem/lithiumBattery.vue'], resolve) |
| | | { |
| | | path: 'real-time/:BattGroupId/:powerDeviceId', |
| | | name: 'movingRingSysteRrealTime', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/realTimeForShanXi.vue'], resolve) |
| | | }, |
| | | { |
| | | path: 'real-time-aio/:BattGroupId', |
| | | name: 'movingRingSysteRrealTime', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/realTimeAio.vue'], resolve) |
| | | }, |
| | | { |
| | | path: 'power-box/:powerDeviceId', |
| | | name: 'powerBox', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/movingRingSystem/powerBox.vue'], resolve) |
| | | }, |
| | | { |
| | | path: 'ele-info/:powerDeviceId', |
| | | name: 'movingRingSystemEleInfo', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataMager/realTimeData.vue'], resolve) |
| | | }, |
| | | { |
| | | path: 'isolating-device/:powerDeviceId', |
| | | name: 'movingRingSystemIsolating', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/movingRingSystem/isolatingDevice.vue'], resolve) |
| | | }, |
| | | { |
| | | path: 'charger-status/:powerDeviceId', |
| | | name: 'movingRingSystemCharger', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/movingRingSystem/chargerStatus.vue'], resolve) |
| | | }, |
| | | { |
| | | path: 'air/:powerDeviceId', |
| | | name: 'movingRingAir', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/movingRingSystem/airCooditioner.vue'], resolve) |
| | | }, |
| | | { |
| | | path: 'lithium-battery/:BattGroupId', |
| | | name: 'movingRingLithiumBattery', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/movingRingSystem/lithiumBattery.vue'], resolve) |
| | | |
| | | }, |
| | | { |
| | | path: '404', |
| | | name: '', |
| | | meta: { |
| | | crumb: 'NotFound' |
| | | }, |
| | | { |
| | | path: '404', |
| | | name: '', |
| | | meta: { |
| | | crumb: 'NotFound' |
| | | }, |
| | | component: (resolve) => require(['@/pages/404/index.vue'], resolve) |
| | | component: (resolve) => require(['@/pages/404/index.vue'], resolve) |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | path: '/real-time', |
| | | name: 'realTime', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/realTime.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/history', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/history.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/history-aio', |
| | | meta: { |
| | | name: '一体机导入记录' |
| | | }, |
| | | component: (resolve) => require(['../pages/dataTest/historyAio.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/test', |
| | | meat: {}, |
| | | component: (resolve) => require(['../pages/dataTest/CircuitDiagram.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/battGroupMager', |
| | | meta: { |
| | | name: '电池信息配置' |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/battGroupMager.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/powerMager', |
| | | meta: { |
| | | name: '电源信息配置' |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/powerMager.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/homeAddressInfoManage', |
| | | meta: { |
| | | name: '机房位置信息配置' |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/homeAddressInfoManage.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/produceTotal', |
| | | name: 'produceTotal', |
| | | meta: { |
| | | name: '电池信息统计分析' |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/produceTotal.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/faceManager/userFaceManager', |
| | | name: 'userFaceManager', |
| | | meta: { |
| | | name: '用户人脸管理' |
| | | }, |
| | | component: (resolve) => require(['../pages/faceManager/userFaceManager.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/realTimeData.vue', |
| | | name: 'realTimeData', |
| | | meta: { |
| | | name: '实时监测数据' |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/realTimeData.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/threadMager', |
| | | name: 'threadMager', |
| | | meta: { |
| | | name: '线程信息管理' |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/threadMager.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataAdmian', |
| | | /* 电池充放电数据管理 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataMager/dataAdmian.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/internalTest', |
| | | /*内阻测试 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataMager/internalTest.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dischargeTest', |
| | | /* 电池放电测试 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataMager/dischargeTest.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/historyInfo', |
| | | /* 历史数据管理 */ |
| | | meta: { |
| | | title: '历史数据管理' |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/historyInfoMager.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/batteryMager', |
| | | /* 电池关注管理 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataMager/batteryMager.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/device-work-state', |
| | | name: 'deviceWorkState', |
| | | meta: { |
| | | title: '设备工作状态', |
| | | }, |
| | | component: (resolve) => require(['../pages/reportStatistics/deviceWorkState'], resolve) |
| | | }, |
| | | { |
| | | path: '/scrap-battery', |
| | | name: 'scrapBattery', |
| | | meta: { |
| | | title: '报废电池信息管理', |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/scrapBattery.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/repair-battery', |
| | | name: 'repairBattery', |
| | | meta: { |
| | | title: '备件电池信息管理', |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/repairBattery.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/eventTotalPage', |
| | | meta: { |
| | | title: '事件总表', |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/eventTotalPage.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/btsStatus', |
| | | name: 'btsStatusTest', |
| | | meta: { |
| | | title: '核容测试设备', |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/btsStatus.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/powercut', |
| | | meta: { |
| | | title: '机房停电查询', |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/powercut.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/batteryrHistoryquery', |
| | | /* 电池告警历史查询 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/batteryrHistoryquery.vue'], resolve) |
| | | }, |
| | | { |
| | | name: 'batteryrTimequery', |
| | | path: '/batteryrTimequery', |
| | | /* 电池告警实时查询 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/batteryrTimequery.vue'], resolve) |
| | | }, |
| | | { |
| | | name: 'alarmDispatch', |
| | | path: '/alarmDispatch', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager//alarm-dispatch.vue'], resolve) |
| | | }, |
| | | { |
| | | name: 'powerRealtimeInfo', |
| | | path: '/powerRealtimeInfo', |
| | | /* 电源实时信息告警 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/powerRealtimeInfo.vue'], resolve) |
| | | }, |
| | | { |
| | | name: 'powerHistoryInfo', |
| | | path: '/powerHistoryInfo', |
| | | /* 电源历史信息告警 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/powerHistoryInfo.vue'], resolve) |
| | | }, |
| | | { |
| | | name: 'powerBoxAlarm', |
| | | path: '/powerBoxAlarm', |
| | | /* 配电柜实时告警 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/powerBoxAlarm.vue'], resolve) |
| | | }, |
| | | { |
| | | name: 'powerBoxHistoryAlarm', |
| | | path: '/powerBoxHistoryAlarm', |
| | | /* 配电柜历史告警 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/powerBoxHistoryAlarm.vue'], resolve) |
| | | }, |
| | | { |
| | | name: 'hfSwitch', |
| | | path: '/hfSwitch', |
| | | /* 高频开关配电柜遥测量 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/hfSwitch.vue'], resolve) |
| | | }, |
| | | { |
| | | name: 'GGDmeasure', |
| | | path: '/GGDmeasure', |
| | | /* 交流配电柜遥测量 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/GGDmeasure.vue'], resolve) |
| | | }, |
| | | { |
| | | name: 'powerAlarmTimeout', |
| | | path: '/powerAlarmTimeout', |
| | | /* 通信电源超时告警 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/powerAlarmTimeout.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/deviceHistoryquery', |
| | | /* 设备告警历史查询 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/deviceHistoryquery.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/deviceTimequery', |
| | | /* 设备告警实时查询 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/deviceTimequery.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/batterypaSetting', |
| | | /* 电池告警参数设置 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/batterypaSetting.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/theFaultSites', |
| | | meta: { |
| | | title: '故障站点', |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/theFaultSites.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/theStatusManager', |
| | | meta: { |
| | | title: '故障站点管理', |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/theStatusManager.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/devicepaSetting', |
| | | /* 设备告警参数设置 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/devicepaSetting.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/powerCabinetSetting', |
| | | /* 配电柜告警规则 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/powerCabinetSetting.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/pageSetting/realTime', |
| | | meta: { |
| | | title: '实时监测页面配置', |
| | | }, |
| | | component: (resolve) => require(['../pages/pageSetting/realTime.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/jobManage/planManage', |
| | | meta: { |
| | | title: '放电计划管理' |
| | | }, |
| | | component: (resolve) => require(['../pages/jobManage/planManage.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/jobManage/btsUpgrade', |
| | | meta: { |
| | | title: 'bts设备升级' |
| | | }, |
| | | component: (resolve) => require(['../pages/jobManage/btsUpgrade.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/jobManage/addplan1', |
| | | meta: { |
| | | title: '放电计划' |
| | | }, |
| | | component: (resolve) => require(['../pages/jobManage/params/addplan1.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/reportStatistics/eleAnalyse', |
| | | meta: { |
| | | title: '电池组统计分析查询' |
| | | }, |
| | | component: (resolve) => require(['../pages/reportStatistics/eleAnalyse.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/reportStatistics/eleMonomer', |
| | | meta: { |
| | | title: '电池单体统计分析查询' |
| | | }, |
| | | component: (resolve) => require(['../pages/reportStatistics/eleMonomer.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/reportStatistics/eleAssess', |
| | | meta: { |
| | | title: '蓄电池组后评估' |
| | | }, |
| | | component: (resolve) => require(['../pages/reportStatistics/eleAssess.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/reportStatistics/taskplan', |
| | | meta: { |
| | | title: '落后单体查询' |
| | | }, |
| | | component: (resolve) => require(['../pages/reportStatistics/taskplan.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/reportStatistics/elestatus', |
| | | meta: { |
| | | title: '电池实时状态查询' |
| | | }, |
| | | component: (resolve) => require(['../pages/reportStatistics/elestatus.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/reportStatistics/endure', |
| | | meta: { |
| | | title: '电池续航能力历史查询' |
| | | }, |
| | | component: (resolve) => require(['../pages/reportStatistics/endure.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/userMager/userInfo', |
| | | meta: { |
| | | title: '用户信息管理', |
| | | }, |
| | | component: (resolve) => require(['../pages/userMager/userInfo.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/userMager/powerMager', |
| | | meta: { |
| | | title: '权限管理', |
| | | }, |
| | | component: (resolve) => require(['../pages/userMager/powerMager.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/userMager/baojiMager', |
| | | meta: { |
| | | title: '包机组管理', |
| | | }, |
| | | component: (resolve) => require(['../pages/userMager/baojiMager.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/userMager/operationRecord', |
| | | meta: { |
| | | title: '操作记录管理', |
| | | }, |
| | | component: (resolve) => require(['../pages/userMager/operationRecord.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/userMager/groupManage', |
| | | meta: { |
| | | title: '班组管理', |
| | | }, |
| | | component: (resolve) => require(['../pages/userMager/groupManage.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/pageSetting/chartMapSetting', |
| | | meta: { |
| | | title: '地图配置', |
| | | }, |
| | | component: (resolve) => require(['../pages/pageSetting/chartMapSetting'], resolve) |
| | | }, |
| | | { |
| | | path: '/pageSetting/threeHomeSetting', |
| | | meta: { |
| | | title: '3D机房配置', |
| | | }, |
| | | component: (resolve) => require(['../pages/pageSetting/threeHomeSetting'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataTest/standardLine', |
| | | meta: { |
| | | title: '标准曲线', |
| | | }, |
| | | component: (resolve) => require(['../pages/dataTest/standardLine.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/reportStatistics/powerReport', |
| | | meta: { |
| | | title: '通信电源报表', |
| | | }, |
| | | component: (resolve) => require(['../pages/reportStatistics/powerReport.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/test/', |
| | | meta: { |
| | | title: '测试模块', |
| | | }, |
| | | component: resolve => require(['../pages/test/index.vue'], resolve), |
| | | children: [ |
| | | { |
| | | path: 'lineMarkPoint', |
| | | meta: { |
| | | title: '测试折线图模块极值点', |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | path: '/real-time', |
| | | name: 'realTime', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/realTime.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/history', |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataTest/history.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/history-aio', |
| | | meta: { |
| | | name: '一体机导入记录' |
| | | component: resolve => require(['../pages/test/lineMarkPoint.vue'], resolve), |
| | | }, |
| | | component: (resolve) => require(['../pages/dataTest/historyAio.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/test', |
| | | meat: {}, |
| | | component: (resolve) => require(['../pages/dataTest/CircuitDiagram.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/battGroupMager', |
| | | meta: { |
| | | name: '电池信息配置' |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/battGroupMager.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/powerMager', |
| | | meta: { |
| | | name: '电源信息配置' |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/powerMager.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/homeAddressInfoManage', |
| | | meta: { |
| | | name: '机房位置信息配置' |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/homeAddressInfoManage.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/produceTotal', |
| | | name: 'produceTotal', |
| | | meta: { |
| | | name: '电池信息统计分析' |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/produceTotal.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/faceManager/userFaceManager', |
| | | name: 'userFaceManager', |
| | | meta: { |
| | | name: '用户人脸管理' |
| | | }, |
| | | component: (resolve) => require(['../pages/faceManager/userFaceManager.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/realTimeData.vue', |
| | | name: 'realTimeData', |
| | | meta: { |
| | | name: '实时监测数据' |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/realTimeData.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/threadMager', |
| | | name: 'threadMager', |
| | | meta: { |
| | | name: '线程信息管理' |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/threadMager.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataAdmian', |
| | | /* 电池充放电数据管理 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataMager/dataAdmian.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/internalTest', |
| | | /*内阻测试 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataMager/internalTest.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dischargeTest', |
| | | /* 电池放电测试 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataMager/dischargeTest.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/historyInfo', |
| | | /* 历史数据管理 */ |
| | | meta: { |
| | | title: '历史数据管理' |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/historyInfoMager.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/batteryMager', |
| | | /* 电池关注管理 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/dataMager/batteryMager.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/device-work-state', |
| | | name: 'deviceWorkState', |
| | | meta: { |
| | | title: '设备工作状态', |
| | | }, |
| | | component: (resolve) => require(['../pages/reportStatistics/deviceWorkState'], resolve) |
| | | }, |
| | | { |
| | | path: '/scrap-battery', |
| | | name: 'scrapBattery', |
| | | meta: { |
| | | title: '报废电池信息管理', |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/scrapBattery.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/repair-battery', |
| | | name: 'repairBattery', |
| | | meta: { |
| | | title: '备件电池信息管理', |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/repairBattery.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/eventTotalPage', |
| | | meta: { |
| | | title: '事件总表', |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/eventTotalPage.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/btsStatus', |
| | | name: 'btsStatusTest', |
| | | meta: { |
| | | title: '核容测试设备', |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/btsStatus.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/powercut', |
| | | meta: { |
| | | title: '机房停电查询', |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/powercut.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/batteryrHistoryquery', |
| | | /* 电池告警历史查询 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/batteryrHistoryquery.vue'], resolve) |
| | | }, |
| | | { |
| | | name: 'batteryrTimequery', |
| | | path: '/batteryrTimequery', |
| | | /* 电池告警实时查询 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/batteryrTimequery.vue'], resolve) |
| | | }, |
| | | { |
| | | name: 'powerRealtimeInfo', |
| | | path: '/powerRealtimeInfo', |
| | | /* 电源实时信息告警 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/powerRealtimeInfo.vue'], resolve) |
| | | }, |
| | | { |
| | | name: 'powerHistoryInfo', |
| | | path: '/powerHistoryInfo', |
| | | /* 电源历史信息告警 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/powerHistoryInfo.vue'], resolve) |
| | | }, |
| | | { |
| | | name: 'powerBoxAlarm', |
| | | path: '/powerBoxAlarm', |
| | | /* 配电柜实时告警 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/powerBoxAlarm.vue'], resolve) |
| | | }, |
| | | { |
| | | name: 'powerBoxHistoryAlarm', |
| | | path: '/powerBoxHistoryAlarm', |
| | | /* 配电柜历史告警 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/powerBoxHistoryAlarm.vue'], resolve) |
| | | }, |
| | | { |
| | | name: 'hfSwitch', |
| | | path: '/hfSwitch', |
| | | /* 高频开关配电柜遥测量 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/hfSwitch.vue'], resolve) |
| | | }, |
| | | { |
| | | name: 'GGDmeasure', |
| | | path: '/GGDmeasure', |
| | | /* 交流配电柜遥测量 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/GGDmeasure.vue'], resolve) |
| | | }, |
| | | { |
| | | name: 'powerAlarmTimeout', |
| | | path: '/powerAlarmTimeout', |
| | | /* 通信电源超时告警 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/powerAlarmTimeout.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/deviceHistoryquery', |
| | | /* 设备告警历史查询 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/deviceHistoryquery.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/deviceTimequery', |
| | | /* 设备告警实时查询 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/deviceTimequery.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/batterypaSetting', |
| | | /* 电池告警参数设置 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/batterypaSetting.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/theFaultSites', |
| | | meta: { |
| | | title: '故障站点', |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/theFaultSites.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataMager/theStatusManager', |
| | | meta: { |
| | | title: '故障站点管理', |
| | | }, |
| | | component: (resolve) => require(['../pages/dataMager/theStatusManager.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/devicepaSetting', |
| | | /* 设备告警参数设置 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/devicepaSetting.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/powerCabinetSetting', |
| | | /* 配电柜告警规则 */ |
| | | meta: {}, |
| | | component: (resolve) => require(['../pages/alarmMager/powerCabinetSetting.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/pageSetting/realTime', |
| | | meta: { |
| | | title: '实时监测页面配置', |
| | | }, |
| | | component: (resolve) => require(['../pages/pageSetting/realTime.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/jobManage/planManage', |
| | | meta: { |
| | | title: '放电计划管理' |
| | | }, |
| | | component: (resolve) => require(['../pages/jobManage/planManage.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/jobManage/btsUpgrade', |
| | | meta: { |
| | | title: 'bts设备升级' |
| | | }, |
| | | component: (resolve) => require(['../pages/jobManage/btsUpgrade.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/jobManage/addplan1', |
| | | meta: { |
| | | title: '放电计划' |
| | | }, |
| | | component: (resolve) => require(['../pages/jobManage/params/addplan1.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/reportStatistics/eleAnalyse', |
| | | meta: { |
| | | title: '电池组统计分析查询' |
| | | }, |
| | | component: (resolve) => require(['../pages/reportStatistics/eleAnalyse.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/reportStatistics/eleMonomer', |
| | | meta: { |
| | | title: '电池单体统计分析查询' |
| | | }, |
| | | component: (resolve) => require(['../pages/reportStatistics/eleMonomer.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/reportStatistics/eleAssess', |
| | | meta: { |
| | | title: '蓄电池组后评估' |
| | | }, |
| | | component: (resolve) => require(['../pages/reportStatistics/eleAssess.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/reportStatistics/taskplan', |
| | | meta: { |
| | | title: '落后单体查询' |
| | | }, |
| | | component: (resolve) => require(['../pages/reportStatistics/taskplan.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/reportStatistics/elestatus', |
| | | meta: { |
| | | title: '电池实时状态查询' |
| | | }, |
| | | component: (resolve) => require(['../pages/reportStatistics/elestatus.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/reportStatistics/endure', |
| | | meta: { |
| | | title: '电池续航能力历史查询' |
| | | }, |
| | | component: (resolve) => require(['../pages/reportStatistics/endure.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/userMager/userInfo', |
| | | meta: { |
| | | title: '用户信息管理', |
| | | }, |
| | | component: (resolve) => require(['../pages/userMager/userInfo.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/userMager/powerMager', |
| | | meta: { |
| | | title: '权限管理', |
| | | }, |
| | | component: (resolve) => require(['../pages/userMager/powerMager.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/userMager/baojiMager', |
| | | meta: { |
| | | title: '包机组管理', |
| | | }, |
| | | component: (resolve) => require(['../pages/userMager/baojiMager.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/userMager/operationRecord', |
| | | meta: { |
| | | title: '操作记录管理', |
| | | }, |
| | | component: (resolve) => require(['../pages/userMager/operationRecord.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/userMager/groupManage', |
| | | meta: { |
| | | title: '班组管理', |
| | | }, |
| | | component: (resolve) => require(['../pages/userMager/groupManage.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/pageSetting/chartMapSetting', |
| | | meta: { |
| | | title: '地图配置', |
| | | }, |
| | | component: (resolve) => require(['../pages/pageSetting/chartMapSetting'], resolve) |
| | | }, |
| | | { |
| | | path: '/pageSetting/threeHomeSetting', |
| | | meta: { |
| | | title: '3D机房配置', |
| | | }, |
| | | component: (resolve) => require(['../pages/pageSetting/threeHomeSetting'], resolve) |
| | | }, |
| | | { |
| | | path: '/dataTest/standardLine', |
| | | meta: { |
| | | title: '标准曲线', |
| | | }, |
| | | component: (resolve) => require(['../pages/dataTest/standardLine.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/reportStatistics/powerReport', |
| | | meta: { |
| | | title: '通信电源报表', |
| | | }, |
| | | component: (resolve) => require(['../pages/reportStatistics/powerReport.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/test/', |
| | | meta: { |
| | | title: '测试模块', |
| | | }, |
| | | component: resolve => require(['../pages/test/index.vue'], resolve), |
| | | children: [ |
| | | { |
| | | path: 'lineMarkPoint', |
| | | meta: { |
| | | title: '测试折线图模块极值点', |
| | | }, |
| | | component: resolve => require(['../pages/test/lineMarkPoint.vue'], resolve), |
| | | { |
| | | path: 'ipInput', |
| | | meta: { |
| | | title: 'IP地址修改', |
| | | }, |
| | | { |
| | | path: 'ipInput', |
| | | meta: { |
| | | title: 'IP地址修改', |
| | | }, |
| | | component: resolve => require(['../pages/test/ipInput.vue'], resolve), |
| | | }, |
| | | { |
| | | path: 'weather', |
| | | meta: { |
| | | title: '天气', |
| | | }, |
| | | component: resolve => require(['../pages/test/weather.vue'], resolve), |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '*', |
| | | name: '', |
| | | meta: { |
| | | crumb: 'NotFound' |
| | | component: resolve => require(['../pages/test/ipInput.vue'], resolve), |
| | | }, |
| | | component: (resolve) => require(['@/pages/404/index.vue'], resolve) |
| | | { |
| | | path: 'weather', |
| | | meta: { |
| | | title: '天气', |
| | | }, |
| | | component: resolve => require(['../pages/test/weather.vue'], resolve), |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '*', |
| | | name: '', |
| | | meta: { |
| | | crumb: 'NotFound' |
| | | }, |
| | | component: (resolve) => require(['@/pages/404/index.vue'], resolve) |
| | | }, |
| | | ]; |