liyangzheng пре 2 година
родитељ
комит
a0ad10b02d

+ 11 - 0
package-lock.json

@@ -11,6 +11,7 @@
         "axios": "^1.4.0",
         "core-js": "^3.8.3",
         "element-ui": "^2.15.13",
+        "js-md5": "^0.7.3",
         "sm-crypto": "^0.3.12",
         "vue": "^2.6.14",
         "vue-router": "^3.5.1",
@@ -5978,6 +5979,11 @@
         "@sideway/pinpoint": "^2.0.0"
       }
     },
+    "node_modules/js-md5": {
+      "version": "0.7.3",
+      "resolved": "https://registry.npmmirror.com/js-md5/-/js-md5-0.7.3.tgz",
+      "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ=="
+    },
     "node_modules/js-message": {
       "version": "1.0.7",
       "resolved": "https://registry.npmmirror.com/js-message/-/js-message-1.0.7.tgz",
@@ -14590,6 +14596,11 @@
         "@sideway/pinpoint": "^2.0.0"
       }
     },
+    "js-md5": {
+      "version": "0.7.3",
+      "resolved": "https://registry.npmmirror.com/js-md5/-/js-md5-0.7.3.tgz",
+      "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ=="
+    },
     "js-message": {
       "version": "1.0.7",
       "resolved": "https://registry.npmmirror.com/js-message/-/js-message-1.0.7.tgz",

+ 1 - 0
package.json

@@ -10,6 +10,7 @@
     "axios": "^1.4.0",
     "core-js": "^3.8.3",
     "element-ui": "^2.15.13",
+    "js-md5": "^0.7.3",
     "sm-crypto": "^0.3.12",
     "vue": "^2.6.14",
     "vue-router": "^3.5.1",

+ 8 - 0
src/api/basic/basic.js

@@ -0,0 +1,8 @@
+import request from '@/utils/request'
+export function forGround(data) {
+    return request({
+        url: '/api/basic_area/list',
+        method: "get",
+        params: data
+    })
+}

+ 17 - 0
src/api/ied/ied.js

@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取scd列表
+export function getscdlist(data){
+    return request({
+        url:"/api/screen/scd/list",
+        method:"get",
+        params:data
+    })
+}
+// 获取ied关系
+export function getiedmse(data){
+    return request({
+        url:"/api/screen/scd/ied/relation",
+        method:"get",
+        params:data
+    })
+}

+ 6 - 1
src/layout/components/SideBar/UserIcon.vue

@@ -96,10 +96,15 @@ export default {
       this.fmtTime = formatDate(time).split(' ')
     },
     async outUser() {
+      console.log(1);
+      localStorage.removeItem('userInfo')
       let res = await loginOut({sessionid:this.userToken})
       if(res ==='ok'){
         this.$router.push("/login")
-        localStorage.removeItem('userInfo')
+        this.$message({
+          type:"success",
+          message:"登出成功"
+        })
       }
     },
     getToken() {

+ 62 - 11
src/utils/request.js

@@ -1,18 +1,60 @@
 import axios from 'axios'
+import md5 from 'js-md5'
 import { Message } from 'element-ui'
 
 // 请求url
 const service = axios.create({
   // baseURL: window.STATIC_CONFIG.proxyUrl, // url = base url + request url
-  baseURL:"http://8.142.173.95:10086/",
+  baseURL: "http://8.142.173.95:10086/",
   timeout: 15000 // request timeout
 })
 
 // 请求前拦截
 service.interceptors.request.use(
   config => {
-    // }
-    return config
+    let user = localStorage.getItem("userInfo")
+    if (user) {
+      user = JSON.parse(user)
+      let userToken = user.sessionid
+      const now = new Date().getTime()
+      const nonce = now + randomString(6)
+      let signparam = ''
+      let signdata = ''
+      const params = config.params
+      const data = config.data
+      if (data) {
+        for (const key in data) {
+          if (data[key] == null) continue
+          const signdataItem = key + '=' + data[key]
+          signdata = signdata + (signdata === '' ? '' : '&') + signdataItem
+        }
+      }
+
+      if (params) {
+        for (const k in params) {
+          if (params[k] == null) continue
+          const signparamItem = k + '=' + params[k]
+          signparam = signparam + (signparam === '' ? '' : '&') + signparamItem
+        }
+      }
+      let signs = signparam + ((signparam === '' || signdata === '') ? '' : '&') + signdata
+      signs = signs + (signs === '' ? '' : '&') + 'auth_nonce=' + nonce + '&auth_time=' + now
+      signs = signs.split('&').sort().join('&')
+
+      signs = signs.replace(/\+/gi, '%20')
+      signs = decodeURIComponent(signs)
+      signs = md5(signs)
+      // }
+      config.headers['Authorization'] = 'Bearer ' + userToken
+      config.headers.auth_time = now
+      config.headers.auth_nonce = nonce
+      config.headers.sign = signs
+      config.headers['content-type'] = 'application/x-www-form-urlencoded'
+      return config
+    } else {
+      return config
+    }
+
   },
   error => {
     // do something with request error
@@ -30,15 +72,24 @@ service.interceptors.response.use(
   error => {
     console.log('request.js err=', error) // for debug
     console.log('request.js err.response=', error.response) // for debug
-    error.response.data.message = error.response.data.message || '未知错误'
-    Message({
-      message: '' + error.response.data.message,
-      type: 'error',
-      duration: 3 * 1000,
-      offset: window.screen.height / 3
-    })
+    // if (error.response.data) {
+    //   error.response.data.message = error.response.data.message || '未知错误'
+    // }
+    // Message({
+    //   message: '' + error.response.data.message,
+    //   type: 'error',
+    //   duration: 3 * 1000,
+    //   offset: window.screen.height / 3
+    // })
     return Promise.reject(error)
   }
 )
-
+const randomString = function (e) {
+  e = e || 32
+  const t = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'
+  const a = t.length
+  let n = ''
+  for (let i = 0; i < e; i++) n += t.charAt(Math.floor(Math.random() * a))
+  return n
+}
 export default service

+ 50 - 14
src/views/dashboard/index.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         home
-        <!-- <button @click="detailsModal = true">测试打开模态框</button> -->
+        <button @click="detailsModal = true">测试打开模态框</button>
         <!-- 详细信息 -->
         <div>
             <el-dialog :visible.sync="detailsModal" width="98%" top="1vh" :height="ceshi">
@@ -11,14 +11,13 @@
                 <div class="inDetailsBox">
                     <div class="inBoxLeft">
                         <el-input style="width: 300px;margin-top: 10px;" v-model="searchFast" placeholder="快速查找"></el-input>
-                        <div class="leftMes">
-                            <span>名称</span>
-                            <span>属于哪个终端</span>
-                        </div>
-                        <div class="leftMes">
-                            <span class="leftMesSpan">名称</span>
-                            <span>属于哪个终端</span>
-                        </div>
+                        <template v-for="(item, index) in modelLeftList">
+                            <div class="leftMes" @click="insideBox(item)">
+                                <span class="leftMesSpan">{{ item.ied_name }}</span>
+                                <span>{{ item.desc }}</span>
+                            </div>
+                        </template>
+
                     </div>
                     <div class="inBoxRight">
                         <!-- 导航栏 -->
@@ -41,9 +40,10 @@
 </template>
 
 <script>
+import { getscdlist,getiedmse } from "@/api/ied/ied"
+import { forGround } from "@/api/basic/basic"
 export default {
     name: 'ScdProjectIndex',
-
     data() {
         return {
             detailsModal: false,
@@ -79,18 +79,43 @@ export default {
                 }
             ],
             selectedIndex: 0,//选中的背景
-            ceshi:"500px"
+            ceshi: "500px",
+            modelLeftList: [],//模态框内列表
+            stationCid:"",
         };
     },
 
     mounted() {
-
+        
+    },
+    created () {
+        this.forMesTo()
+        this.getAllIedLink()
     },
-
     methods: {
         goUrl(item, index) {
             this.selectedIndex = index;
             // 执行你的跳转逻辑
+        },
+        // 拿到首页左侧站点
+        async forMesTo() {
+            let res = await forGround({ pid: "0" })
+            this.modelLeftList = res.data
+        },
+        // 根据站点id拿到站点信息
+        async getAllIedLink() {
+            let res = await getscdlist({ischeckinscd:'1',stationid:"888",pageno:"1"})
+            this.stationCid = res.data[0].id
+            this.getIdBy()
+        },
+        // 根据站点id拿到站点下列表
+        async getIdBy(){
+            let res = await getiedmse({scd_id:this.stationCid})
+            this.modelLeftList = res.data
+        },
+        // 切换盒子
+        insideBox(row){
+            console.log(row,'row');
         }
     },
 };
@@ -125,12 +150,21 @@ export default {
 .leftMes {
     margin: 5px 0;
     display: flex;
-    justify-content: space-around;
+    justify-content: flex-start;
     align-items: center;
+    
 }
 
 .leftMes span {
     display: block;
+    text-align: center;
+}
+.leftMes span:nth-child(1){
+    width: 65px;
+    margin-right: 20px;
+}
+.leftMes span:nth-child(2){
+    width: 220px;
 }
 
 /* 内导航栏 */
@@ -140,9 +174,11 @@ export default {
     margin: 20px 0;
     cursor: pointer;
 }
+
 .tabCard:hover {
     color: skyblue;
 }
+
 .active {
     width: 100px;
     height: 25px;

+ 1 - 0
src/views/login/Login.vue

@@ -75,6 +75,7 @@ export default {
                         })
                         this.$router.push("/")
                         localStorage.setItem('userInfo', JSON.stringify(res.data))
+                        this.rememberUser = false
                     } else if(res.returncode === 500) {
                         this.$message({
                             type:"error",

+ 6 - 1
yarn.lock

@@ -3505,6 +3505,11 @@ joi@^17.4.0:
     "@sideway/formula" "^3.0.1"
     "@sideway/pinpoint" "^2.0.0"
 
+js-md5@^0.7.3:
+  version "0.7.3"
+  resolved "https://registry.npmmirror.com/js-md5/-/js-md5-0.7.3.tgz#b4f2fbb0b327455f598d6727e38ec272cd09c3f2"
+  integrity sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==
+
 js-message@1.0.7:
   version "1.0.7"
   resolved "https://registry.npmmirror.com/js-message/-/js-message-1.0.7.tgz"
@@ -4979,7 +4984,7 @@ slash@^3.0.0:
 
 sm-crypto@^0.3.12:
   version "0.3.12"
-  resolved "https://registry.npmmirror.com/sm-crypto/-/sm-crypto-0.3.12.tgz#c23ec52b5f8a23b2fc4e7467f5738a90cee7b0d2"
+  resolved "https://registry.npmmirror.com/sm-crypto/-/sm-crypto-0.3.12.tgz"
   integrity sha512-272PBzB4PYaBdeGa41TH9ZlMGLPVRmS36Gs4FjmHwXIdihQypAbhhFWZTaa/3de69q2KfMme1M5O2W5+spAdrg==
   dependencies:
     jsbn "^1.1.0"