zhangli před 2 roky
rodič
revize
3c9c00e7c1

+ 13 - 0
package-lock.json

@@ -83,6 +83,7 @@
         "babel-jest": "^23.6.0",
         "babel-plugin-import": "^1.12.0",
         "babel-plugin-transform-remove-console": "^6.9.4",
+        "crypto-js": "^4.1.1",
         "es6-uuid": "^1.0.1",
         "less": "^4.1.1",
         "less-loader": "^6.2.0",
@@ -9447,6 +9448,12 @@
         "node": "*"
       }
     },
+    "node_modules/crypto-js": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.1.1.tgz",
+      "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==",
+      "dev": true
+    },
     "node_modules/css": {
       "version": "2.2.4",
       "resolved": "http://nexus.redxun.cn:18081/repository/npm-redxun-group/css/-/css-2.2.4.tgz",
@@ -33358,6 +33365,12 @@
         "randomfill": "^1.0.3"
       }
     },
+    "crypto-js": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.1.1.tgz",
+      "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==",
+      "dev": true
+    },
     "css": {
       "version": "2.2.4",
       "resolved": "http://nexus.redxun.cn:18081/repository/npm-redxun-group/css/-/css-2.2.4.tgz",

+ 1 - 0
package.json

@@ -87,6 +87,7 @@
     "babel-jest": "^23.6.0",
     "babel-plugin-import": "^1.12.0",
     "babel-plugin-transform-remove-console": "^6.9.4",
+    "crypto-js": "^4.1.1",
     "es6-uuid": "^1.0.1",
     "less": "^4.1.1",
     "less-loader": "^6.2.0",

+ 37 - 0
src/views/modules/knowledge/components/DES.js

@@ -0,0 +1,37 @@
+import cryptoJs from 'crypto-js';
+ 
+//随机生成指定数量的16进制key
+export const generatekey = (num) => {
+    let library = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
+    let key = "";
+    for (var i = 0; i < num; i++) {
+        let randomPoz = Math.floor(Math.random() * library.length);
+        key += library.substring(randomPoz, randomPoz + 1);
+    }
+    return key;
+}
+ 
+//DES加密
+export const encryptDes = (message, key) => {
+    var keyHex = cryptoJs.enc.Utf8.parse(key)
+    var option = { mode: cryptoJs.mode.ECB, padding: cryptoJs.pad.Pkcs7 }
+    var encrypted = cryptoJs.DES.encrypt(message, keyHex, option)
+    return encrypted.ciphertext.toString()
+}
+ 
+ 
+//DES解密
+export const decryptDes = (message, key) => {
+    var keyHex = cryptoJs.enc.Utf8.parse(key)
+    var decrypted = cryptoJs.DES.decrypt(
+        {
+            ciphertext: cryptoJs.enc.Hex.parse(message)
+        },
+        keyHex,
+        {
+            mode: cryptoJs.mode.ECB,
+            padding: cryptoJs.pad.Pkcs7
+        }
+    )
+    return decrypted.toString(cryptoJs.enc.Utf8)
+}

+ 20 - 7
src/views/modules/knowledge/home.vue

@@ -12,8 +12,8 @@
     <search :hideSelect="true" searchWidth="59.58vw" class="searchbar" @searchResult="searchResult"></search>
     <div class="searchBox">
       <div class="tabBoxHome" v-if="showTap">
-        <div v-for="(item, index) in tapArr" :key="index" @click="changeAction(index)" v-show="totalArr[index]!=0">
-          <span>{{item}}</span>
+        <div v-for="(item, index) in tapArr" :key="index" @click="changeAction(index)" v-show="item.show">
+          <span>{{item.name}}</span>
           <img v-if="tapAction==index" src="../../../image/tabAction.png"/>
         </div>
         <div class="orderBox">
@@ -41,7 +41,7 @@ import home from '@/api/knowledge/home'
 import search from './components/search'
 import pageBar from './components/pageBar'
 import pageList from './components/pageList'
- 
+import { encryptDes, decryptDes,generatekey } from './components/DES.js'
 export default {
   name: 'home',
   components: {
@@ -55,13 +55,12 @@ export default {
       orderSort:0,
       orderFiled:0,
       pageNumArr:[],
-      totalArr:[],
+      totalArr:[0,0,0,0],
       listArr:[],
       showTap:false,
       total:0,
       pageSize:10,
-      tapArr:['开放数据','保密数据','公共盘数据','EIP数据'],
-      //tapArrShow:[],
+      tapArr:[{name:'开放数据',show:false},{name:'保密数据',show:false},{name:'公共盘数据',show:false},{name:'EIP数据',show:false}],
       tapAction:0,
       searchData:{
         range:0,
@@ -74,6 +73,11 @@ export default {
   },
   created() {
    this.getBanner()
+  /* var keys = 'hkc'
+   var encrypts = encryptDes('admin',keys);
+   var dess = decryptDes('BbcjV7ot004=',keys)
+   console.log(encrypts)
+   console.log(dess)*/
    //this.getData()
   },
   methods: {
@@ -115,6 +119,7 @@ export default {
           that.dataList = that.listArr[that.tapAction]
         }
       })
+      console.log(sumTotal)
       if(sumTotal==0){
         this.showTap = false
         this.dataList = []
@@ -134,11 +139,19 @@ export default {
         orderSort:this.orderSort,
         orderFiled:this.orderFiled
       }
+      if(num==0){
+        this.tapArr.forEach((item,index) => {
+          item.show=false
+        })
+      }
       home.searchApi(postData).then((res) => {
         if(res.code==200){
           this.pageNumArr[num] = 1
           this.listArr[num] = res.data.records
           this.totalArr[num] = Number(res.data.total)
+          if(Number(res.data.total)!=0){
+            this.tapArr[num].show = true 
+          }
           if(range==2){
             for(var i=1;i<4;i++){
               this.listArr[i] = []
@@ -148,8 +161,8 @@ export default {
           }else{
             if(num!=3){
               this.getDataAll(num+1,type)
+              this.showAllData(type)
             }else{
-              console.log(type)
               this.showAllData(type)
             }
           }

+ 28 - 0
src/views/modules/knowledge/map/index.vue

@@ -6,6 +6,12 @@
       </div>
     </div>
     <div class="rightMenu">
+      <div class="loadingPage" v-show="showLoading">
+        <div class="loadingPageShow">
+          <a-icon type="loading" style="margin-right:10px"/>
+          加载中
+        </div>
+      </div>
       <div @click="changeState(dataArr[showBoxArr.indexOf(index)])" class="pointBox" v-for="(item, index) in pointArr" :key="index" :style="{'top':item.top,'left':item.left}" @mouseover="pointOver(index)" @mouseout="pointOut">
         <div v-if="overArr.indexOf(index)>-1" class="pointTextOver"><p>
           <a-tooltip placement="top">
@@ -92,6 +98,7 @@ export default {
   },
   data() {
     return {
+      showLoading:true,
       noData:false,
       pointNum:-1,
       titleIndex:0,
@@ -236,6 +243,7 @@ export default {
             this.menuIndex = 0
             this.menuDataArr = []
             this.dataArr = []
+            this.showLoading = false
             this.showData()
           }else{
             this.noData = false
@@ -269,6 +277,7 @@ export default {
             }
           });
           this.dataArr = res.data
+          this.showLoading = false
           this.showData()
         }
       })
@@ -304,14 +313,17 @@ export default {
       this.pointNum = -1
     },
     changeType(num){
+      this.showLoading = true
       this.titleIndex = num
       this.getRoutes(this.titleArr[this.titleIndex].pkId)
     },
     leftActionMenu(num){
+      this.showLoading = true
       this.actionMenu = num
       this.getType(this.menuArr[this.actionMenu].value)
     },
     rightActionMenu(num){
+      this.showLoading = true
       this.menuIndex = num
       this.getContentTops(this.menuDataArr[this.menuIndex].pkId)
     }
@@ -523,4 +535,20 @@ export default {
   overflow: hidden;
   white-space:nowrap;
 }
+.loadingPage{
+  width: 100%;
+  height: 100%;
+  background: rgba(0,0,0,0.48);
+  z-index: 20;
+  display: block;
+  position: absolute;
+}
+.loadingPage div{
+  font-size: 1.2vw;
+  color: #fff;
+  height: 100%;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
 </style>

+ 16 - 6
src/views/modules/knowledge/warehouse/searchData.vue

@@ -4,10 +4,10 @@
     <div class="searchHead">
       <search :hideSelect="true" style="margin-bottom: 2vw;" ref="searchTop" searchWidth="59.58vw" class="searchbar" @searchResult="searchResult"></search>
       <div class="tabBoxSearch" v-if="showTap">
-        <div v-for="(item, index) in tapArr" :key="index" @click="changeAction(index)" v-show="totalArr[index]!=0">
-          <span v-if="index==2" style="padding-left: 0vw;">{{item}}</span>
-          <span v-else-if="index==3" style="padding-left: 0.7vw;">{{item}}</span>
-          <span v-else>{{item}}</span>
+        <div v-for="(item, index) in tapArr" :key="index" @click="changeAction(index)" v-show="item.show">
+          <span v-if="index==2" style="padding-left: 0vw;">{{item.name}}</span>
+          <span v-else-if="index==3" style="padding-left: 0.7vw;">{{item.name}}</span>
+          <span v-else>{{item.name}}</span>
           <img v-if="tapAction==index" src="../../../../image/tabAction.png"/>
         </div>
         <div class="orderBox">
@@ -57,7 +57,7 @@ export default {
       pageNum:1,
       total:0,
       pageSize:10,
-      tapArr:['开放数据','保密数据','公共盘数据','EIP数据'],
+      tapArr:[{name:'开放数据',show:false},{name:'保密数据',show:false},{name:'公共盘数据',show:false},{name:'EIP数据',show:false}],
       tapAction:0,
       dataList:[
       ],
@@ -123,7 +123,6 @@ export default {
     },
     // 获取全部数据
     getDataAll(num,type=true){
-      console.log(type)
       let range = this.searchData.range==0?1:this.searchData.range
       let postData = {
         keyword:this.searchData.keyword,
@@ -134,11 +133,21 @@ export default {
         orderSort:this.orderSort,
         orderFiled:this.orderFiled
       }
+      if(num==0){
+        this.tapArr.forEach((item,index) => {
+          item.show=false
+          this.listArr[index] = []
+        })
+        this.dataList=[]
+      }
       home.searchApi(postData).then((res) => {
         if(res.code==200){
           this.pageNumArr[num] = 1
           this.listArr[num] = res.data.records
           this.totalArr[num] = Number(res.data.total)
+          if(Number(res.data.total)!=0){
+            this.tapArr[num].show = true 
+          }
           if(range==2){
             for(var i=1;i<4;i++){
               this.listArr[i] = []
@@ -148,6 +157,7 @@ export default {
           }else{
             if(num!=3){
               this.getDataAll(num+1,type)
+              this.showAllData(type)
             }else{
               this.showAllData(type)
             }