XAWDJ0277HWXPT2\Administrator 5 gadi atpakaļ
vecāks
revīzija
5487495dcb
100 mainītis faili ar 196041 papildinājumiem un 0 dzēšanām
  1. 1 0
      web/css/app.cc990596.css
  2. 1 0
      web/css/chunk-0332dc0e.7aa72fe0.css
  3. 0 0
      web/css/chunk-943af6aa.0e433876.css
  4. 1 0
      web/css/chunk-vendors.2ac5db4b.css
  5. BIN
      web/favicon.ico
  6. BIN
      web/fonts/Alibaba-PuHuiTi-Bold.653ce701.ttf
  7. BIN
      web/fonts/Alibaba-PuHuiTi-Bold.953462ae.eot
  8. BIN
      web/fonts/Alibaba-PuHuiTi-Bold.ab222241.woff
  9. BIN
      web/fonts/Alibaba-PuHuiTi-Heavy.61df5663.ttf
  10. BIN
      web/fonts/Alibaba-PuHuiTi-Heavy.69595ee4.eot
  11. BIN
      web/fonts/Alibaba-PuHuiTi-Heavy.6f06f21e.woff
  12. BIN
      web/fonts/Alibaba-PuHuiTi-Light.1076f17f.ttf
  13. BIN
      web/fonts/Alibaba-PuHuiTi-Light.4baf0eb9.eot
  14. BIN
      web/fonts/Alibaba-PuHuiTi-Light.b7a460e7.woff
  15. BIN
      web/fonts/Alibaba-PuHuiTi-Medium.9b2400d8.woff
  16. BIN
      web/fonts/Alibaba-PuHuiTi-Medium.d942cb19.ttf
  17. BIN
      web/fonts/Alibaba-PuHuiTi-Medium.f4fb8df6.eot
  18. BIN
      web/fonts/Alibaba-PuHuiTi-Regular.51376096.woff
  19. BIN
      web/fonts/Alibaba-PuHuiTi-Regular.6fd83c00.ttf
  20. BIN
      web/fonts/Alibaba-PuHuiTi-Regular.dabe3edc.eot
  21. BIN
      web/fonts/PingFangHeavy.01e128b7.eot
  22. BIN
      web/fonts/PingFangHeavy.70531996.ttf
  23. BIN
      web/fonts/PingFangHeavy.dec9b5b5.woff
  24. BIN
      web/fonts/PingFangMedium.fd782ed4.ttf
  25. BIN
      web/fonts/element-icons.535877f5.woff
  26. BIN
      web/fonts/element-icons.732389de.ttf
  27. 1 0
      web/img/Alibaba-PuHuiTi-Bold.0a6abc36.svg
  28. 1 0
      web/img/Alibaba-PuHuiTi-Heavy.e8d2ed71.svg
  29. 1 0
      web/img/Alibaba-PuHuiTi-Light.6068f1ac.svg
  30. 1 0
      web/img/Alibaba-PuHuiTi-Medium.4375021f.svg
  31. 1 0
      web/img/Alibaba-PuHuiTi-Regular.905c864c.svg
  32. 1 0
      web/img/PingFangHeavy.2ff59a37.svg
  33. BIN
      web/img/user.9c4580fd.jpg
  34. 1 0
      web/index.html
  35. 2 0
      web/js/app.d48e4739.js
  36. 1 0
      web/js/app.d48e4739.js.map
  37. 22 0
      web/js/bmap.min.js
  38. 2 0
      web/js/chunk-0332dc0e.4349bcf3.js
  39. 1 0
      web/js/chunk-0332dc0e.4349bcf3.js.map
  40. 2 0
      web/js/chunk-943af6aa.a56b9235.js
  41. 1 0
      web/js/chunk-943af6aa.a56b9235.js.map
  42. 63 0
      web/js/chunk-vendors.8202404d.js
  43. 1 0
      web/js/chunk-vendors.8202404d.js.map
  44. 90307 0
      web/js/echarts.js
  45. 22 0
      web/js/echarts.min.js
  46. 20 0
      web/js/world.js
  47. 24 0
      webConfig/.eslintrc.js
  48. 22 0
      webConfig/.gitignore
  49. 29 0
      webConfig/README.md
  50. 5 0
      webConfig/babel.config.js
  51. 11674 0
      webConfig/package-lock.json
  52. 51 0
      webConfig/package.json
  53. BIN
      webConfig/public/favicon.ico
  54. 22 0
      webConfig/public/index.html
  55. 22 0
      webConfig/public/js/bmap.min.js
  56. 90307 0
      webConfig/public/js/echarts.js
  57. 22 0
      webConfig/public/js/echarts.min.js
  58. 20 0
      webConfig/public/js/world.js
  59. 265 0
      webConfig/src/App.vue
  60. 189 0
      webConfig/src/api/allUrl.js
  61. 162 0
      webConfig/src/api/base.js
  62. 318 0
      webConfig/src/api/color.js
  63. 1384 0
      webConfig/src/api/jquery.mCustomScrollbar.concat.min.js
  64. 285 0
      webConfig/src/api/jqueryK.js
  65. 181 0
      webConfig/src/api/md5.js
  66. 296 0
      webConfig/src/components/header.vue
  67. BIN
      webConfig/src/img/header_logo.png
  68. BIN
      webConfig/src/img/iconfont/notice.png
  69. BIN
      webConfig/src/img/user.jpg
  70. 49 0
      webConfig/src/main.js
  71. 34 0
      webConfig/src/router.js
  72. 1 0
      webConfig/src/store/Bangladesh.json
  73. 22 0
      webConfig/src/store/echarts.min.js
  74. 133 0
      webConfig/src/store/index.js
  75. 22 0
      webConfig/src/store/lang/en.js
  76. 22 0
      webConfig/src/store/lang/zh.js
  77. 20 0
      webConfig/src/store/world.js
  78. 1 0
      webConfig/src/store/world.json
  79. BIN
      webConfig/src/style/bodoniMT/bodoniMT.ttf
  80. BIN
      webConfig/src/style/font-al/Alibaba-PuHuiTi-Bold.eot
  81. 1 0
      webConfig/src/style/font-al/Alibaba-PuHuiTi-Bold.svg
  82. BIN
      webConfig/src/style/font-al/Alibaba-PuHuiTi-Bold.ttf
  83. BIN
      webConfig/src/style/font-al/Alibaba-PuHuiTi-Bold.woff
  84. BIN
      webConfig/src/style/font-al/Alibaba-PuHuiTi-Heavy.eot
  85. 1 0
      webConfig/src/style/font-al/Alibaba-PuHuiTi-Heavy.svg
  86. BIN
      webConfig/src/style/font-al/Alibaba-PuHuiTi-Heavy.ttf
  87. BIN
      webConfig/src/style/font-al/Alibaba-PuHuiTi-Heavy.woff
  88. BIN
      webConfig/src/style/font-al/Alibaba-PuHuiTi-Light.eot
  89. 1 0
      webConfig/src/style/font-al/Alibaba-PuHuiTi-Light.svg
  90. BIN
      webConfig/src/style/font-al/Alibaba-PuHuiTi-Light.ttf
  91. BIN
      webConfig/src/style/font-al/Alibaba-PuHuiTi-Light.woff
  92. BIN
      webConfig/src/style/font-al/Alibaba-PuHuiTi-Medium.eot
  93. 1 0
      webConfig/src/style/font-al/Alibaba-PuHuiTi-Medium.svg
  94. BIN
      webConfig/src/style/font-al/Alibaba-PuHuiTi-Medium.ttf
  95. BIN
      webConfig/src/style/font-al/Alibaba-PuHuiTi-Medium.woff
  96. BIN
      webConfig/src/style/font-al/Alibaba-PuHuiTi-Regular.eot
  97. 1 0
      webConfig/src/style/font-al/Alibaba-PuHuiTi-Regular.svg
  98. BIN
      webConfig/src/style/font-al/Alibaba-PuHuiTi-Regular.ttf
  99. BIN
      webConfig/src/style/font-al/Alibaba-PuHuiTi-Regular.woff
  100. 0 0
      webConfig/src/style/font-pf/PingFangHeavy.eot

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
web/css/app.cc990596.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
web/css/chunk-0332dc0e.7aa72fe0.css


+ 0 - 0
web/css/chunk-943af6aa.0e433876.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
web/css/chunk-vendors.2ac5db4b.css


BIN
web/favicon.ico


BIN
web/fonts/Alibaba-PuHuiTi-Bold.653ce701.ttf


BIN
web/fonts/Alibaba-PuHuiTi-Bold.953462ae.eot


BIN
web/fonts/Alibaba-PuHuiTi-Bold.ab222241.woff


BIN
web/fonts/Alibaba-PuHuiTi-Heavy.61df5663.ttf


BIN
web/fonts/Alibaba-PuHuiTi-Heavy.69595ee4.eot


BIN
web/fonts/Alibaba-PuHuiTi-Heavy.6f06f21e.woff


BIN
web/fonts/Alibaba-PuHuiTi-Light.1076f17f.ttf


BIN
web/fonts/Alibaba-PuHuiTi-Light.4baf0eb9.eot


BIN
web/fonts/Alibaba-PuHuiTi-Light.b7a460e7.woff


BIN
web/fonts/Alibaba-PuHuiTi-Medium.9b2400d8.woff


BIN
web/fonts/Alibaba-PuHuiTi-Medium.d942cb19.ttf


BIN
web/fonts/Alibaba-PuHuiTi-Medium.f4fb8df6.eot


BIN
web/fonts/Alibaba-PuHuiTi-Regular.51376096.woff


BIN
web/fonts/Alibaba-PuHuiTi-Regular.6fd83c00.ttf


BIN
web/fonts/Alibaba-PuHuiTi-Regular.dabe3edc.eot


BIN
web/fonts/PingFangHeavy.01e128b7.eot


BIN
web/fonts/PingFangHeavy.70531996.ttf


BIN
web/fonts/PingFangHeavy.dec9b5b5.woff


BIN
web/fonts/PingFangMedium.fd782ed4.ttf


BIN
web/fonts/element-icons.535877f5.woff


BIN
web/fonts/element-icons.732389de.ttf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
web/img/Alibaba-PuHuiTi-Bold.0a6abc36.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
web/img/Alibaba-PuHuiTi-Heavy.e8d2ed71.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
web/img/Alibaba-PuHuiTi-Light.6068f1ac.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
web/img/Alibaba-PuHuiTi-Medium.4375021f.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
web/img/Alibaba-PuHuiTi-Regular.905c864c.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
web/img/PingFangHeavy.2ff59a37.svg


BIN
web/img/user.9c4580fd.jpg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
web/index.html


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 2 - 0
web/js/app.d48e4739.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
web/js/app.d48e4739.js.map


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 22 - 0
web/js/bmap.min.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 2 - 0
web/js/chunk-0332dc0e.4349bcf3.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
web/js/chunk-0332dc0e.4349bcf3.js.map


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 2 - 0
web/js/chunk-943af6aa.a56b9235.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
web/js/chunk-943af6aa.a56b9235.js.map


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 63 - 0
web/js/chunk-vendors.8202404d.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
web/js/chunk-vendors.8202404d.js.map


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 90307 - 0
web/js/echarts.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 22 - 0
web/js/echarts.min.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 20 - 0
web/js/world.js


+ 24 - 0
webConfig/.eslintrc.js

@@ -0,0 +1,24 @@
+module.exports = {
+  root: true,
+  env: {
+    node: true,
+    jquery: true
+  },
+  'extends': [
+    'plugin:vue/essential',
+    'eslint:recommended'
+  ],
+  rules: {
+    // 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
+    'no-console': 'off',
+    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
+    'no-control-regex': 'off',
+    "no-undef": 'off',
+  //   'no-useless-escape': 'off',
+  //   'no-redeclare':'off',
+  //   'no-empty':'off'
+  },
+  parserOptions: {
+    parser: 'babel-eslint'
+  }
+}

+ 22 - 0
webConfig/.gitignore

@@ -0,0 +1,22 @@
+.DS_Store
+node_modules
+/dist
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?

+ 29 - 0
webConfig/README.md

@@ -0,0 +1,29 @@
+# idcol
+
+## Project setup
+```
+npm install
+```
+
+### Compiles and hot-reloads for development
+```
+npm run serve
+```
+
+### Compiles and minifies for production
+```
+npm run build
+```
+
+### Run your tests
+```
+npm run test
+```
+
+### Lints and fixes files
+```
+npm run lint
+```
+
+### Customize configuration
+See [Configuration Reference](https://cli.vuejs.org/config/).

+ 5 - 0
webConfig/babel.config.js

@@ -0,0 +1,5 @@
+module.exports = {
+  presets: [
+    '@vue/cli-plugin-babel/preset'
+  ]
+}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 11674 - 0
webConfig/package-lock.json


+ 51 - 0
webConfig/package.json

@@ -0,0 +1,51 @@
+{
+  "name": "idcol",
+  "version": "0.1.0",
+  "private": true,
+  "scripts": {
+    "serve": "vue-cli-service serve",
+    "build": "vue-cli-service build",
+    "lint": "vue-cli-service lint"
+  },
+  "dependencies": {
+    "axios": "^0.19.2",
+    "core-js": "^3.6.5",
+    "echarts": "^4.8.0",
+    "element-ui": "^2.13.2",
+    "jquery": "^3.5.1",
+    "vue": "^2.6.11",
+    "vue-i18n": "^8.18.1",
+    "vue-router": "^3.3.1",
+    "vuex": "^3.4.0"
+  },
+  "devDependencies": {
+    "@vue/cli-plugin-babel": "^4.4.0",
+    "@vue/cli-plugin-eslint": "^4.4.0",
+    "@vue/cli-service": "^4.4.0",
+    "babel-eslint": "^10.1.0",
+    "eslint": "^6.7.2",
+    "eslint-plugin-vue": "^6.2.2",
+    "less": "^3.11.1",
+    "less-loader": "^6.1.0",
+    "vue-template-compiler": "^2.6.11"
+  },
+  "eslintConfig": {
+    "root": true,
+    "env": {
+      "node": true
+    },
+    "extends": [
+      "plugin:vue/essential",
+      "eslint:recommended"
+    ],
+    "parserOptions": {
+      "parser": "babel-eslint"
+    },
+    "rules": {}
+  },
+  "browserslist": [
+    "> 1%",
+    "last 2 versions",
+    "not dead"
+  ]
+}

BIN
webConfig/public/favicon.ico


+ 22 - 0
webConfig/public/index.html

@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width,initial-scale=1.0">
+    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
+    <link rel="stylesheet" type="text/css" href="https://at.alicdn.com/t/font_1849275_hr9iytwakba.css">
+    <title>IDCOL</title>
+  </head>
+  <body>
+<!--     <script type="text/javascript" src="https://api.map.baidu.com/api?v=1.0&type=webgl&ak=z5ACfk8evETAXwjqpdHjFgbKS8h6y2M8"></script>
+    <script type="text/javascript" src="./bmap.min.js"></script> -->
+    <!-- <script type="text/javascript" src="js/echarts.min.js"></script> -->
+    <script type="text/javascript" src="js/echarts.js"></script>
+    <noscript>
+      <strong>We're sorry but IDCOL doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
+    </noscript>
+    <div id="app"></div>
+    <!-- built files will be auto injected -->
+  </body>
+</html>

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 22 - 0
webConfig/public/js/bmap.min.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 90307 - 0
webConfig/public/js/echarts.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 22 - 0
webConfig/public/js/echarts.min.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 20 - 0
webConfig/public/js/world.js


+ 265 - 0
webConfig/src/App.vue

@@ -0,0 +1,265 @@
+<template>
+    <div id="app">
+        <Header/>
+        <div class="scrollbar_style">
+            <router-view></router-view>
+        </div>
+    </div>
+</template>
+
+<script>
+
+import Header from './components/header.vue'
+import { mapGetters } from 'vuex'
+
+export default {
+    name: 'App',
+    computed:{
+        ...mapGetters({
+            token:'token',
+            client_key:'client_key',
+            username:'username',
+            version:'version',
+            
+            routerStr:'routerStr',
+
+            avatar:'avatar',
+
+        }),
+    },
+    components: {
+        Header
+    },
+    created(){
+        let linkTypeArr =  window.location.href.split("/");
+        let linkType = linkTypeArr[linkTypeArr.length-1];
+        this.$store.commit('ROUTERSTRFUN',{
+            routerStr:'/'+linkType
+        })
+        document.title = 'inHealth-'+linkType
+
+        this.$router.beforeEach((to, from, next) => {
+            // console.log(to.path,'--------')
+            if(to.path == '/login'||to.path == '/retrievePassword'){
+                this.headersShow = false
+            }else{
+                this.headersShow = true
+            }
+            console.log(this.headersShow)
+            this.$store.commit('ROUTERSTRFUN',{
+                routerStr:to.path
+            })
+
+            next();
+        })
+    },
+    mounted(){
+        let this_ = this;
+        let width = document.body.offsetWidth;
+        if(width >= 1920){
+            $('html').css({'font-size':'95.01%'})
+            this.$store.commit('REMRATIOFUN',{
+                remRatio:0.9501*16,
+            })
+        }else{
+            $('html').css({'font-size':width*62.5/1200+'%'})
+            this.$store.commit('REMRATIOFUN',{
+                remRatio:width*62.5/1200/100*16,
+            })
+        }
+        window.onresize = function(){
+            width = document.body.offsetWidth;
+            // console.log(width)
+            if(width >= 1920){
+                $('html').css({'font-size':'95.01%'})
+                this_.$store.commit('REMRATIOFUN',{
+                    remRatio:0.9501*16,
+                })
+            }else{
+                $('html').css({'font-size':width*62.5/1200+'%'})
+                this_.$store.commit('REMRATIOFUN',{
+                    remRatio:width*62.5/1200/100*16,
+                })
+            }
+            this_.$store.commit('UPDATEREMRATIOFUN',{
+                updateRemRatio:this_.updateRemRatio+1,
+            })
+            
+        }
+    }
+}
+</script>
+
+<style type="text/css" lang="less">
+
+    @font-face {
+        font-family: 'PingFang-SC-Heavy';
+        src: url('./style/font-pf/PingFangHeavy.eot');
+        src:
+          url('./style/font-pf/PingFangHeavy.eot?#font-spider') format('embedded-opentype'),
+          url('./style/font-pf/PingFangHeavy.woff') format('woff'),
+          url('./style/font-pf/PingFangHeavy.ttf') format('truetype'),
+          url('./style/font-pf/PingFangHeavy.svg') format('svg');
+        font-weight: normal;
+        font-style: normal;
+    }
+    @font-face {
+        font-family: 'PingFangSC-Medium';
+        src: url('./style/font-pf/PingFangMedium.ttf');
+        font-weight: normal;
+        font-style: normal;
+    }
+
+    @font-face {
+        font-family: 'AlibabaPuHuiTiR';
+        src: url('./style/font-al/Alibaba-PuHuiTi-Regular.eot');
+        src:
+          url('./style/font-al/Alibaba-PuHuiTi-Regular.eot?#font-spider') format('embedded-opentype'),
+          url('./style/font-al/Alibaba-PuHuiTi-Regular.woff') format('woff'),
+          url('./style/font-al/Alibaba-PuHuiTi-Regular.ttf') format('truetype'),
+          url('./style/font-al/Alibaba-PuHuiTi-Regular.svg') format('svg');
+        font-weight: normal;
+        font-style: normal;
+    }
+    @font-face {
+        font-family: 'AlibabaPuHuiTiH';
+        src: url('./style/font-al/Alibaba-PuHuiTi-Heavy.ttf');
+        src:
+          url('./style/font-al/Alibaba-PuHuiTi-Heavy.eot?#font-spider') format('embedded-opentype'),
+          url('./style/font-al/Alibaba-PuHuiTi-Heavy.woff') format('woff'),
+          url('./style/font-al/Alibaba-PuHuiTi-Heavy.ttf') format('truetype'),
+          url('./style/font-al/Alibaba-PuHuiTi-Heavy.svg') format('svg');
+        font-weight: normal;
+        font-style: normal;
+    }
+    @font-face {
+        font-family: 'AlibabaPuHuiTiB';
+        src: url('./style/font-al/Alibaba-PuHuiTi-Bold.ttf');
+        src:
+          url('./style/font-al/Alibaba-PuHuiTi-Bold.eot?#font-spider') format('embedded-opentype'),
+          url('./style/font-al/Alibaba-PuHuiTi-Bold.woff') format('woff'),
+          url('./style/font-al/Alibaba-PuHuiTi-Bold.ttf') format('truetype'),
+          url('./style/font-al/Alibaba-PuHuiTi-Bold.svg') format('svg');
+        font-weight: normal;
+        font-style: normal;
+    }
+    @font-face {
+        font-family: 'AlibabaPuHuiTiL';
+        src: url('./style/font-al/Alibaba-PuHuiTi-Light.ttf');
+        src:
+          url('./style/font-al/Alibaba-PuHuiTi-Light.eot?#font-spider') format('embedded-opentype'),
+          url('./style/font-al/Alibaba-PuHuiTi-Light.woff') format('woff'),
+          url('./style/font-al/Alibaba-PuHuiTi-Light.ttf') format('truetype'),
+          url('./style/font-al/Alibaba-PuHuiTi-Light.svg') format('svg');
+        font-weight: normal;
+        font-style: normal;
+    }
+    @font-face {
+        font-family: 'AlibabaPuHuiTiM';
+        src: url('./style/font-al/Alibaba-PuHuiTi-Medium.ttf');
+        src:
+          url('./style/font-al/Alibaba-PuHuiTi-Medium.eot?#font-spider') format('embedded-opentype'),
+          url('./style/font-al/Alibaba-PuHuiTi-Medium.woff') format('woff'),
+          url('./style/font-al/Alibaba-PuHuiTi-Medium.ttf') format('truetype'),
+          url('./style/font-al/Alibaba-PuHuiTi-Medium.svg') format('svg');
+        font-weight: normal;
+        font-style: normal;
+    }
+    // @font-face {
+    //     font-family: 'bodoni-MT';
+    //     src: url('./style/bodoniMT/bodoniMT.ttf');
+    // }
+
+    html,body,p,h1,h2,h3,h4,h5,ul,li{
+        margin: 0px;
+        padding: 0px;
+    }
+    html,body,#app{
+          height: 100%;
+          width:100%;
+    }
+    li{
+        list-style:none;/*li去点*/
+        box-sizing: border-box;
+    }
+    a{
+        text-decoration: none;
+        box-sizing: border-box;
+    }
+    i{
+        font-style: inherit;
+    }
+    input{
+        padding:0;
+        outline-style: none;
+        box-sizing: border-box;
+    }
+    div{
+        box-sizing: border-box; //border、padding并入宽度。
+    }
+      /*滚动条样式*/
+    .el-table__body-wrapper::-webkit-scrollbar {/*滚动条整体样式*/
+        width: 3px;     /*高宽分别对应横竖滚动条的尺寸*/
+        height: 5px;
+    }
+    .el-table__body-wrapper::-webkit-scrollbar-thumb {/*滚动条里面小方块*/
+        border-radius: 3px;
+        background: #DAE6E0;
+    }
+    .el-table__body-wrapper::-webkit-scrollbar-track {/*滚动条里面轨道*/
+        background: #F6F8F7;
+    }
+    .el-table{
+        th>.cell,td>.cell{
+            padding: 0;
+        }
+        .el-table__body-wrapper{
+            width: calc(100% - 8px);
+            margin-right: 8px;
+        }
+    }
+
+    .scrollbar_style{
+        // margin-right: 8px;
+        overflow: auto;
+    }
+      /*.scrollbar_style::-webkit-scrollbar-button{
+         width: 10px;
+         height: 10px;
+      }*/
+    .scrollbar_style::-webkit-scrollbar {/*滚动条整体样式*/
+        width: 3px;     /*高宽分别对应横竖滚动条的尺寸*/
+        height: 5px;
+    }
+    .scrollbar_style::-webkit-scrollbar-thumb {/*滚动条里面小方块*/
+        border-radius: 3px;
+        background: #DAE6E0;
+    }
+    .scrollbar_style::-webkit-scrollbar-track {/*滚动条里面轨道*/
+        background: #F6F8F7;
+    }
+    #app{
+
+        >.scrollbar_style{
+            // width: calc(100% - 8px);
+            width: calc(100%);
+            height: calc(100% - 4.1rem);
+            &.padding{
+                padding-top: 4.2rem;
+            }
+        }
+    }
+    .el-dropdown-menu__item:focus, .el-dropdown-menu__item:not(.is-disabled):hover{
+        color: initial;
+        background-color: #f5f7fa;
+    }
+    .el-dropdown-menu{
+        max-height: 360px;
+        .el-dropdown-menu__item{
+            &.select{
+                color: #409eff;
+                font-weight: 700;
+            }
+        }
+    }
+</style>

+ 189 - 0
webConfig/src/api/allUrl.js

@@ -0,0 +1,189 @@
+const urls={
+	websocket:{
+		ws:'ws://www.inhealth.iotena.com/wss',
+	},
+	login:{
+		get_code_image:'https://www.inhealth.iotena.com/api/common/get_code_image',/*获取验证码图片*/
+		login:'https://www.inhealth.iotena.com/api/common/login',/*登陆*/
+		getCode:'https://www.inhealth.iotena.com/api/common/get_code',/*忘记密码获取邮箱验证码*/
+		chargePassword:'https://www.inhealth.iotena.com/api/common/charge_password',/*忘记密码设置新密码*/
+	},
+	dashboard:{
+		countryList:'https://www.inhealth.iotena.com/api/area/country_list',/*导航栏国家下拉*/
+		provinceList:'https://www.inhealth.iotena.com/api/area/province_list',/*导航栏省份下拉*/
+		cityList:'https://www.inhealth.iotena.com/api/area/city_list',/*导航栏城市下拉*/
+		homeData:'https://www.inhealth.iotena.com/api/home/data',/*首页概览数据*/
+		hotelList:'https://www.inhealth.iotena.com/api/area/hotel_list',/*酒店下拉列表*/
+		hotelView:'https://www.inhealth.iotena.com/api/home/hotel_view',/*酒店概览列表*/
+		alarmInfo:'https://www.inhealth.iotena.com/api/home/alarm_info',/*故障信息*/
+		getHotelWeather:'https://www.inhealth.iotena.com/api/home/get_hotel_weather',/*酒店天气信息*/
+		roomEnvStatus:'https://www.inhealth.iotena.com/api/home/room_env_status',/*首页空气质量跟传感器平均数据*/
+		energyConsumption:'https://www.inhealth.iotena.com/api/home/energy_consumption',/*首页用电量统计信息表*/
+		lightingUseSchedule:'https://www.inhealth.iotena.com/api/home/lighting_use_schedule',/*首页设备工作时间统计信息*/
+		roomTemAvg:'https://www.inhealth.iotena.com/api/home/room_tem_avg',/*房间平均温度统计信息*/
+		homeMap:'https://www.inhealth.iotena.com/api/home/home_map',/*地图酒店*/
+	},
+	room:{
+		buildNav:'https://www.inhealth.iotena.com/api/room/build_nav',/*楼房下拉列表*/
+		floorNav:'https://www.inhealth.iotena.com/api/area/floor_nav',/*楼层下拉列表*/
+		roomList:'https://www.inhealth.iotena.com/api/room/room_list',/*房间列表*/
+		roomNav:'https://www.inhealth.iotena.com/api/room/room_nav',/*房间下拉列表*/
+		roomCmd:'https://www.inhealth.iotena.com/api/room/room_cmd',/*房间指令*/
+		floorBuildImage:'https://www.inhealth.iotena.com/api/area/floor_build_image',/**/
+
+		getPlaneLayoutInfo:'https://www.inhealth.iotena.com/api/area/get_plane_layout_info',/*获取平面布局信息*/
+		setDevLocation:'https://www.inhealth.iotena.com/api/area/set_dev_location',/*修改设备位置信息*/
+		setPlaneLayoutInfo:'https://www.inhealth.iotena.com/api/area/set_plane_layout_info',/*批量添加设备*/
+		getPlaneLayoutDevInfo:'https://www.inhealth.iotena.com/api/area/get_plane_layout_dev_info',/*平面布局设备信息概览*/
+		updateDevInfo:'https://www.inhealth.iotena.com/api/area/update_dev_info',/*编辑设备信息*/
+		setLayoutImage:'https://www.inhealth.iotena.com/api/area/set_layout_image',/*楼层绑定平面图*/
+		getLayoutImage:'https://www.inhealth.iotena.com/api/area/get_layout_image',/*获取楼层平面图*/
+		getInputExcel:'https://www.inhealth.iotena.com/api/area/get_input_excel',/*获取批量导入excel模版下载地址*/
+		batchInput:'https://www.inhealth.iotena.com/api/area/batch_input',/*批量导入绑定设备地址*/
+		copyDevList:'https://www.inhealth.iotena.com/api/area/copy_dev_list',/*拷贝设备*/
+		delDev:'https://www.inhealth.iotena.com/api/area/del_dev',
+		userAuthentication:'https://www.inhealth.iotena.com/api/area/User_authentication',/*验证当前账户*/
+	},
+	roomLight:{
+		lightList:'https://www.inhealth.iotena.com/api/lamp/light_list',/*设备列表*/
+		lightInfo:'https://www.inhealth.iotena.com/api/lamp/light_info',/*设备详情*/
+		lampCmd:'https://www.inhealth.iotena.com/api/lamp/lamp_cmd',/*设备调光调色温*/
+		saveLight:'https://www.inhealth.iotena.com/api/lamp/save_light',/*添加编辑设备*/
+		delLight:'https://www.inhealth.iotena.com/api/lamp/del_light',/*删除设备*/
+		lampLight:'https://www.inhealth.iotena.com/api/lamp/lamp_light',/*单独调光*/
+		lampColor:'https://www.inhealth.iotena.com/api/lamp/lamp_color',/*单独调色温*/
+		// lampColorRgb:'https://www.inhealth.iotena.com/api/lamp/lamp_color_rgb',/*单独设置颜色*/
+		lampReport:'https://www.inhealth.iotena.com/api/lamp/lamp_report',/*设备日志信息*/
+		lampTurn:'https://www.inhealth.iotena.com/api/lamp/lamp_turn',/*开关灯*/
+
+		sensorList:'https://www.inhealth.iotena.com/api/sensor/sensor_list',/*设备列表*/
+		saveSensor:'https://www.inhealth.iotena.com/api/sensor/save_sensor',/*添加编辑设备*/
+		sensorInfo:'https://www.inhealth.iotena.com/api/sensor/sensor_info',/*设备详情*/
+		delSensor:'https://www.inhealth.iotena.com/api/sensor/del_sensor',/*删除设备*/
+		sensorHistory:'https://www.inhealth.iotena.com/api/sensor/sensor_history',/*设备历史记录*/
+		updateSensorInfo:'https://www.inhealth.iotena.com/api/sensor/update_sensor_info',/*更新设备数据*/
+
+		purifierList:'https://www.inhealth.iotena.com/api/purifier/purifier_list',/*设备列表*/
+		savePurifier:'https://www.inhealth.iotena.com/api/purifier/save_purifier',/*添加编辑设备*/
+		purifierInfo:'https://www.inhealth.iotena.com/api/purifier/purifier_info',/*设备详情*/
+		delPurifier:'https://www.inhealth.iotena.com/api/purifier/del_purifier',/*删除设备*/
+		trunOffDevice:'https://www.inhealth.iotena.com/api/purifier/trun_off_device',/*开关空气净化器*/
+		// purifierReport:'https://www.inhealth.iotena.com/api/purifier/purifier_report',/*设备日志信息*/
+		lampLightAsy:'https://www.inhealth.iotena.com/api/lamp/lamp_light_asy',/*批量调光*/
+		lampColorAsy:'https://www.inhealth.iotena.com/api/lamp/lamp_color_asy',/*批量调色温*/
+		lampColorRgb:'https://www.inhealth.iotena.com/api/lamp/lamp_color_rgb',/*批量调颜色*/
+		lightLightStd:'https://www.inhealth.iotena.com/api/light/Light_light_std',/*单通道调光*/
+
+		lampLogList:'https://www.inhealth.iotena.com/api/lamp/log_list',/*设备日志信息列表*/
+		purifierReport:'https://www.inhealth.iotena.com/api/purifier/purifier_report',/*设备日志信息列表*/
+		purifierLogList:'https://www.inhealth.iotena.com/api/purifier/log_list',/*设备日志信息列表*/
+		sensorLogList:'https://www.inhealth.iotena.com/api/sensor/log_list',/*设备日志信息列表*/
+
+		reData:'https://www.inhealth.iotena.com/api/lamp/re_data',/*刷新数据*/
+
+		getHotelEditforecast:'https://www.inhealth.iotena.com/api/light/get_hotel_editforecast',/*修改设备日出时间日落时间*/
+		getHotelPattern:'https://www.inhealth.iotena.com/api/light/get_hotel_pattern',/*模式调光*/
+		getHotelForecast:'https://www.inhealth.iotena.com/api/light/get_hotel_forecast',/*获取酒店默认日出日落时间*/
+
+		excelList:'https://www.inhealth.iotena.com/api/light/excelList',/*显示当前用户上传的文件列表*/
+		CirExcel:'https://www.inhealth.iotena.com/api/light/CirExcel',/*上传计划*/
+		del:'https://www.inhealth.iotena.com/api/light/del',/*删除计划*/
+		load:'https://www.inhealth.iotena.com/api/light/load',/*下载计划*/
+		plan:'https://www.inhealth.iotena.com/api/light/plan',/*计划下拉列表*/
+		addplan:'https://www.inhealth.iotena.com/api/light/addplan',/*绑定计划*/
+		download:'https://www.inhealth.iotena.com/api/light/download',/*下载模板*/
+
+		newTime:'https://www.inhealth.iotena.com/api/light/new_time',/*初始化时间*/
+		lightTest:'https://www.inhealth.iotena.com/api/light/test',/*run两分钟测试*/
+		sleepOpen:'https://www.inhealth.iotena.com/api/light/sleepOpen',/*起床睡觉模式*/
+
+		lightLampLight:'https://www.inhealth.iotena.com/api/light/lamp_light',/*调光*/
+		lightLampColor:'https://www.inhealth.iotena.com/api/light/lamp_color',/*调色温*/
+	},
+	gateway:{
+		getlist:'https://www.inhealth.iotena.com/api/network/getlist',/*网关列表*/
+		addRoomNet:'https://www.inhealth.iotena.com/api/network/addRoomNet',/*添加网关*/
+		delRoomNet:'https://www.inhealth.iotena.com/api/network/delRoomNet',/*删除网关*/
+		getLamp:'https://www.inhealth.iotena.com/api/network/getLamp',/*获取设备列表*/
+		addNetLamp:'https://www.inhealth.iotena.com/api/network/addNetLamp',/*设备绑定网关*/
+		statusControl:'https://www.inhealth.iotena.com/api/network/statusControl',/*灯闪*/
+		inspecTimeNav:'https://www.inhealth.iotena.com/api/network/inspec_time_nav',/*获取巡检时间下拉*/
+
+		checkUpdate:'https://www.inhealth.iotena.com/api/network/check_update',/*检查更新*/
+		updateFire:'https://www.inhealth.iotena.com/api/network/update_fire',/*固件升级*/
+
+		getWifiName:'https://www.inhealth.iotena.com/api/network/get_wifi_name',/*获取网关绑定的wifi名称*/
+		setWifi:'https://www.inhealth.iotena.com/api/network/set_wifi',/*设置wifi*/
+		getWifiList:'https://www.inhealth.iotena.com/api/network/get_wifi_list',/*获取wifi列表*/
+
+	},
+	service:{
+		getList:'https://www.inhealth.iotena.com/api/alarm/get_list',/*故障信息列表*/
+		delAlarm:'https://www.inhealth.iotena.com/api/alarm/del_alarm',/*删除故障*/
+		alarmInfo:'https://www.inhealth.iotena.com/api/alarm/alarm_info',/*故障详情*/
+		repairGetList:'https://www.inhealth.iotena.com/api/repair/get_list',/*维修人员信息列表*/
+		saveRepair:'https://www.inhealth.iotena.com/api/repair/save_repair',/*添加编辑维修人员*/
+		delRepair:'https://www.inhealth.iotena.com/api/repair/del_repair',/*删除维修人员*/
+		repairAuthList:'https://www.inhealth.iotena.com/api/repair/repair_auth_list',/*获取维修人员酒店权限*/
+		setRepairAuth:'https://www.inhealth.iotena.com/api/repair/set_repair_auth',/*设置维修人员酒店权限*/
+		repairStatis:'https://www.inhealth.iotena.com/api/alarm/repair_statis',/*故障统计信息*/
+		repairNav:'https://www.inhealth.iotena.com/api/repair/repair_nav',/*维修人员下拉*/
+		repairDispatch:'https://www.inhealth.iotena.com/api/repair/repair_dispatch',/*维修调度*/
+		repairDeal:'https://www.inhealth.iotena.com/api/repair/repair_deal',/*维修调度*/
+
+		hotelNav:'https://www.inhealth.iotena.com/api/alarm/hotel_nav',/*酒店侧栏列表*/
+		sendUserList:'https://www.inhealth.iotena.com/api/alarm/send_user_list',/*告警推送人员列表*/
+		addSendList:'https://www.inhealth.iotena.com/api/alarm/add_send_list',/*添加告警推送人员下拉列表*/
+		addSendUser:'https://www.inhealth.iotena.com/api/alarm/add_send_user',/*添加告警推送人员*/
+		delSendUser:'https://www.inhealth.iotena.com/api/alarm/del_send_user',/*删除告警推送人员*/
+		setSendUserStatus:'https://www.inhealth.iotena.com/api/alarm/set_send_user_status',/*启动禁用告警推送人员*/
+	},
+	activityHistory:{
+		logList:'https://www.inhealth.iotena.com/api/operation/log_list',/*获取日志信息列表*/
+		delLog:'https://www.inhealth.iotena.com/api/operation/del_log',/*删除日志信息*/
+	},
+	alarmProfile:{
+		getList:'https://www.inhealth.iotena.com/api/alarmProfle/get_list',/*数据列表*/
+		saveAlarmProfile:'https://www.inhealth.iotena.com/api/alarmProfle/save_alarm_profle',/*添加编辑*/
+		getInfo:'https://www.inhealth.iotena.com/api/alarmProfle/get_info',/*详情*/
+		delAlarmProfile:'https://www.inhealth.iotena.com/api/alarmProfle/del_alarm_profle',/*删除*/
+		setAlarmProfile:'https://www.inhealth.iotena.com/api/alarmProfle/set_alarm_profle',/*设置*/
+	},
+	userManagement:{
+		userNav:'https://www.inhealth.iotena.com/api/user/user_nav',/*用户下拉列表*/
+		userList:'https://www.inhealth.iotena.com/api/user/user_list',/*用户列表*/
+		saveUser:'https://www.inhealth.iotena.com/api/user/save_user',/*添加编辑用户*/
+		userInfo:'https://www.inhealth.iotena.com/api/user/user_info',/*获取用户详情*/
+		delUser:'https://www.inhealth.iotena.com/api/user/del_user',/*删除用户*/
+		getUserPermission:'https://www.inhealth.iotena.com/api/user/get_user_permission',/*获取用户权限列表*/
+		setUserPermission:'https://www.inhealth.iotena.com/api/user/set_user_permission',/*修改用户权限*/
+		userManage:'https://www.inhealth.iotena.com/api/user/user_manage',/*用户概览信息*/
+		updateFile:'https://www.inhealth.iotena.com/api/common/update_file',/*图片上传*/
+		setUserStatus:'https://www.inhealth.iotena.com/api/user/set_user_status',/*启用禁用用户状态*/
+	},
+	siteManagement:{
+		getCountry:'https://www.inhealth.iotena.com/api/common/get_country',/*添加酒店国家下拉*/
+		getProvince:'https://www.inhealth.iotena.com/api/common/get_province',/*添加酒店省份下拉*/
+		getCity:'https://www.inhealth.iotena.com/api/common/get_city',/*添加酒店城市下拉*/
+		hotelNavList:'https://www.inhealth.iotena.com/api/area/hotel_nav_list',/*酒店侧栏下拉*/
+		saveHotel:'https://www.inhealth.iotena.com/api/area/save_hotel',/*添加编辑酒店*/
+		hotelInfo:'https://www.inhealth.iotena.com/api/area/hotel_info',/*酒店详情*/
+		delHotel:'https://www.inhealth.iotena.com/api/area/del_hotel',/*删除酒店*/
+
+		saveFloor:'https://www.inhealth.iotena.com/api/area/save_floor',/*添加楼层*/
+		delFloor:'https://www.inhealth.iotena.com/api/area/del_floor',/*删除楼层*/
+		updateFloor:'https://www.inhealth.iotena.com/api/area/update_floor',
+
+		saveBuild:'https://www.inhealth.iotena.com/api/area/save_build',/*添加编辑楼房*/
+		delBuild:'https://www.inhealth.iotena.com/api/area/del_build',/*删除楼房*/
+		buildInfo:'https://www.inhealth.iotena.com/api/area/build_info',/*楼房详情*/
+
+		roomList:'https://www.inhealth.iotena.com/api/area/room_list',/*酒店管理房间列表*/
+		saveRoom:'https://www.inhealth.iotena.com/api/room/save_room',/*添加编辑房间*/
+		roomInfo:'https://www.inhealth.iotena.com/api/room/room_info',/*获取房间详细信息*/
+		delRoom:'https://www.inhealth.iotena.com/api/room/del_room',/*删除房间*/
+
+		updateHotelLogo:'https://www.inhealth.iotena.com/api/area/update_hotel_logo',/*修改酒店logo*/
+	}
+}
+export default urls

+ 162 - 0
webConfig/src/api/base.js

@@ -0,0 +1,162 @@
+import axios from 'axios'
+export default {
+    websocket: (url, callback,) => {
+        let websocket = null
+        // console.log(this_)
+        if ("WebSocket" in window) {
+            websocket = new WebSocket(url);
+        } else if ("MozWebSocket" in window) {
+            websocket = new WebSocket(url);
+        } else {
+            // console.error("'不支持 WebSocKet");
+        }
+        //连接发生错误的回调方法
+        websocket.onerror = event => {
+            console.log(event)
+            websocket = null
+            if ("WebSocket" in window) {
+                websocket = new WebSocket(url);
+            } else if ("MozWebSocket" in window) {
+                websocket = new WebSocket(url);
+            }
+            if(websocket){
+                websocketOnopen(websocket)
+            }
+            console.log("error");
+        }
+        //接收到消息的回调方法
+        websocketOnopen(websocket)
+        function websocketOnopen(websocket) {
+            websocket.onopen = () => {
+                // console.log(event,error)
+                callback(websocket)
+                //接收到消息的回调方法
+                // websocket.onmessage = event => {
+                //     if (callback) {
+                //         if (event.data) {
+                //             try {
+                //                 let data = JSON.parse(event.data)
+                //                 if (data.code == '0000') {
+                //                     callback(data,websocket);
+                //                 } else {
+                //                     if (error) {
+                //                         error(data)
+                //                     }
+                //                     this_.$alert(data.msg, this_.$t('App.message.text1'), {
+                //                         confirmButtonText: this_.$t('App.message.text2'),
+                //                     });
+                //                 }
+                //                 if (data.data.status == 2) {
+                //                     websocket.close();
+                //                 }
+                //             } catch (e) {
+                //                 console.log()
+                //             }
+                //         } else {
+                //             callback()
+                //         }
+                //     }
+                // };
+                //连接关闭的回调方法
+                // websocket.onclose = () => console.log("close");
+                //监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
+                window.onbeforeunload = () => websocket.close();
+                //return websocket;
+            };
+        }
+
+        return websocket;
+    },
+
+    ajax_get: (url, param, callback, this_) => {
+        axios.get(url, { params: param }).then(res => {
+            let data = res.data
+            if (data.result) {
+                if (callback) {
+                    if (data.model && JSON.stringify(data.model).length > 2) {
+                        try {
+                            callback(data.model)
+                        } catch (e) {
+                            // console.log('异常了')
+                            // console.log(e)
+                        }
+                    } else {
+                        callback(data.model)
+                    }
+                }
+
+            } else {
+                this_.$alert(data.message, this_.$t('App.message.text26'));
+            }
+        })
+    },
+    ajax_post: (url, data, param, callback, this_, error, error_t) => {
+        let qs = require('qs')
+        data.version = this_.version;
+        data.os = '0';
+        axios.post(url, qs.stringify(data), { params: param }).then(res => {
+            let data = res.data
+            if (data.code == '0000') {
+                if (callback) {
+                    callback(data, this_)
+                }
+            } else if (data.code == '0001' || data.code == '0002' || data.code == '0003' || data.code == '0004' || data.code == '0102') {
+                if (error) {
+                    error(data, this_)
+                }
+                this_.$alert(data.msg, this_.$t('App.message.text1'), {
+                    confirmButtonText: this_.$t('App.message.text2'),
+                });
+                this_.$store.commit('ROUTERSTRFUN',{
+                  routerStr:'/login',
+                })
+                var oDate = new Date();
+                oDate.setTime(oDate.getTime() + ('' * 24 * 60 * 60 * 1000));
+                oDate = oDate.toUTCString()
+                document.cookie = 'userData' + '=' + '' + ';expires=' + oDate;
+                this_.$router.push({path:'/login'})
+
+                // if(this_.websocket){
+                //   this_.websocket.close();
+                // }
+            } else {
+                if (error) {
+                    error(data, this_)
+                }
+                if (!error_t) {
+                    this_.$alert(data.msg, this_.$t('App.message.text1'), {
+                        confirmButtonText: this_.$t('App.message.text2'),
+                    });
+                }
+            }
+        })
+    },
+    ajax_postWs: (url, data, this_,) => {
+        let qs = require('qs')
+        data.version = this_.version;
+        data.os = '0';
+        axios.post(url, qs.stringify(data)).then(() => {})
+    },
+
+    setCookie: (key, value, iDay) => {
+        var oDate = new Date();
+        oDate.setTime(oDate.getTime() + (iDay * 24 * 60 * 60 * 1000));
+        oDate = oDate.toUTCString();
+        // document.cookie = key + '=' + value;
+        // console.log(key + '=' + value + ';expires=' + oDate)
+        document.cookie = key + '=' + value + ';expires=' + oDate;
+    },
+    // removeCookie: (key) => {
+    //     setCookie(key, '', -1); //这里只需要把Cookie保质期退回一天便可以删除
+    // },
+    getCookie: (key) => {
+        var cookieArr = document.cookie.split('; ');
+        for (var i = 0; i < cookieArr.length; i++) {
+            var arr = cookieArr[i].split('=');
+            if (arr[0] === key) {
+                return arr[1];
+            }
+        }
+        return false;
+    }
+}

+ 318 - 0
webConfig/src/api/color.js

@@ -0,0 +1,318 @@
+const hsv2hsl = function(hue, sat, val) {
+    return [
+        hue,
+        (sat * val / ((hue = (2 - sat) * val) < 1 ? hue : 2 - hue)) || 0,
+        hue / 2
+    ];
+};
+
+// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1
+// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>
+const isOnePointZero = function(n) {
+    return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;
+};
+
+const isPercentage = function(n) {
+    return typeof n === 'string' && n.indexOf('%') !== -1;
+};
+
+// Take input from [0, n] and return it as [0, 1]
+const bound01 = function(value, max) {
+    if (isOnePointZero(value)) value = '100%';
+
+    const processPercent = isPercentage(value);
+    value = Math.min(max, Math.max(0, parseFloat(value)));
+
+    // Automatically convert percentage into number
+    if (processPercent) {
+        value = parseInt(value * max, 10) / 100;
+    }
+
+    // Handle floating point rounding errors
+    if ((Math.abs(value - max) < 0.000001)) {
+        return 1;
+    }
+
+    // Convert into [0, 1] range if it isn't already
+    return (value % max) / parseFloat(max);
+};
+
+const INT_HEX_MAP = { 10: 'A', 11: 'B', 12: 'C', 13: 'D', 14: 'E', 15: 'F' };
+
+const toHex = function({ r, g, b }) {
+    const hexOne = function(value) {
+        value = Math.min(Math.round(value), 255);
+        const high = Math.floor(value / 16);
+        const low = value % 16;
+        return '' + (INT_HEX_MAP[high] || high) + (INT_HEX_MAP[low] || low);
+    };
+
+    if (isNaN(r) || isNaN(g) || isNaN(b)) return '';
+
+    return '#' + hexOne(r) + hexOne(g) + hexOne(b);
+};
+
+const HEX_INT_MAP = { A: 10, B: 11, C: 12, D: 13, E: 14, F: 15 };
+
+const parseHexChannel = function(hex) {
+    if (hex.length === 2) {
+        return (HEX_INT_MAP[hex[0].toUpperCase()] || +hex[0]) * 16 + (HEX_INT_MAP[hex[1].toUpperCase()] || +hex[1]);
+    }
+
+    return HEX_INT_MAP[hex[1].toUpperCase()] || +hex[1];
+};
+
+const hsl2hsv = function(hue, sat, light) {
+    sat = sat / 100;
+    light = light / 100;
+    let smin = sat;
+    const lmin = Math.max(light, 0.01);
+    let sv;
+    let v;
+
+    light *= 2;
+    sat *= (light <= 1) ? light : 2 - light;
+    smin *= lmin <= 1 ? lmin : 2 - lmin;
+    v = (light + sat) / 2;
+    sv = light === 0 ? (2 * smin) / (lmin + smin) : (2 * sat) / (light + sat);
+
+    return {
+        h: hue,
+        s: sv * 100,
+        v: v * 100
+    };
+};
+
+// `rgbToHsv`
+// Converts an RGB color value to HSV
+// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]
+// *Returns:* { h, s, v } in [0,1]
+const rgb2hsv = function(r, g, b) {
+    r = bound01(r, 255);
+    g = bound01(g, 255);
+    b = bound01(b, 255);
+
+    const max = Math.max(r, g, b);
+    const min = Math.min(r, g, b);
+    let h, s;
+    let v = max;
+
+    const d = max - min;
+    s = max === 0 ? 0 : d / max;
+
+    if (max === min) {
+        h = 0; // achromatic
+    } else {
+    switch (max) {
+    case r:
+        h = (g - b) / d + (g < b ? 6 : 0);
+    break;
+    case g:
+        h = (b - r) / d + 2;
+    break;
+    case b:
+        h = (r - g) / d + 4;
+    break;
+    }
+        h /= 6;
+    }
+
+    return { h: h * 360, s: s * 100, v: v * 100 };
+};
+
+// `hsvToRgb`
+// Converts an HSV color value to RGB.
+// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]
+// *Returns:* { r, g, b } in the set [0, 255]
+const hsv2rgb = function(h, s, v) {
+    h = bound01(h, 360) * 6;
+    s = bound01(s, 100);
+    v = bound01(v, 100);
+
+    const i = Math.floor(h);
+    const f = h - i;
+    const p = v * (1 - s);
+    const q = v * (1 - f * s);
+    const t = v * (1 - (1 - f) * s);
+    const mod = i % 6;
+    const r = [v, q, p, p, t, v][mod];
+    const g = [t, v, v, q, p, p][mod];
+    const b = [p, p, t, v, v, q][mod];
+
+    return {
+        r: Math.round(r * 255),
+        g: Math.round(g * 255),
+        b: Math.round(b * 255)
+    };
+};
+
+export default class Color {
+    constructor(options) {
+        this._hue = 0;
+        this._saturation = 100;
+        this._value = 100;
+        this._alpha = 100;
+
+        this.enableAlpha = false;
+        this.format = 'hex';
+        this.value = '';
+
+        options = options || {};
+
+        for (let option in options) {
+            if (options.hasOwnProperty(option)) {
+                this[option] = options[option];
+            }
+        }
+
+        this.doOnChange();
+    }
+
+    set(prop, value) {
+        if (arguments.length === 1 && typeof prop === 'object') {
+            for (let p in prop) {
+                if (prop.hasOwnProperty(p)) {
+                    this.set(p, prop[p]);
+                }
+            }
+
+            return;
+        }
+
+        this['_' + prop] = value;
+        this.doOnChange();
+    }
+
+    get(prop) {
+        return this['_' + prop];
+    }
+
+    toRgb() {
+        return hsv2rgb(this._hue, this._saturation, this._value);
+    }
+
+    fromString(value) {
+        if (!value) {
+            this._hue = 0;
+            this._saturation = 100;
+            this._value = 100;
+
+            this.doOnChange();
+            return;
+        }
+
+        const fromHSV = (h, s, v) => {
+            this._hue = Math.max(0, Math.min(360, h));
+            this._saturation = Math.max(0, Math.min(100, s));
+            this._value = Math.max(0, Math.min(100, v));
+
+            this.doOnChange();
+        };
+
+        if (value.indexOf('hsl') !== -1) {
+            const parts = value.replace(/hsla|hsl|\(|\)/gm, '').split(/\s|,/g).filter((val) => val !== '').map((val, index) => index > 2 ? parseFloat(val) : parseInt(val, 10));
+            if (parts.length === 4) {
+                this._alpha = Math.floor(parseFloat(parts[3]) * 100);
+            } else if (parts.length === 3) {
+                this._alpha = 100;
+            }
+            if (parts.length >= 3) {
+                const { h, s, v } = hsl2hsv(parts[0], parts[1], parts[2]);
+                fromHSV(h, s, v);
+            }
+        } else if (value.indexOf('hsv') !== -1) {
+            const parts = value.replace(/hsva|hsv|\(|\)/gm, '').split(/\s|,/g).filter((val) => val !== '').map((val, index) => index > 2 ? parseFloat(val) : parseInt(val, 10));
+            if (parts.length === 4) {
+                this._alpha = Math.floor(parseFloat(parts[3]) * 100);
+            } else if (parts.length === 3) {
+                this._alpha = 100;
+            }
+            if (parts.length >= 3) {
+                fromHSV(parts[0], parts[1], parts[2]);
+            }
+        } else if (value.indexOf('rgb') !== -1) {
+            const parts = value.replace(/rgba|rgb|\(|\)/gm, '').split(/\s|,/g).filter((val) => val !== '').map((val, index) => index > 2 ? parseFloat(val) : parseInt(val, 10));
+            if (parts.length === 4) {
+                this._alpha = Math.floor(parseFloat(parts[3]) * 100);
+            } else if (parts.length === 3) {
+                this._alpha = 100;
+            }
+            if (parts.length >= 3) {
+                const { h, s, v } = rgb2hsv(parts[0], parts[1], parts[2]);
+                fromHSV(h, s, v);
+            }
+        } else if (value.indexOf('#') !== -1) {
+            const hex = value.replace('#', '').trim();
+            if (!/^(?:[0-9a-fA-F]{3}){1,2}$/.test(hex)) return;
+            let r, g, b;
+
+            if (hex.length === 3) {
+                r = parseHexChannel(hex[0] + hex[0]);
+                g = parseHexChannel(hex[1] + hex[1]);
+                b = parseHexChannel(hex[2] + hex[2]);
+            } else if (hex.length === 6 || hex.length === 8) {
+                r = parseHexChannel(hex.substring(0, 2));
+                g = parseHexChannel(hex.substring(2, 4));
+                b = parseHexChannel(hex.substring(4, 6));
+            }
+
+            if (hex.length === 8) {
+                this._alpha = Math.floor(parseHexChannel(hex.substring(6)) / 255 * 100);
+            } else if (hex.length === 3 || hex.length === 6) {
+            this._alpha = 100;
+            }
+
+            const { h, s, v } = rgb2hsv(r, g, b);
+            fromHSV(h, s, v);
+        }
+    }
+
+    compare(color) {
+        return Math.abs(color._hue - this._hue) < 2 &&
+        Math.abs(color._saturation - this._saturation) < 1 &&
+        Math.abs(color._value - this._value) < 1 &&
+        Math.abs(color._alpha - this._alpha) < 1;
+    }
+
+    doOnChange() {
+        const { _hue, _saturation, _value, _alpha, format } = this;
+
+        if (this.enableAlpha) {
+            switch (format) {
+                case 'hsl':{
+                    const hsl = hsv2hsl(_hue, _saturation / 100, _value / 100);
+                    this.value = `hsla(${ _hue }, ${ Math.round(hsl[1] * 100) }%, ${ Math.round(hsl[2] * 100) }%, ${ _alpha / 100})`;
+                    break;
+                }
+                case 'hsv':{
+                    this.value = `hsva(${ _hue }, ${ Math.round(_saturation) }%, ${ Math.round(_value) }%, ${ _alpha / 100})`;
+                    break;
+                }
+                default:{
+                    const { r, g, b } = hsv2rgb(_hue, _saturation, _value);
+                    this.value = `rgba(${r}, ${g}, ${b}, ${ _alpha / 100 })`;
+                }
+            }
+        } else {
+            switch (format) {
+                case 'hsl':{
+                    const hsl = hsv2hsl(_hue, _saturation / 100, _value / 100);
+                    this.value = `hsl(${ _hue }, ${ Math.round(hsl[1] * 100) }%, ${ Math.round(hsl[2] * 100) }%)`;
+                    break;
+                }
+                case 'hsv':{
+                    this.value = `hsv(${ _hue }, ${ Math.round(_saturation) }%, ${ Math.round(_value) }%)`;
+                    break;
+                }
+                case 'rgb':{
+                    const { r, g, b } = hsv2rgb(_hue, _saturation, _value);
+                    this.value = `rgb(${r}, ${g}, ${b})`;
+                    break;
+                }
+                default:{
+                    this.value = toHex(hsv2rgb(_hue, _saturation, _value));
+                }
+            }
+        }
+    }
+}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1384 - 0
webConfig/src/api/jquery.mCustomScrollbar.concat.min.js


+ 285 - 0
webConfig/src/api/jqueryK.js

@@ -0,0 +1,285 @@
+
+var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
+    a256 = '',
+    r64 = [256],
+    r256 = [256],
+    i = 0;
+
+var UTF8 = {
+
+    /**
+     * Encode multi-byte Unicode string into utf-8 multiple single-byte characters
+     * (BMP / basic multilingual plane only)
+     *
+     * Chars in range U+0080 - U+07FF are encoded in 2 chars, U+0800 - U+FFFF in 3 chars
+     *
+     * @param {String} strUni Unicode string to be encoded as UTF-8
+     * @returns {String} encoded string
+     */
+    encode: function(strUni) {
+        // use regular expressions & String.replace callback function for better efficiency
+        // than procedural approaches
+        var strUtf = strUni.replace(/[\u0080-\u07ff]/g, // U+0080 - U+07FF => 2 bytes 110yyyyy, 10zzzzzz
+        function(c) {
+            var cc = c.charCodeAt(0);
+            return String.fromCharCode(0xc0 | cc >> 6, 0x80 | cc & 0x3f);
+        })
+        .replace(/[\u0800-\uffff]/g, // U+0800 - U+FFFF => 3 bytes 1110xxxx, 10yyyyyy, 10zzzzzz
+        function(c) {
+            var cc = c.charCodeAt(0);
+            return String.fromCharCode(0xe0 | cc >> 12, 0x80 | cc >> 6 & 0x3F, 0x80 | cc & 0x3f);
+        });
+        return strUtf;
+    },
+
+    /**
+     * Decode utf-8 encoded string back into multi-byte Unicode characters
+     *
+     * @param {String} strUtf UTF-8 string to be decoded back to Unicode
+     * @returns {String} decoded string
+     */
+    decode: function(strUtf) {
+        // note: decode 3-byte chars first as decoded 2-byte strings could appear to be 3-byte char!
+        var strUni = strUtf.replace(/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g, // 3-byte chars
+        function(c) { // (note parentheses for precence)
+            var cc = ((c.charCodeAt(0) & 0x0f) << 12) | ((c.charCodeAt(1) & 0x3f) << 6) | (c.charCodeAt(2) & 0x3f);
+            return String.fromCharCode(cc);
+        })
+        .replace(/[\u00c0-\u00df][\u0080-\u00bf]/g, // 2-byte chars
+        function(c) { // (note parentheses for precence)
+            var cc = (c.charCodeAt(0) & 0x1f) << 6 | c.charCodeAt(1) & 0x3f;
+            return String.fromCharCode(cc);
+        });
+        return strUni;
+    }
+};
+
+while(i < 256) {
+    var c = String.fromCharCode(i);
+    a256 += c;
+    r256[i] = i;
+    r64[i] = b64.indexOf(c);
+    ++i;
+}
+
+function code(s, discard, alpha, beta, w1, w2) {
+    s = String(s);
+    var buffer = 0,
+        i = 0,
+        length = s.length,
+        result = '',
+        bitsInBuffer = 0;
+
+    while(i < length) {
+        var c = s.charCodeAt(i);
+        c = c < 256 ? alpha[c] : -1;
+
+        buffer = (buffer << w1) + c;
+        bitsInBuffer += w1;
+
+        while(bitsInBuffer >= w2) {
+            bitsInBuffer -= w2;
+            var tmp = buffer >> bitsInBuffer;
+            result += beta.charAt(tmp);
+            buffer ^= tmp << bitsInBuffer;
+        }
+        ++i;
+    }
+    if(!discard && bitsInBuffer > 0) result += beta.charAt(buffer << (w2 - bitsInBuffer));
+    return result;
+}
+export default {
+	md5: (string) => {
+		var rotateLeft = function(lValue, iShiftBits) {
+			return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits));
+		}
+		var addUnsigned = function(lX, lY) {
+			var lX4, lY4, lX8, lY8, lResult;
+			lX8 = (lX & 0x80000000);
+			lY8 = (lY & 0x80000000);
+			lX4 = (lX & 0x40000000);
+			lY4 = (lY & 0x40000000);
+			lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF);
+			if (lX4 & lY4) return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
+			if (lX4 | lY4) {
+				if (lResult & 0x40000000) return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
+				else return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
+			} else {
+				return (lResult ^ lX8 ^ lY8);
+			}
+		}
+		var F = function(x, y, z) {
+			return (x & y) | ((~ x) & z);
+		}
+		var G = function(x, y, z) {
+			return (x & z) | (y & (~ z));
+		}
+		var H = function(x, y, z) {
+			return (x ^ y ^ z);
+		}
+		var I = function(x, y, z) {
+			return (y ^ (x | (~ z)));
+		}
+		var FF = function(a, b, c, d, x, s, ac) {
+			a = addUnsigned(a, addUnsigned(addUnsigned(F(b, c, d), x), ac));
+			return addUnsigned(rotateLeft(a, s), b);
+		};
+		var GG = function(a, b, c, d, x, s, ac) {
+			a = addUnsigned(a, addUnsigned(addUnsigned(G(b, c, d), x), ac));
+			return addUnsigned(rotateLeft(a, s), b);
+		};
+		var HH = function(a, b, c, d, x, s, ac) {
+			a = addUnsigned(a, addUnsigned(addUnsigned(H(b, c, d), x), ac));
+			return addUnsigned(rotateLeft(a, s), b);
+		};
+		var II = function(a, b, c, d, x, s, ac) {
+			a = addUnsigned(a, addUnsigned(addUnsigned(I(b, c, d), x), ac));
+			return addUnsigned(rotateLeft(a, s), b);
+		};
+		var convertToWordArray = function(string) {
+			var lWordCount;
+			var lMessageLength = string.length;
+			var lNumberOfWordsTempOne = lMessageLength + 8;
+			var lNumberOfWordsTempTwo = (lNumberOfWordsTempOne - (lNumberOfWordsTempOne % 64)) / 64;
+			var lNumberOfWords = (lNumberOfWordsTempTwo + 1) * 16;
+			var lWordArray = Array(lNumberOfWords - 1);
+			var lBytePosition = 0;
+			var lByteCount = 0;
+			while (lByteCount < lMessageLength) {
+				lWordCount = (lByteCount - (lByteCount % 4)) / 4;
+				lBytePosition = (lByteCount % 4) * 8;
+				lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount) << lBytePosition));
+				lByteCount++;
+			}
+			lWordCount = (lByteCount - (lByteCount % 4)) / 4;
+			lBytePosition = (lByteCount % 4) * 8;
+			lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition);
+			lWordArray[lNumberOfWords - 2] = lMessageLength << 3;
+			lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29;
+			return lWordArray;
+		};
+		var wordToHex = function(lValue) {
+			var WordToHexValue = "", WordToHexValueTemp = "", lByte, lCount;
+			for (lCount = 0; lCount <= 3; lCount++) {
+				lByte = (lValue >>> (lCount * 8)) & 255;
+				WordToHexValueTemp = "0" + lByte.toString(16);
+				WordToHexValue = WordToHexValue + WordToHexValueTemp.substr(WordToHexValueTemp.length - 2, 2);
+			}
+			return WordToHexValue;
+		};
+		var uTF8Encode = function(string) {
+			string = string.replace(/\x0d\x0a/g, "\x0a");
+			var output = "";
+			for (var n = 0; n < string.length; n++) {
+				var c = string.charCodeAt(n);
+				if (c < 128) {
+					output += String.fromCharCode(c);
+				} else if ((c > 127) && (c < 2048)) {
+					output += String.fromCharCode((c >> 6) | 192);
+					output += String.fromCharCode((c & 63) | 128);
+				} else {
+					output += String.fromCharCode((c >> 12) | 224);
+					output += String.fromCharCode(((c >> 6) & 63) | 128);
+					output += String.fromCharCode((c & 63) | 128);
+				}
+			}
+			return output;
+		};
+		var x = Array();
+		var k, AA, BB, CC, DD, a, b, c, d;
+		var S11=7, S12=12, S13=17, S14=22;
+		var S21=5, S22=9 , S23=14, S24=20;
+		var S31=4, S32=11, S33=16, S34=23;
+		var S41=6, S42=10, S43=15, S44=21;
+		string = uTF8Encode(string);
+		x = convertToWordArray(string);
+		a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;
+		for (k = 0; k < x.length; k += 16) {
+			AA = a; BB = b; CC = c; DD = d;
+			a = FF(a, b, c, d, x[k+0],  S11, 0xD76AA478);
+			d = FF(d, a, b, c, x[k+1],  S12, 0xE8C7B756);
+			c = FF(c, d, a, b, x[k+2],  S13, 0x242070DB);
+			b = FF(b, c, d, a, x[k+3],  S14, 0xC1BDCEEE);
+			a = FF(a, b, c, d, x[k+4],  S11, 0xF57C0FAF);
+			d = FF(d, a, b, c, x[k+5],  S12, 0x4787C62A);
+			c = FF(c, d, a, b, x[k+6],  S13, 0xA8304613);
+			b = FF(b, c, d, a, x[k+7],  S14, 0xFD469501);
+			a = FF(a, b, c, d, x[k+8],  S11, 0x698098D8);
+			d = FF(d, a, b, c, x[k+9],  S12, 0x8B44F7AF);
+			c = FF(c, d, a, b, x[k+10], S13, 0xFFFF5BB1);
+			b = FF(b, c, d, a, x[k+11], S14, 0x895CD7BE);
+			a = FF(a, b, c, d, x[k+12], S11, 0x6B901122);
+			d = FF(d, a, b, c, x[k+13], S12, 0xFD987193);
+			c = FF(c, d, a, b, x[k+14], S13, 0xA679438E);
+			b = FF(b, c, d, a, x[k+15], S14, 0x49B40821);
+			a = GG(a, b, c, d, x[k+1],  S21, 0xF61E2562);
+			d = GG(d, a, b, c, x[k+6],  S22, 0xC040B340);
+			c = GG(c, d, a, b, x[k+11], S23, 0x265E5A51);
+			b = GG(b, c, d, a, x[k+0],  S24, 0xE9B6C7AA);
+			a = GG(a, b, c, d, x[k+5],  S21, 0xD62F105D);
+			d = GG(d, a, b, c, x[k+10], S22, 0x2441453);
+			c = GG(c, d, a, b, x[k+15], S23, 0xD8A1E681);
+			b = GG(b, c, d, a, x[k+4],  S24, 0xE7D3FBC8);
+			a = GG(a, b, c, d, x[k+9],  S21, 0x21E1CDE6);
+			d = GG(d, a, b, c, x[k+14], S22, 0xC33707D6);
+			c = GG(c, d, a, b, x[k+3],  S23, 0xF4D50D87);
+			b = GG(b, c, d, a, x[k+8],  S24, 0x455A14ED);
+			a = GG(a, b, c, d, x[k+13], S21, 0xA9E3E905);
+			d = GG(d, a, b, c, x[k+2],  S22, 0xFCEFA3F8);
+			c = GG(c, d, a, b, x[k+7],  S23, 0x676F02D9);
+			b = GG(b, c, d, a, x[k+12], S24, 0x8D2A4C8A);
+			a = HH(a, b, c, d, x[k+5],  S31, 0xFFFA3942);
+			d = HH(d, a, b, c, x[k+8],  S32, 0x8771F681);
+			c = HH(c, d, a, b, x[k+11], S33, 0x6D9D6122);
+			b = HH(b, c, d, a, x[k+14], S34, 0xFDE5380C);
+			a = HH(a, b, c, d, x[k+1],  S31, 0xA4BEEA44);
+			d = HH(d, a, b, c, x[k+4],  S32, 0x4BDECFA9);
+			c = HH(c, d, a, b, x[k+7],  S33, 0xF6BB4B60);
+			b = HH(b, c, d, a, x[k+10], S34, 0xBEBFBC70);
+			a = HH(a, b, c, d, x[k+13], S31, 0x289B7EC6);
+			d = HH(d, a, b, c, x[k+0],  S32, 0xEAA127FA);
+			c = HH(c, d, a, b, x[k+3],  S33, 0xD4EF3085);
+			b = HH(b, c, d, a, x[k+6],  S34, 0x4881D05);
+			a = HH(a, b, c, d, x[k+9],  S31, 0xD9D4D039);
+			d = HH(d, a, b, c, x[k+12], S32, 0xE6DB99E5);
+			c = HH(c, d, a, b, x[k+15], S33, 0x1FA27CF8);
+			b = HH(b, c, d, a, x[k+2],  S34, 0xC4AC5665);
+			a = II(a, b, c, d, x[k+0],  S41, 0xF4292244);
+			d = II(d, a, b, c, x[k+7],  S42, 0x432AFF97);
+			c = II(c, d, a, b, x[k+14], S43, 0xAB9423A7);
+			b = II(b, c, d, a, x[k+5],  S44, 0xFC93A039);
+			a = II(a, b, c, d, x[k+12], S41, 0x655B59C3);
+			d = II(d, a, b, c, x[k+3],  S42, 0x8F0CCC92);
+			c = II(c, d, a, b, x[k+10], S43, 0xFFEFF47D);
+			b = II(b, c, d, a, x[k+1],  S44, 0x85845DD1);
+			a = II(a, b, c, d, x[k+8],  S41, 0x6FA87E4F);
+			d = II(d, a, b, c, x[k+15], S42, 0xFE2CE6E0);
+			c = II(c, d, a, b, x[k+6],  S43, 0xA3014314);
+			b = II(b, c, d, a, x[k+13], S44, 0x4E0811A1);
+			a = II(a, b, c, d, x[k+4],  S41, 0xF7537E82);
+			d = II(d, a, b, c, x[k+11], S42, 0xBD3AF235);
+			c = II(c, d, a, b, x[k+2],  S43, 0x2AD7D2BB);
+			b = II(b, c, d, a, x[k+9],  S44, 0xEB86D391);
+			a = addUnsigned(a, AA);
+			b = addUnsigned(b, BB);
+			c = addUnsigned(c, CC);
+			d = addUnsigned(d, DD);
+		}
+		var tempValue = wordToHex(a) + wordToHex(b) + wordToHex(c) + wordToHex(d);
+		return tempValue.toLowerCase();
+	},
+	base64Encode:(plain, utf8encode)=>{
+        plain = Plugin.raw === false || Plugin.utf8encode || utf8encode ? UTF8.encode(plain) : plain;
+        plain = code(plain, false, r256, b64, 8, 6);
+        return plain + '===='.slice((plain.length % 4) || 4);
+    },
+    base64Decode:(coded, utf8decode)=>{
+        coded = String(coded).split('=');
+        var i = coded.length;
+        do {--i;
+            coded[i] = code(coded[i], true, r64, a256, 6, 8);
+        } while (i > 0);
+        coded = coded.join('');
+        return Plugin.raw === false || Plugin.utf8decode || utf8decode ? UTF8.decode(coded) : coded;
+    }
+}

+ 181 - 0
webConfig/src/api/md5.js

@@ -0,0 +1,181 @@
+export default {
+	md5: (string) => {
+		var rotateLeft = function(lValue, iShiftBits) {
+			return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits));
+		}
+		var addUnsigned = function(lX, lY) {
+			var lX4, lY4, lX8, lY8, lResult;
+			lX8 = (lX & 0x80000000);
+			lY8 = (lY & 0x80000000);
+			lX4 = (lX & 0x40000000);
+			lY4 = (lY & 0x40000000);
+			lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF);
+			if (lX4 & lY4) return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
+			if (lX4 | lY4) {
+				if (lResult & 0x40000000) return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
+				else return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
+			} else {
+				return (lResult ^ lX8 ^ lY8);
+			}
+		}
+		var F = function(x, y, z) {
+			return (x & y) | ((~ x) & z);
+		}
+		var G = function(x, y, z) {
+			return (x & z) | (y & (~ z));
+		}
+		var H = function(x, y, z) {
+			return (x ^ y ^ z);
+		}
+		var I = function(x, y, z) {
+			return (y ^ (x | (~ z)));
+		}
+		var FF = function(a, b, c, d, x, s, ac) {
+			a = addUnsigned(a, addUnsigned(addUnsigned(F(b, c, d), x), ac));
+			return addUnsigned(rotateLeft(a, s), b);
+		};
+		var GG = function(a, b, c, d, x, s, ac) {
+			a = addUnsigned(a, addUnsigned(addUnsigned(G(b, c, d), x), ac));
+			return addUnsigned(rotateLeft(a, s), b);
+		};
+		var HH = function(a, b, c, d, x, s, ac) {
+			a = addUnsigned(a, addUnsigned(addUnsigned(H(b, c, d), x), ac));
+			return addUnsigned(rotateLeft(a, s), b);
+		};
+		var II = function(a, b, c, d, x, s, ac) {
+			a = addUnsigned(a, addUnsigned(addUnsigned(I(b, c, d), x), ac));
+			return addUnsigned(rotateLeft(a, s), b);
+		};
+		var convertToWordArray = function(string) {
+			var lWordCount;
+			var lMessageLength = string.length;
+			var lNumberOfWordsTempOne = lMessageLength + 8;
+			var lNumberOfWordsTempTwo = (lNumberOfWordsTempOne - (lNumberOfWordsTempOne % 64)) / 64;
+			var lNumberOfWords = (lNumberOfWordsTempTwo + 1) * 16;
+			var lWordArray = Array(lNumberOfWords - 1);
+			var lBytePosition = 0;
+			var lByteCount = 0;
+			while (lByteCount < lMessageLength) {
+				lWordCount = (lByteCount - (lByteCount % 4)) / 4;
+				lBytePosition = (lByteCount % 4) * 8;
+				lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount) << lBytePosition));
+				lByteCount++;
+			}
+			lWordCount = (lByteCount - (lByteCount % 4)) / 4;
+			lBytePosition = (lByteCount % 4) * 8;
+			lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition);
+			lWordArray[lNumberOfWords - 2] = lMessageLength << 3;
+			lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29;
+			return lWordArray;
+		};
+		var wordToHex = function(lValue) {
+			var WordToHexValue = "", WordToHexValueTemp = "", lByte, lCount;
+			for (lCount = 0; lCount <= 3; lCount++) {
+				lByte = (lValue >>> (lCount * 8)) & 255;
+				WordToHexValueTemp = "0" + lByte.toString(16);
+				WordToHexValue = WordToHexValue + WordToHexValueTemp.substr(WordToHexValueTemp.length - 2, 2);
+			}
+			return WordToHexValue;
+		};
+		var uTF8Encode = function(string) {
+			string = string.replace(/\x0d\x0a/g, "\x0a");
+			var output = "";
+			for (var n = 0; n < string.length; n++) {
+				var c = string.charCodeAt(n);
+				if (c < 128) {
+					output += String.fromCharCode(c);
+				} else if ((c > 127) && (c < 2048)) {
+					output += String.fromCharCode((c >> 6) | 192);
+					output += String.fromCharCode((c & 63) | 128);
+				} else {
+					output += String.fromCharCode((c >> 12) | 224);
+					output += String.fromCharCode(((c >> 6) & 63) | 128);
+					output += String.fromCharCode((c & 63) | 128);
+				}
+			}
+			return output;
+		};
+		var x = Array();
+		var k, AA, BB, CC, DD, a, b, c, d;
+		var S11=7, S12=12, S13=17, S14=22;
+		var S21=5, S22=9 , S23=14, S24=20;
+		var S31=4, S32=11, S33=16, S34=23;
+		var S41=6, S42=10, S43=15, S44=21;
+		string = uTF8Encode(string);
+		x = convertToWordArray(string);
+		a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;
+		for (k = 0; k < x.length; k += 16) {
+			AA = a; BB = b; CC = c; DD = d;
+			a = FF(a, b, c, d, x[k+0],  S11, 0xD76AA478);
+			d = FF(d, a, b, c, x[k+1],  S12, 0xE8C7B756);
+			c = FF(c, d, a, b, x[k+2],  S13, 0x242070DB);
+			b = FF(b, c, d, a, x[k+3],  S14, 0xC1BDCEEE);
+			a = FF(a, b, c, d, x[k+4],  S11, 0xF57C0FAF);
+			d = FF(d, a, b, c, x[k+5],  S12, 0x4787C62A);
+			c = FF(c, d, a, b, x[k+6],  S13, 0xA8304613);
+			b = FF(b, c, d, a, x[k+7],  S14, 0xFD469501);
+			a = FF(a, b, c, d, x[k+8],  S11, 0x698098D8);
+			d = FF(d, a, b, c, x[k+9],  S12, 0x8B44F7AF);
+			c = FF(c, d, a, b, x[k+10], S13, 0xFFFF5BB1);
+			b = FF(b, c, d, a, x[k+11], S14, 0x895CD7BE);
+			a = FF(a, b, c, d, x[k+12], S11, 0x6B901122);
+			d = FF(d, a, b, c, x[k+13], S12, 0xFD987193);
+			c = FF(c, d, a, b, x[k+14], S13, 0xA679438E);
+			b = FF(b, c, d, a, x[k+15], S14, 0x49B40821);
+			a = GG(a, b, c, d, x[k+1],  S21, 0xF61E2562);
+			d = GG(d, a, b, c, x[k+6],  S22, 0xC040B340);
+			c = GG(c, d, a, b, x[k+11], S23, 0x265E5A51);
+			b = GG(b, c, d, a, x[k+0],  S24, 0xE9B6C7AA);
+			a = GG(a, b, c, d, x[k+5],  S21, 0xD62F105D);
+			d = GG(d, a, b, c, x[k+10], S22, 0x2441453);
+			c = GG(c, d, a, b, x[k+15], S23, 0xD8A1E681);
+			b = GG(b, c, d, a, x[k+4],  S24, 0xE7D3FBC8);
+			a = GG(a, b, c, d, x[k+9],  S21, 0x21E1CDE6);
+			d = GG(d, a, b, c, x[k+14], S22, 0xC33707D6);
+			c = GG(c, d, a, b, x[k+3],  S23, 0xF4D50D87);
+			b = GG(b, c, d, a, x[k+8],  S24, 0x455A14ED);
+			a = GG(a, b, c, d, x[k+13], S21, 0xA9E3E905);
+			d = GG(d, a, b, c, x[k+2],  S22, 0xFCEFA3F8);
+			c = GG(c, d, a, b, x[k+7],  S23, 0x676F02D9);
+			b = GG(b, c, d, a, x[k+12], S24, 0x8D2A4C8A);
+			a = HH(a, b, c, d, x[k+5],  S31, 0xFFFA3942);
+			d = HH(d, a, b, c, x[k+8],  S32, 0x8771F681);
+			c = HH(c, d, a, b, x[k+11], S33, 0x6D9D6122);
+			b = HH(b, c, d, a, x[k+14], S34, 0xFDE5380C);
+			a = HH(a, b, c, d, x[k+1],  S31, 0xA4BEEA44);
+			d = HH(d, a, b, c, x[k+4],  S32, 0x4BDECFA9);
+			c = HH(c, d, a, b, x[k+7],  S33, 0xF6BB4B60);
+			b = HH(b, c, d, a, x[k+10], S34, 0xBEBFBC70);
+			a = HH(a, b, c, d, x[k+13], S31, 0x289B7EC6);
+			d = HH(d, a, b, c, x[k+0],  S32, 0xEAA127FA);
+			c = HH(c, d, a, b, x[k+3],  S33, 0xD4EF3085);
+			b = HH(b, c, d, a, x[k+6],  S34, 0x4881D05);
+			a = HH(a, b, c, d, x[k+9],  S31, 0xD9D4D039);
+			d = HH(d, a, b, c, x[k+12], S32, 0xE6DB99E5);
+			c = HH(c, d, a, b, x[k+15], S33, 0x1FA27CF8);
+			b = HH(b, c, d, a, x[k+2],  S34, 0xC4AC5665);
+			a = II(a, b, c, d, x[k+0],  S41, 0xF4292244);
+			d = II(d, a, b, c, x[k+7],  S42, 0x432AFF97);
+			c = II(c, d, a, b, x[k+14], S43, 0xAB9423A7);
+			b = II(b, c, d, a, x[k+5],  S44, 0xFC93A039);
+			a = II(a, b, c, d, x[k+12], S41, 0x655B59C3);
+			d = II(d, a, b, c, x[k+3],  S42, 0x8F0CCC92);
+			c = II(c, d, a, b, x[k+10], S43, 0xFFEFF47D);
+			b = II(b, c, d, a, x[k+1],  S44, 0x85845DD1);
+			a = II(a, b, c, d, x[k+8],  S41, 0x6FA87E4F);
+			d = II(d, a, b, c, x[k+15], S42, 0xFE2CE6E0);
+			c = II(c, d, a, b, x[k+6],  S43, 0xA3014314);
+			b = II(b, c, d, a, x[k+13], S44, 0x4E0811A1);
+			a = II(a, b, c, d, x[k+4],  S41, 0xF7537E82);
+			d = II(d, a, b, c, x[k+11], S42, 0xBD3AF235);
+			c = II(c, d, a, b, x[k+2],  S43, 0x2AD7D2BB);
+			b = II(b, c, d, a, x[k+9],  S44, 0xEB86D391);
+			a = addUnsigned(a, AA);
+			b = addUnsigned(b, BB);
+			c = addUnsigned(c, CC);
+			d = addUnsigned(d, DD);
+		}
+		var tempValue = wordToHex(a) + wordToHex(b) + wordToHex(c) + wordToHex(d);
+		return tempValue.toLowerCase();
+	}
+}

+ 296 - 0
webConfig/src/components/header.vue

@@ -0,0 +1,296 @@
+<template>
+	<div class="headers">
+        <div class="left_nav_btn">
+            <div class="nav_box">
+                <div class="nav_open">
+                    <i class="iconfont icon-zhudaohang"></i>
+                </div>
+                <div class="nav_main">
+                    <div class="nav_left">
+                        <div class="nav_ul">
+                            <div class="nav_title"><span class="span">Control Deck</span></div>
+                            <div class="nav_li" @click="linkToFun('/dashboard')" :class="{'select':routerStr == '/dashboard'}"><i class="iconfont icon-daohangjiantou"></i><span class="span">Dashboard</span></div>
+                            <div class="nav_li"  @click="linkToFun('/projectManagement')" :class="{'select':routerStr == '/projectManagement'}"><i class="iconfont icon-daohangjiantou"></i><span class="span">Project Management</span></div>
+                            <div class="nav_li"><i class="iconfont icon-daohangjiantou"></i><span class="span">Group Configuration</span></div>
+                            <div class="nav_li"><i class="iconfont icon-daohangjiantou"></i><span class="span">Video Surveillance</span></div>
+                            <div class="nav_li"><i class="iconfont icon-daohangjiantou"></i><span class="span">Weather Monitoring</span></div>
+                            <div class="nav_li"><i class="iconfont icon-daohangjiantou"></i><span class="span">GIS Map</span></div>
+                        </div>
+                        <div class="nav_ul">
+                            <div class="nav_title"><span class="span">Maintain</span></div>
+                            <div class="nav_li"><i class="iconfont icon-daohangjiantou"></i><span class="span">Alarm maintenance</span></div>
+                            <div class="nav_li"><i class="iconfont icon-daohangjiantou"></i><span class="span">Historical Data</span></div>
+                        </div>
+                        <div class="nav_ul">
+                            <div class="nav_title"><span class="span">Set Up</span></div>
+                            <div class="nav_li"><i class="iconfont icon-daohangjiantou"></i><span class="span">User Management</span></div>
+                            <div class="nav_li"><i class="iconfont icon-daohangjiantou"></i><span class="span">Operation Log</span></div>
+                        </div>
+                    </div>
+                    <div class="nav_right">
+                        <p class="p1">Complex background</p>
+                        <p class="p2">simple operation</p>
+                        <div class="btn"><span class="span">About more</span></div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="center_logo">
+            <img src="../img/header_logo.png"><i></i><span>Solar Street Light Manegament System</span>
+        </div>
+        <div class="right_btn_box">
+            <span class="img_box">
+                <img :src="avatar" @click="linkToFun('/dashboard')" :onError="imgErrorSrc">
+            </span>
+            <el-popover
+                placement="top-start"
+                popper-class="btn_signOut_box"
+                trigger="hover">
+                <span class="btn_signOut" @click="signOutFun()">Sign Out</span>
+                <span slot="reference"><span class="span">Eunice Gomez</span><i class="el-icon-caret-bottom"></i></span>
+            </el-popover>
+        </div>
+    </div>
+</template>
+
+<script type="text/javascript">
+    // import allUrl from '../api/allUrl.js'
+    // import base from '../api/base.js'
+    import { mapGetters } from 'vuex'
+
+	export default {
+		name:'headers',
+		data(){
+			return{
+                imgErrorSrc:'',
+			}
+		},
+        computed:{
+            ...mapGetters({
+				token:'token',
+				client_key:'client_key',
+				username:'username',
+				version:'version',
+
+                routerStr:'routerStr',
+
+                avatar:'avatar',
+
+            }),
+        },
+		mounted(){
+            this.imgErrorSrc = 'this.src="' + require('../img/user.jpg') + '"';
+		},
+		methods:{
+            linkToFun(val){
+                if(val != this.routerStr){
+                    this.$router.push({path:val});
+                    this.$store.commit('ROUTERSTRFUN',{
+                        routerStr:val,
+                    })
+                    document.title = 'IDCOL-'+val.split('/')[1]
+                }
+            },
+            signOutFun(){
+                // var storage = window.localStorage;
+                // storage.setItem('userData','');
+                // this.$store.commit('ROUTERSTRFUN',{
+                //   routerStr:'/login',
+                // })
+
+                // this.$store.commit('HEADERIDFUN',{
+                //     countryId:'',
+                //     provinceId:'',
+                //     cityId:'',
+                //     hotelId:'',
+                //     headerIdStr:''
+                // })                storage.setItem('hotelIdNav','');
+                // storage.setItem('cityIdNav','');
+                // storage.setItem('provinceIdNav','');
+                // storage.setItem('countryIdNav','');
+                // this.$router.push({path:'/login'})
+                // document.title = 'Inhealth-logo'
+            },
+        },
+        watch:{
+
+        }
+	}
+</script>
+
+<style type="text/css" lang="less">
+	.headers{
+        height: 4.1rem;line-height: 4.1rem;
+        background:rgba(252,137,64,1);
+        box-shadow:0rem 0.17rem 0.5rem 0rem rgba(0,0,0,0.05);
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        .left_nav_btn{
+            width: 15rem;
+            .nav_box{
+                width:4.83rem;
+                position: relative;
+                &:hover{
+                    .nav_main{
+                        display: flex;
+                    }
+                }
+                .nav_open{
+                    width:4.83rem;
+                    background:rgba(240,126,53,1);
+                    box-shadow:0rem 0.17rem 0.5rem 0rem rgba(0,0,0,0.05);
+                    text-align: center;
+                    cursor: pointer;
+                    i{
+                        color: #fff;
+                    }
+                }
+                .nav_main{
+                    display: none;
+                    // display: flex;
+                    z-index: 10000;
+                    justify-content: space-between;
+                    position: fixed;
+                    top: 4.1rem;left: 0;
+                    background: #fff;
+                    width: 100%;height: 22.6rem;
+                    background:rgba(255,255,255,1);
+                    box-shadow:0rem 0.17rem 0.5rem 0rem rgba(0,0,0,0.05);
+                    border:0.08rem solid rgba(240,240,240,1);
+                    .nav_left{
+                        display: flex;
+                        padding-left: 3rem;
+                        .nav_ul{
+                            margin: 2rem 7rem 0 0;
+                            .nav_title{
+                                width:12.5rem;
+                                height:2.5rem;line-height:2.5rem;
+                                background:rgba(246,248,250,1);
+                                border-top-right-radius: 2.5rem;
+                                border-bottom-right-radius: 2.5rem;
+                                margin-bottom: 0.6rem;
+                                padding-left: 1rem;
+                                .span{
+                                    padding: 0.5rem;
+                                    font-size:1.17rem;
+                                    font-family:PingFangSC-Semibold,PingFang SC;
+                                    font-weight:600;
+                                    color:rgba(51,51,51,1);
+                                }
+                            }
+                            .nav_li{
+                                height:2.8rem;line-height:2.8rem;
+                                .span{
+                                    padding: 0.5rem;
+                                    margin-left: 1rem;
+                                    font-size:1rem;
+                                    font-family:AlibabaPuHuiTiR;
+                                    color:rgba(101,112,133,1);
+                                    cursor: pointer;
+                                }
+                                i{
+                                    display: none;
+                                }
+                                &.select{
+                                    display: flex;
+                                    align-items: center;
+                                    .span{
+                                        margin-left: 0;
+                                        font-size:1rem;
+                                        font-family:AlibabaPuHuiTiM;
+                                        color:rgba(252,132,64,1);
+                                    }
+                                    i{
+                                        display: inline-block;
+                                        color: rgba(252,132,64,1);
+                                        font-size: 1rem;
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    .nav_right{
+                        margin: 1.8rem 2.5rem 0 0;
+                        width:35rem;
+                        height:19rem;
+                        background:rgba(255,255,255,1);
+                        border-radius:0.33rem;
+                        border:0.08rem solid rgba(240,240,240,1);
+                        padding-left: 2.5rem;
+                        .p1{
+                            margin-top: 2.6rem;
+                            font-size:1.33rem;
+                            font-family:AlibabaPuHuiTiB;
+                            color:rgba(55,62,76,1);
+                        }
+                        .p2{
+                            margin-top: -1rem;
+                            font-size:3.17rem;
+                            font-family:AlibabaPuHuiTiH;
+                            color:rgba(55,62,76,1);
+                        }
+                        .btn{
+                            margin-top: 5rem;
+                            width:8rem;
+                            height:2.5rem;line-height:2.5rem;
+                            background:linear-gradient(134deg,rgba(252,169,64,1) 0%,rgba(252,132,64,1) 100%);
+                            border-radius:0.17rem;
+                            border:0.08rem solid rgba(240,240,240,1);
+                            text-align: center;
+                            .span{
+                                font-size:1rem;
+                                font-family:AlibabaPuHuiTiR;
+                                color:rgba(255,255,255,1);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        .center_logo{
+            display: flex;
+            align-items: center;
+            img{
+                height: 2rem;
+            }
+            i{
+                display: inline-block;
+                width:0.1rem;
+                height:1.5rem;
+                background: #fff;
+                margin: 0 0.6rem;
+            }
+            span{
+                font-size:1.33rem;
+                font-family:DINAlternate-Bold,DINAlternate;
+                font-weight:bold;
+                color:rgba(255,255,255,1);
+            }
+        }
+        .right_btn_box{
+            width: 15rem;
+            padding-right: 2.5rem;
+            display: flex;
+            align-items: center;
+            justify-content: flex-end;
+            .img_box{
+                width: 2.2rem;height: 2.2rem;line-height: 2.2rem;
+                border-radius: 50%;
+                overflow: hidden;
+                img{
+                    width: 100%;height: 100%;
+                }
+            }
+            .el-popover__reference{
+                font-size:1rem;
+                font-family:HiraginoSansGB-W3,HiraginoSansGB;
+                font-weight:normal;
+                color:rgba(255,255,255,1);
+                .span{
+                    margin: 0 0.6rem;
+                }
+            }
+        }
+	}
+</style>

BIN
webConfig/src/img/header_logo.png


BIN
webConfig/src/img/iconfont/notice.png


BIN
webConfig/src/img/user.jpg


+ 49 - 0
webConfig/src/main.js

@@ -0,0 +1,49 @@
+import Vue from "vue";
+import App from "./App.vue";
+import router from "./router.js";
+import store from "./store";
+
+// import echarts from 'echarts'
+// Vue.prototype.$echarts = echarts
+
+// 引入 ECharts 主模块
+// var echarts = require('echarts/lib/echarts');
+import echarts from 'echarts/lib/echarts'
+// 引入柱状图
+require('echarts/lib/chart/bar');
+// 引入折线图
+require("echarts/lib/chart/line");
+// 引入提示框和标题组件
+require('echarts/lib/component/tooltip');
+require('echarts/lib/component/title');
+Vue.prototype.$echarts = echarts
+
+import ElementUI from 'element-ui'
+import 'element-ui/lib/theme-chalk/index.css'
+import enLocale from 'element-ui/lib/locale/lang/en'
+import zhLocale from 'element-ui/lib/locale/lang/zh-CN'
+
+import en from "./store/lang/en.js"
+import zh from "./store/lang/zh.js"
+import VueI18n from 'vue-i18n'
+Vue.use(VueI18n)
+const i18n = new VueI18n({
+  locale: 'en-US',    // 语言标识
+  //this.$i18n.locale // 通过切换locale的值来实现语言切换
+  messages: {
+    'zh-CN': {...zh,...zhLocale},   // 中文语言包
+    'en-US': {...en,...enLocale}    // 英文语言包
+  }
+})
+Vue.use(ElementUI, {
+    i18n: (key, value) => i18n.t(key, value)
+})
+
+Vue.config.productionTip = false;
+
+new Vue({
+	router,
+	store,
+  i18n,
+	render: h => h(App)
+}).$mount("#app");

+ 34 - 0
webConfig/src/router.js

@@ -0,0 +1,34 @@
+import Vue from 'vue'
+import VueRouter from 'vue-router'
+
+Vue.use(VueRouter)
+
+// const login = resolve => require(['../views/login.vue'], resolve);
+
+const dashboard = () => import('./views/dashboard.vue');
+const projectManagement = () => import('./views/projectManagement.vue');
+
+const routes = [
+    {
+        path: '/',
+        component: dashboard,
+    },
+    {
+        path: '/dashboard',
+        name: 'dashboard',
+        component: dashboard
+    },
+    {
+        path: '/projectManagement',
+        name: 'projectManagement',
+        component: projectManagement
+    },
+]
+
+const router = new VueRouter({
+    mode: 'hash',
+    base: process.env.BASE_URL,
+    routes
+})
+
+export default router

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
webConfig/src/store/Bangladesh.json


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 22 - 0
webConfig/src/store/echarts.min.js


+ 133 - 0
webConfig/src/store/index.js

@@ -0,0 +1,133 @@
+import Vue from 'vue'
+import Vuex from 'vuex'
+
+Vue.use(Vuex)
+
+export default new Vuex.Store({
+    state: {
+        routerStr:'',
+        remRatio:0,
+        updateRemRatio:0,
+
+        countryId:null,
+        provinceId:null,
+        cityId:null,
+        hotelId:null,
+        headerIdStr:null,
+        headerUpdate:0,
+        headerLogo:'',
+        sideBarShow:false,
+        userData:{
+            version:'0',
+            username:'',
+            Id:'',
+            role:'',
+            lastLoginTime:'2018-12-22 13:30:21',
+            client_key:'',
+            token:'',
+            number:'',
+            avatar:'',
+        },
+        editHotelLogoShow:false,
+        editHotelLogoShowBg:false,
+        longitude:0,
+        latitude:0,
+    },
+    getters: {
+        routerStr:state=>state.routerStr,
+        remRatio:state=>state.remRatio,
+
+        headerLogo:state=>state.headerLogo,
+        sideBarShow:state=>state.sideBarShow,
+
+        editHotelLogoShow:state=>state.editHotelLogoShow,
+        editHotelLogoShowBg:state=>state.editHotelLogoShowBg,
+
+        countryId:state=>state.countryId,
+        provinceId:state=>state.provinceId,
+        cityId:state=>state.cityId,
+        hotelId:state=>state.hotelId,
+        longitude:state=>state.longitude,
+        latitude:state=>state.latitude,
+
+        headerIdStr:state=>state.headerIdStr,
+        headerUpdate:state=>state.headerUpdate,
+        updateRemRatio:state=>state.updateRemRatio,
+
+        version:state=>state.userData.version,
+        username:state=>state.userData.username,
+        id:state=>state.userData.id,
+        role:state=>state.userData.role,
+        lastLoginTime:state=>state.userData.lastLoginTime,
+        client_key:state=>state.userData.client_key,
+        token:state=>state.userData.token,
+        number:state=>state.userData.number,
+        avatar:state=>state.userData.avatar,
+    },
+    actions: {
+
+    },
+    mutations: {
+        HEADERLOGO(state,payload){
+            state.headerLogo = payload.headerLogo;
+        },
+        EDITHOTELLOGOSHOW(state,payload){
+            if(payload.editHotelLogoShow){
+                state.editHotelLogoShow = payload.editHotelLogoShow;
+            }
+            if(payload.editHotelLogoShowBg){
+                state.editHotelLogoShowBg = payload.editHotelLogoShowBg;
+            }
+        },
+        SIDEBARSHOW(state,payload){
+            state.sideBarShow = payload.sideBarShow;
+        },
+        USERDATAFUN:(state,payload)=>{
+            state.userData.version = payload.version;
+            state.userData.username = payload.username;
+            state.userData.id = payload.id;
+            state.userData.role = payload.role;
+            state.userData.lastLoginTime = payload.lastLoginTime;
+            state.userData.client_key = payload.client_key;
+            state.userData.token = payload.token;
+            state.userData.number = payload.number;
+            state.userData.avatar = payload.avatar;
+        },
+        HEADERIDFUN:(state,payload)=>{
+            if(payload.countryId||payload.countryId == ''){
+                state.countryId = payload.countryId;    
+            }
+            if(payload.provinceId||payload.provinceId == ''){
+                state.provinceId = payload.provinceId;    
+            }
+            if(payload.cityId||payload.cityId == ''){
+                state.cityId = payload.cityId;    
+            }
+            if(payload.hotelId||payload.hotelId == ''){
+                state.hotelId = payload.hotelId;    
+            }
+            if(payload.headerIdStr||payload.headerIdStr == ''){
+                state.headerIdStr = payload.headerIdStr;    
+            }
+            if(payload.headerUpdate){
+                state.headerUpdate = payload.headerUpdate;    
+            }
+        },
+
+        LONLATFUN:(state,payload)=>{
+            state.longitude = payload.longitude;    
+            state.latitude = payload.latitude;    
+        },
+        UPDATEREMRATIOFUN:(state,payload)=>{
+            state.updateRemRatio = payload.updateRemRatio;
+        },
+
+        ROUTERSTRFUN:(state,payload)=>{
+            state.routerStr = payload.routerStr;
+        },
+
+        REMRATIOFUN:(state,payload)=>{
+            state.remRatio = payload.remRatio;
+        },
+    },
+})

+ 22 - 0
webConfig/src/store/lang/en.js

@@ -0,0 +1,22 @@
+module.exports = {
+    App:{
+        login:{
+            text1:'Welcome to inhealth!',
+            text2:'Happiness and healthiness',
+            text3:'Please enter your log-in name',
+            text4:'Please enter your password',
+            text5:'Please enter the verification code',
+            text6:'Sign in',
+            text7:'Retrieve password',
+        },
+        message:{
+            text1:'System hints',
+            text2:'Confirm',
+            text3:'Do you confirm to delete?',
+            text4:'Prompt',
+            text5:'Confim',
+            text6:'Cancel',
+            text7:'Undelete',
+        }
+    }
+}

+ 22 - 0
webConfig/src/store/lang/zh.js

@@ -0,0 +1,22 @@
+module.exports = {
+    App:{
+        login:{
+            text1:'Welcome to inhealth!',
+            text2:'Happiness and healthiness',
+            text3:'Please enter your log-in name',
+            text4:'Please enter your password',
+            text5:'Please enter the verification code',
+            text6:'Sign in',
+            text7:'Retrieve password',
+        },
+        message:{
+            text1:'System hints',
+            text2:'Confirm',
+            text3:'是否确认删除?',
+            text4:'提示',
+            text5:'确定',
+            text6:'取消',
+            text7:'已取消删除',
+        }
+    }
+}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 20 - 0
webConfig/src/store/world.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
webConfig/src/store/world.json


BIN
webConfig/src/style/bodoniMT/bodoniMT.ttf


BIN
webConfig/src/style/font-al/Alibaba-PuHuiTi-Bold.eot


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
webConfig/src/style/font-al/Alibaba-PuHuiTi-Bold.svg


BIN
webConfig/src/style/font-al/Alibaba-PuHuiTi-Bold.ttf


BIN
webConfig/src/style/font-al/Alibaba-PuHuiTi-Bold.woff


BIN
webConfig/src/style/font-al/Alibaba-PuHuiTi-Heavy.eot


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
webConfig/src/style/font-al/Alibaba-PuHuiTi-Heavy.svg


BIN
webConfig/src/style/font-al/Alibaba-PuHuiTi-Heavy.ttf


BIN
webConfig/src/style/font-al/Alibaba-PuHuiTi-Heavy.woff


BIN
webConfig/src/style/font-al/Alibaba-PuHuiTi-Light.eot


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
webConfig/src/style/font-al/Alibaba-PuHuiTi-Light.svg


BIN
webConfig/src/style/font-al/Alibaba-PuHuiTi-Light.ttf


BIN
webConfig/src/style/font-al/Alibaba-PuHuiTi-Light.woff


BIN
webConfig/src/style/font-al/Alibaba-PuHuiTi-Medium.eot


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
webConfig/src/style/font-al/Alibaba-PuHuiTi-Medium.svg


BIN
webConfig/src/style/font-al/Alibaba-PuHuiTi-Medium.ttf


BIN
webConfig/src/style/font-al/Alibaba-PuHuiTi-Medium.woff


BIN
webConfig/src/style/font-al/Alibaba-PuHuiTi-Regular.eot


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
webConfig/src/style/font-al/Alibaba-PuHuiTi-Regular.svg


BIN
webConfig/src/style/font-al/Alibaba-PuHuiTi-Regular.ttf


BIN
webConfig/src/style/font-al/Alibaba-PuHuiTi-Regular.woff


+ 0 - 0
webConfig/src/style/font-pf/PingFangHeavy.eot


Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels