Browse Source

fix:sk项目

chenzhen2 1 year ago
commit
bf5f2b896d
100 changed files with 13041 additions and 0 deletions
  1. 3 0
      .browserslistrc
  2. 5 0
      .editorconfig
  3. 2 0
      .env.borui.serve
  4. 2 0
      .env.dev.build
  5. 2 0
      .env.dev.serve
  6. 4 0
      .env.prod.build
  7. 2 0
      .env.prod.serve
  8. 2 0
      .env.test.build
  9. 2 0
      .env.test.serve
  10. 11 0
      .eslintignore
  11. 64 0
      .eslintrc.js
  12. 26 0
      .gitignore
  13. 5 0
      .travis.yml
  14. 129 0
      Jenkinsfile
  15. 21 0
      LICENSE
  16. 104 0
      README.md
  17. 29 0
      babel.config.js
  18. BIN
      dist/sgipad/favicon.ico
  19. BIN
      dist/sgipad/images/envmonitor/air.png
  20. BIN
      dist/sgipad/images/envmonitor/arrow-down.png
  21. BIN
      dist/sgipad/images/envmonitor/arrow-top.png
  22. BIN
      dist/sgipad/images/envmonitor/co2.png
  23. BIN
      dist/sgipad/images/envmonitor/fengshan.png
  24. 5 0
      dist/sgipad/images/envmonitor/home_air_icon.svg
  25. 4 0
      dist/sgipad/images/envmonitor/home_engery_icon.svg
  26. BIN
      dist/sgipad/images/envmonitor/house.jpg
  27. BIN
      dist/sgipad/images/envmonitor/house.png
  28. BIN
      dist/sgipad/images/envmonitor/light.png
  29. BIN
      dist/sgipad/images/envmonitor/pm25.png
  30. BIN
      dist/sgipad/images/envmonitor/shuanghua.png
  31. BIN
      dist/sgipad/images/envmonitor/top_bg.png
  32. BIN
      dist/sgipad/images/envmonitor/wendu.png
  33. 10 0
      dist/sgipad/images/ipdImages/aircloudblack.svg
  34. 10 0
      dist/sgipad/images/ipdImages/aircloudgreen.svg
  35. 3 0
      dist/sgipad/images/ipdImages/aircoldblack.svg
  36. 3 0
      dist/sgipad/images/ipdImages/aircoldblue.svg
  37. 10 0
      dist/sgipad/images/ipdImages/airsunblack.svg
  38. 10 0
      dist/sgipad/images/ipdImages/airsunred.svg
  39. 12118 0
      dist/sgipad/images/ipdImages/bj.svg
  40. 3 0
      dist/sgipad/images/ipdImages/check-close.svg
  41. 4 0
      dist/sgipad/images/ipdImages/check-open.svg
  42. 4 0
      dist/sgipad/images/ipdImages/co2.svg
  43. 5 0
      dist/sgipad/images/ipdImages/code-icon.svg
  44. 3 0
      dist/sgipad/images/ipdImages/humidity.svg
  45. 3 0
      dist/sgipad/images/ipdImages/icon-handshake.svg
  46. 16 0
      dist/sgipad/images/ipdImages/jiaquan.svg
  47. 64 0
      dist/sgipad/images/ipdImages/logo.svg
  48. BIN
      dist/sgipad/images/ipdImages/pad_img1.png
  49. BIN
      dist/sgipad/images/ipdImages/pad_img2.png
  50. BIN
      dist/sgipad/images/ipdImages/pad_img3.png
  51. 8 0
      dist/sgipad/images/ipdImages/phone-icon.svg
  52. 8 0
      dist/sgipad/images/ipdImages/pm2.5.svg
  53. 9 0
      dist/sgipad/images/ipdImages/rectangle-active.svg
  54. 9 0
      dist/sgipad/images/ipdImages/rectangle-fotter.svg
  55. 9 0
      dist/sgipad/images/ipdImages/rectangle1.svg
  56. 9 0
      dist/sgipad/images/ipdImages/rectangle2.svg
  57. 9 0
      dist/sgipad/images/ipdImages/rectangle3.svg
  58. 10 0
      dist/sgipad/images/ipdImages/sanhui.svg
  59. 26 0
      dist/sgipad/images/ipdImages/shangeyun_logo.svg
  60. 26 0
      dist/sgipad/images/ipdImages/shanggeyun_logo.svg
  61. 3 0
      dist/sgipad/images/ipdImages/shidu.svg
  62. 34 0
      dist/sgipad/images/ipdImages/taolun-big.svg
  63. 29 0
      dist/sgipad/images/ipdImages/taolun.svg
  64. 3 0
      dist/sgipad/images/ipdImages/template-icon.svg
  65. 10 0
      dist/sgipad/images/ipdImages/time-check.svg
  66. 10 0
      dist/sgipad/images/ipdImages/time-wait.svg
  67. 9 0
      dist/sgipad/images/ipdImages/touying.svg
  68. 3 0
      dist/sgipad/images/ipdImages/vector-active.svg
  69. 3 0
      dist/sgipad/images/ipdImages/vector.svg
  70. 4 0
      dist/sgipad/images/ipdImages/weixin.svg
  71. BIN
      dist/sgipad/images/ipdImages/wind_big.png
  72. BIN
      dist/sgipad/images/ipdImages/wind_small.png
  73. 4 0
      dist/sgipad/images/map-icon/atrum.svg
  74. 4 0
      dist/sgipad/images/map-icon/atrumselected.svg
  75. 4 0
      dist/sgipad/images/map-icon/baby.svg
  76. 4 0
      dist/sgipad/images/map-icon/babyselected.svg
  77. BIN
      dist/sgipad/images/map-icon/bg_disable.png
  78. 4 0
      dist/sgipad/images/map-icon/book.svg
  79. 4 0
      dist/sgipad/images/map-icon/bookselected.svg
  80. 6 0
      dist/sgipad/images/map-icon/branch.svg
  81. 6 0
      dist/sgipad/images/map-icon/branchselected.svg
  82. 4 0
      dist/sgipad/images/map-icon/child.svg
  83. 4 0
      dist/sgipad/images/map-icon/childselected.svg
  84. 4 0
      dist/sgipad/images/map-icon/clean.svg
  85. 4 0
      dist/sgipad/images/map-icon/cleanselected.svg
  86. 4 0
      dist/sgipad/images/map-icon/coffee.svg
  87. 4 0
      dist/sgipad/images/map-icon/coffeeselected.svg
  88. 7 0
      dist/sgipad/images/map-icon/dev.svg
  89. 6 0
      dist/sgipad/images/map-icon/device.svg
  90. 6 0
      dist/sgipad/images/map-icon/deviceroom.svg
  91. 6 0
      dist/sgipad/images/map-icon/deviceroomselected.svg
  92. 6 0
      dist/sgipad/images/map-icon/deviceselected.svg
  93. 7 0
      dist/sgipad/images/map-icon/devselected.svg
  94. 4 0
      dist/sgipad/images/map-icon/door1.svg
  95. 4 0
      dist/sgipad/images/map-icon/door2.svg
  96. 4 0
      dist/sgipad/images/map-icon/doordown.svg
  97. 4 0
      dist/sgipad/images/map-icon/doorleft.svg
  98. 4 0
      dist/sgipad/images/map-icon/doorright.svg
  99. 4 0
      dist/sgipad/images/map-icon/doorup.svg
  100. 0 0
      dist/sgipad/images/map-icon/dooruplarge.svg

+ 3 - 0
.browserslistrc

@@ -0,0 +1,3 @@
+> 1%
+last 2 versions
+not dead

+ 5 - 0
.editorconfig

@@ -0,0 +1,5 @@
+[*.{js,jsx,ts,tsx,vue}]
+indent_style = space
+indent_size = 2
+trim_trailing_whitespace = true
+insert_final_newline = true

+ 2 - 0
.env.borui.serve

@@ -0,0 +1,2 @@
+NODE_ENV=development
+VUE_APP_BASE_API = '/sgipad/'

+ 2 - 0
.env.dev.build

@@ -0,0 +1,2 @@
+NODE_ENV=production
+VUE_APP_BASE_API = '/'

+ 2 - 0
.env.dev.serve

@@ -0,0 +1,2 @@
+NODE_ENV=development
+VUE_APP_BASE_API = '/sgipad/'

+ 4 - 0
.env.prod.build

@@ -0,0 +1,4 @@
+
+NODE_ENV=production
+VUE_APP_BASE_API = '/sgipad/'
+

+ 2 - 0
.env.prod.serve

@@ -0,0 +1,2 @@
+NODE_ENV=development
+VUE_APP_BASE_API = '/sgipad/'

+ 2 - 0
.env.test.build

@@ -0,0 +1,2 @@
+NODE_ENV=production
+VUE_APP_BASE_API = '/api'

+ 2 - 0
.env.test.serve

@@ -0,0 +1,2 @@
+NODE_ENV=development
+VUE_APP_BASE_API = '/api'

+ 11 - 0
.eslintignore

@@ -0,0 +1,11 @@
+src/store
+src/model
+src/constant
+src/components
+src/utils
+src/views
+src/apis
+src/config
+src/utils/bideo.js
+vue.config.js
+mock/

+ 64 - 0
.eslintrc.js

@@ -0,0 +1,64 @@
+module.exports = {
+  root: true,
+  env: {
+    node: true
+  },
+  extends: [
+    'plugin:vue/vue3-strongly-recommended',
+    '@vue/standard',
+    '@vue/typescript/recommended'
+  ],
+  parserOptions: {
+    ecmaVersion: 2020
+  },
+  rules: {
+    "vue/no-use-v-if-with-v-for": "off",
+    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
+    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
+    '@typescript-eslint/ban-types': 'off',
+    '@typescript-eslint/explicit-module-boundary-types': 'off',
+    '@typescript-eslint/member-delimiter-style': ['error',
+      {
+        multiline: {
+          delimiter: 'none'
+        },
+        singleline: {
+          delimiter: 'comma'
+        }
+      }],
+    '@typescript-eslint/no-explicit-any': 'off',
+    'space-before-function-paren': ['error', 'never'],
+    'vue/array-bracket-spacing': 'error',
+    'vue/arrow-spacing': 'error',
+    'vue/block-spacing': 'error',
+    'vue/brace-style': 'error',
+    'vue/camelcase': 'error',
+    'vue/comma-dangle': 'error',
+    'vue/component-name-in-template-casing': 'error',
+    'vue/eqeqeq': 'error',
+    'vue/key-spacing': 'error',
+    'vue/match-component-file-name': 'error',
+    'vue/object-curly-spacing': 'error',
+    'no-useless-escape': 'off',
+    '@typescript-eslint/no-this-alias': [
+      'error',
+      {
+        allowDestructuring: true, // Allow `const { props, state } = this`; false by default
+        allowedNames: ['self'] // Allow `const self = this`; `[]` by default
+      }
+    ],
+    'vue/attribute-hyphenation': 'off',
+    'vue/custom-event-name-casing': 'off'
+  },
+  overrides: [
+    {
+      files: [
+        '**/__tests__/*.{j,t}s?(x)',
+        '**/tests/unit/**/*.spec.{j,t}s?(x)'
+      ],
+      env: {
+        jest: true
+      }
+    }
+  ]
+}

+ 26 - 0
.gitignore

@@ -0,0 +1,26 @@
+.DS_Store
+node_modules
+
+
+/tests/e2e/videos/
+/tests/e2e/screenshots/
+
+
+# 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?

+ 5 - 0
.travis.yml

@@ -0,0 +1,5 @@
+language: node_js
+node_js: 10
+script: npm run test
+notifications:
+  email: false

+ 129 - 0
Jenkinsfile

@@ -0,0 +1,129 @@
+@Library('devops') _
+
+pipeline {
+    agent {label 'jenkins-slave-jnlp'}
+    environment {  // https://stackoverflow.com/questions/53541489/updating-environment-global-variable-in-jenkins-pipeline-from-the-stage-level
+        NAME="admin-tmpl"
+        NAMESPACE="oppc-rcyj-web"
+        SERVER_PORT="80"
+    }
+
+    options {
+        // timestamps()  //日志会有时间
+        skipDefaultCheckout()  //删除隐式checkout scm语句
+        // disableConcurrentBuilds() //禁止并行,会列队式等前面的任务完才进行下一个任务
+        timeout(time: 1, unit: 'HOURS')  //流水线超时设置1h
+    }
+
+    stages {
+        stage('Init'){
+            steps {
+                script{
+                    // 【测试环境】变量
+                    env.INGRESS_HOST='admin-tmpl-test.rencaiyoujia.cn'
+                    env.INGRESS_TLS_SECRET="rencaiyoujia-tls-secret"
+                    env.REPLICAS="1"  //deployment的副本数
+                    KUBECONTEXT = "k8s-test-admin"  //测试环境k8s
+                    NPM_RUN_BUILD_CMD="npm run build:test"
+                    DOCKERFILE_NAME="Dockerfile"
+
+                    // 【生产环境】变量
+                    if( "${BRANCH_NAME}"== "master"){
+                        env.INGRESS_HOST='admin-tmpl.rencaiyoujia.com'
+                        env.INGRESS_TLS_SECRET="rencaiyoujia-tls-secret"
+                        env.REPLICAS="2"
+                        KUBECONTEXT="k8s-prod-admin"  //生产环境k8s
+                        NPM_RUN_BUILD_CMD="npm run build:prod"
+                        DOCKERFILE_NAME="Dockerfile"
+                    }
+
+                    // 【开发环境】变量
+                    if( "${BRANCH_NAME}"== "dev"){
+                        env.INGRESS_HOST='admin-tmpl-dev.rencaiyoujia.cn'
+                        env.INGRESS_TLS_SECRET="rencaiyoujia-tls-secret"
+                        env.REPLICAS="1"
+                        KUBECONTEXT="k8s-dev-admin"  //开发环境k8s
+                        NPM_RUN_BUILD_CMD="npm run build:dev"
+                        DOCKERFILE_NAME="Dockerfile"
+                    }
+                }
+            }
+        }
+        stage('Checkout') {
+            steps {
+                checkout scm
+            }
+        } 
+        stage('npm打包') {
+            steps {
+                script{            
+                    // sh 'npm config set registry https://registry.npm.taobao.org'
+                    sh 'npm install --registry=https://registry.npm.taobao.org'
+                    sh "${NPM_RUN_BUILD_CMD}"
+                }
+            }                
+        }        
+        stage('DockerBuild') {
+            steps {
+                script{
+                    sh "rm -rf docker/dist;mv dist docker"
+                    devops.docker(env.NAME,dockerfile:"docker/${DOCKERFILE_NAME}",context:"docker").build().push()
+                }
+            }
+        }
+
+        stage('Test') {
+            steps {
+                echo 'Testing..'
+            }
+        }
+        
+        stage('Deploy') {
+            parallel {
+                stage('deploy ingress') {
+                    when {
+                        expression { env.INGRESS_HOST != null }
+                    }
+                    steps{
+                        sh """envsubst < k8smanifests/svc.yaml | kubectl --context ${KUBECONTEXT} apply -f - ;\
+                            envsubst < k8smanifests/ingress.yaml | kubectl --context ${KUBECONTEXT} apply -f - ;\
+                        """      
+                    }
+                }
+                stage('Deploy') {
+                    steps{
+                        sh """envsubst < k8smanifests/deploy.yaml ;\
+                            envsubst < k8smanifests/deploy.yaml | kubectl --context ${KUBECONTEXT} apply -f - ;\
+                        """                          
+                    }
+                }
+            }
+        }
+
+    }
+
+
+    post{
+        success{
+            script{
+                devops.dingtalk(env.NAME,env.DOCKERIMAGE,"构建成功 ✅")
+            }
+        }
+        failure{
+            script{
+                devops.dingtalk(env.NAME,env.DOCKERIMAGE,"构建失败 ❌")
+            }
+        }
+        unstable{
+            script{
+                devops.dingtalk(env.NAME,env.DOCKERIMAGE,"不稳定构建 ✅")
+            }
+        }
+        aborted{
+            script{
+                devops.dingtalk(env.NAME,env.DOCKERIMAGE,"暂停或中断 ❌")
+            }
+        }
+    }
+
+}

+ 21 - 0
LICENSE

@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021 rcyj
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 104 - 0
README.md

@@ -0,0 +1,104 @@
+### 目录结构
+
+```
+admin-tmpl
+├─ .env.dev.build # 开发环境
+├─ .env.dev.serve # 开发本地本地
+├─ .env.prod.build # 生产环境
+├─ .env.prod.serve # 生产环境本地
+├─ .env.test.build # 测试环境
+├─ .env.test.serve # 测试环境本地
+├─ .eslintrc.js # eslint
+├─ dist # 打包dist
+├─ mock # mock服务
+├─ public # 静态资源
+├─ src # 源码
+│   ├─ @types # ts 声明
+│   ├─ apis # 接口请求
+        ├─envmonitor.ts  #环境控制页面api
+        ├─portrait.ts    #节能页面api
+        └─user.ts        #用户权限api
+│   ├─ assets # webpack打包的资源
+│   ├─ components # 公共组件
+│   ├─ config # 全部配置
+│   ├─ constant # 常量
+│   ├─ directives # 全局指令
+│   ├─ layout # 全局Layout
+│   ├─ locales # 国际化
+│   ├─ model # 全部model存放
+│   ├─ plugins # 插件
+│   ├─ router # 路由
+│   ├─ store # 全局store管理
+│   ├─ styles # 全局样式
+│   ├─ utils # 全局公共方法
+        ├─https.ts       #http工具类
+        ├─permission.ts  #权限工具类
+        └─storage.ts     #数据存储工具类
+│   ├─ views # 所有业务页面
+│        └─ envmonitor
+│             ├─Air.vue #空调控制
+│             ├─Curtain.vue #窗帘控制
+│             ├─Light.vue #灯控制
+│             ├─Scenario.vue #会议室场景控制
+│             └─ detail.vue #环境详情信息
+│   ├─  meetingControl
+│             └─index.vue #环境控制首页
+│   ├─ portrait
+│             ├─index.vue #使用统计
+│             ├─energySavig.vue #我的节能评分
+│             ├─energyDetail.vue #节能详情
+│             ├─energyRank.vue #排名
+│             ├─integralDesc.vue #积分说明
+│             ├─record.vue #调节记录
+│             └─todayEnergyDetail.vue #今日新增
+├─ tsconfig.json # ts 编译配置
+└─ vue.config.js # vue-cli 配置
+ 
+
+
+```
+### 功能
+
+ 
+## HighLight
+
+项目均已最新技术实现,Vue3配套升级全家桶和涉及的插件组件等
+
+项目采用技术:
+
+- vue3 + composition api
+- typescript3.9
+- sass (dart sass)
+- [echats5](https://github.com/apache/echarts)
+
+vue next 系列:
+
+- [element-plus](https://github.com/element-plus/element-plus)
+- [vue-router-next](https://github.com/vuejs/vue-router-next)
+- [vuex-4.0](https://github.com/vuejs/vuex)
+- [vue-i18n-next](https://github.com/intlify/vue-i18n-next)
+
+
+## Document
+## Setup
+
+项目主要是前端和mock server(node)
+
+### 前后端都启动
+
+```shell
+  yarn
+  yarn start
+```
+### 单独启动 Mock
+
+后台模拟服务器和其他版本不同,采用koa2+Faker进行模拟。
+
+- [Koa2](https://github.com/koajs/koa)
+- [Faker](https://github.com/Marak/faker.js)
+
+启动mock server:
+
+```shell
+    yarn mock
+```

+ 29 - 0
babel.config.js

@@ -0,0 +1,29 @@
+/*
+ * @Description:
+ * @Author: ZY
+ * @Date: 2020-12-07 10:30:20
+ * @LastEditors: ZY
+ * @LastEditTime: 2021-01-05 17:11:54
+ */
+module.exports = {
+  presets: [
+    '@vue/cli-plugin-babel/preset'
+  ],
+  env: {
+    development: {
+      // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
+      // This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
+      // https://panjiachen.github.io/vue-element-admin-site/guide/advanced/lazy-loading.html
+      plugins: [
+        'dynamic-import-node'
+        // [
+        //   'component',
+        //   {
+        //     libraryName: 'element-plus',
+        //     styleLibraryName: 'theme-chalk'
+        //   }
+        // ]
+      ]
+    }
+  }
+}

BIN
dist/sgipad/favicon.ico


BIN
dist/sgipad/images/envmonitor/air.png


BIN
dist/sgipad/images/envmonitor/arrow-down.png


BIN
dist/sgipad/images/envmonitor/arrow-top.png


BIN
dist/sgipad/images/envmonitor/co2.png


BIN
dist/sgipad/images/envmonitor/fengshan.png


File diff suppressed because it is too large
+ 5 - 0
dist/sgipad/images/envmonitor/home_air_icon.svg


File diff suppressed because it is too large
+ 4 - 0
dist/sgipad/images/envmonitor/home_engery_icon.svg


BIN
dist/sgipad/images/envmonitor/house.jpg


BIN
dist/sgipad/images/envmonitor/house.png


BIN
dist/sgipad/images/envmonitor/light.png


BIN
dist/sgipad/images/envmonitor/pm25.png


BIN
dist/sgipad/images/envmonitor/shuanghua.png


BIN
dist/sgipad/images/envmonitor/top_bg.png


BIN
dist/sgipad/images/envmonitor/wendu.png


File diff suppressed because it is too large
+ 10 - 0
dist/sgipad/images/ipdImages/aircloudblack.svg


File diff suppressed because it is too large
+ 10 - 0
dist/sgipad/images/ipdImages/aircloudgreen.svg


File diff suppressed because it is too large
+ 3 - 0
dist/sgipad/images/ipdImages/aircoldblack.svg


File diff suppressed because it is too large
+ 3 - 0
dist/sgipad/images/ipdImages/aircoldblue.svg


File diff suppressed because it is too large
+ 10 - 0
dist/sgipad/images/ipdImages/airsunblack.svg


File diff suppressed because it is too large
+ 10 - 0
dist/sgipad/images/ipdImages/airsunred.svg


File diff suppressed because it is too large
+ 12118 - 0
dist/sgipad/images/ipdImages/bj.svg


+ 3 - 0
dist/sgipad/images/ipdImages/check-close.svg

@@ -0,0 +1,3 @@
+<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+<circle cx="9" cy="9" r="8.5" stroke="#C4C9CF"/>
+</svg>

+ 4 - 0
dist/sgipad/images/ipdImages/check-open.svg

@@ -0,0 +1,4 @@
+<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+<circle cx="9" cy="9" r="8.5" fill="#ce9f27" stroke="#424C59"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M12.7817 6.25353C12.4944 5.99485 12.0518 6.01805 11.7931 6.30535L8.14747 10.3542L6.37621 8.38701C6.11752 8.09971 5.67491 8.07651 5.38761 8.3352C5.10031 8.59388 5.07712 9.03649 5.3358 9.32379L7.56558 11.8002C7.6676 11.9135 7.79823 11.9857 7.93667 12.0158C8.19843 12.1143 8.5051 12.0493 8.70354 11.8289L12.8335 7.24213C13.0922 6.95483 13.069 6.51222 12.7817 6.25353Z" fill="#424C59"/>
+</svg>

File diff suppressed because it is too large
+ 4 - 0
dist/sgipad/images/ipdImages/co2.svg


+ 5 - 0
dist/sgipad/images/ipdImages/code-icon.svg

@@ -0,0 +1,5 @@
+<svg width="134" height="134" viewBox="0 0 134 134" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g style="mix-blend-mode:lighten">
+<rect width="134" height="134" transform="matrix(-1 0 0 1 134 0)" fill="#CE9F27"/>
+</g>
+</svg>

File diff suppressed because it is too large
+ 3 - 0
dist/sgipad/images/ipdImages/humidity.svg


File diff suppressed because it is too large
+ 3 - 0
dist/sgipad/images/ipdImages/icon-handshake.svg


File diff suppressed because it is too large
+ 16 - 0
dist/sgipad/images/ipdImages/jiaquan.svg


File diff suppressed because it is too large
+ 64 - 0
dist/sgipad/images/ipdImages/logo.svg


BIN
dist/sgipad/images/ipdImages/pad_img1.png


BIN
dist/sgipad/images/ipdImages/pad_img2.png


BIN
dist/sgipad/images/ipdImages/pad_img3.png


File diff suppressed because it is too large
+ 8 - 0
dist/sgipad/images/ipdImages/phone-icon.svg


File diff suppressed because it is too large
+ 8 - 0
dist/sgipad/images/ipdImages/pm2.5.svg


+ 9 - 0
dist/sgipad/images/ipdImages/rectangle-active.svg

@@ -0,0 +1,9 @@
+<svg width="193" height="40" viewBox="0 0 193 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M0 40L-1.74846e-06 7.62939e-06L153 9.41552e-07C167.001 3.29535e-07 174.002 2.35269e-08 179.35 2.72483C184.054 5.12167 187.878 8.94619 190.275 13.6502C193 18.998 193 25.9987 193 40L0 40Z" fill="url(#paint0_linear_998_8038)"/>
+<defs>
+<linearGradient id="paint0_linear_998_8038" x1="-8.74228e-07" y1="20" x2="193" y2="20" gradientUnits="userSpaceOnUse">
+<stop stop-color="#C5A861"/>
+<stop offset="1" stop-color="#EBD9A8"/>
+</linearGradient>
+</defs>
+</svg>

+ 9 - 0
dist/sgipad/images/ipdImages/rectangle-fotter.svg

@@ -0,0 +1,9 @@
+<svg width="93" height="40" viewBox="0 0 93 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M0 40L-1.74846e-06 3.8147e-06L53 1.49799e-06C67.0013 8.85977e-07 74.002 5.79968e-07 79.3498 2.72483C84.0538 5.12167 87.8783 8.94618 90.2752 13.6502C93 18.998 93 25.9987 93 40L0 40Z" fill="url(#paint0_linear_1187_8053)"/>
+<defs>
+<linearGradient id="paint0_linear_1187_8053" x1="93" y1="27" x2="18.4726" y2="27" gradientUnits="userSpaceOnUse">
+<stop stop-color="#414141"/>
+<stop offset="1" stop-color="#282828"/>
+</linearGradient>
+</defs>
+</svg>

+ 9 - 0
dist/sgipad/images/ipdImages/rectangle1.svg

@@ -0,0 +1,9 @@
+<svg width="195" height="40" viewBox="0 0 195 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M0 40L-1.74846e-06 7.62939e-06L155 8.54129e-07C169.001 2.42113e-07 176.002 -6.38958e-08 181.35 2.72483C186.054 5.12167 189.878 8.94619 192.275 13.6502C195 18.998 195 25.9987 195 40L0 40Z" fill="url(#paint0_linear_998_8035)"/>
+<defs>
+<linearGradient id="paint0_linear_998_8035" x1="195" y1="27" x2="38.7329" y2="27" gradientUnits="userSpaceOnUse">
+<stop stop-color="#414141"/>
+<stop offset="1" stop-color="#282828"/>
+</linearGradient>
+</defs>
+</svg>

+ 9 - 0
dist/sgipad/images/ipdImages/rectangle2.svg

@@ -0,0 +1,9 @@
+<svg width="195" height="40" viewBox="0 0 195 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M0 40L-1.74846e-06 7.62939e-06L155 8.54129e-07C169.001 2.42113e-07 176.002 -6.38958e-08 181.35 2.72483C186.054 5.12167 189.878 8.94619 192.275 13.6502C195 18.998 195 25.9987 195 40L0 40Z" fill="url(#paint0_linear_1040_8060)"/>
+<defs>
+<linearGradient id="paint0_linear_1040_8060" x1="195" y1="27" x2="38.7329" y2="27" gradientUnits="userSpaceOnUse">
+<stop stop-color="#414141"/>
+<stop offset="1" stop-color="#282828"/>
+</linearGradient>
+</defs>
+</svg>

+ 9 - 0
dist/sgipad/images/ipdImages/rectangle3.svg

@@ -0,0 +1,9 @@
+<svg width="160" height="40" viewBox="0 0 160 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M0 40L-1.74846e-06 0L120 -5.24537e-06C134.001 -5.85738e-06 141.002 -6.16339e-06 146.35 2.72483C151.054 5.12166 154.878 8.94618 157.275 13.6502C160 18.998 160 25.9987 160 40L0 40Z" fill="url(#paint0_linear_998_8032)"/>
+<defs>
+<linearGradient id="paint0_linear_998_8032" x1="160" y1="27" x2="31.7808" y2="27" gradientUnits="userSpaceOnUse">
+<stop stop-color="#414141"/>
+<stop offset="1" stop-color="#282828"/>
+</linearGradient>
+</defs>
+</svg>

File diff suppressed because it is too large
+ 10 - 0
dist/sgipad/images/ipdImages/sanhui.svg


File diff suppressed because it is too large
+ 26 - 0
dist/sgipad/images/ipdImages/shangeyun_logo.svg


File diff suppressed because it is too large
+ 26 - 0
dist/sgipad/images/ipdImages/shanggeyun_logo.svg


File diff suppressed because it is too large
+ 3 - 0
dist/sgipad/images/ipdImages/shidu.svg


File diff suppressed because it is too large
+ 34 - 0
dist/sgipad/images/ipdImages/taolun-big.svg


File diff suppressed because it is too large
+ 29 - 0
dist/sgipad/images/ipdImages/taolun.svg


File diff suppressed because it is too large
+ 3 - 0
dist/sgipad/images/ipdImages/template-icon.svg


File diff suppressed because it is too large
+ 10 - 0
dist/sgipad/images/ipdImages/time-check.svg


File diff suppressed because it is too large
+ 10 - 0
dist/sgipad/images/ipdImages/time-wait.svg


File diff suppressed because it is too large
+ 9 - 0
dist/sgipad/images/ipdImages/touying.svg


File diff suppressed because it is too large
+ 3 - 0
dist/sgipad/images/ipdImages/vector-active.svg


File diff suppressed because it is too large
+ 3 - 0
dist/sgipad/images/ipdImages/vector.svg


File diff suppressed because it is too large
+ 4 - 0
dist/sgipad/images/ipdImages/weixin.svg


BIN
dist/sgipad/images/ipdImages/wind_big.png


BIN
dist/sgipad/images/ipdImages/wind_small.png


File diff suppressed because it is too large
+ 4 - 0
dist/sgipad/images/map-icon/atrum.svg


File diff suppressed because it is too large
+ 4 - 0
dist/sgipad/images/map-icon/atrumselected.svg


File diff suppressed because it is too large
+ 4 - 0
dist/sgipad/images/map-icon/baby.svg


File diff suppressed because it is too large
+ 4 - 0
dist/sgipad/images/map-icon/babyselected.svg


BIN
dist/sgipad/images/map-icon/bg_disable.png


File diff suppressed because it is too large
+ 4 - 0
dist/sgipad/images/map-icon/book.svg


File diff suppressed because it is too large
+ 4 - 0
dist/sgipad/images/map-icon/bookselected.svg


File diff suppressed because it is too large
+ 6 - 0
dist/sgipad/images/map-icon/branch.svg


File diff suppressed because it is too large
+ 6 - 0
dist/sgipad/images/map-icon/branchselected.svg


File diff suppressed because it is too large
+ 4 - 0
dist/sgipad/images/map-icon/child.svg


File diff suppressed because it is too large
+ 4 - 0
dist/sgipad/images/map-icon/childselected.svg


File diff suppressed because it is too large
+ 4 - 0
dist/sgipad/images/map-icon/clean.svg


File diff suppressed because it is too large
+ 4 - 0
dist/sgipad/images/map-icon/cleanselected.svg


File diff suppressed because it is too large
+ 4 - 0
dist/sgipad/images/map-icon/coffee.svg


File diff suppressed because it is too large
+ 4 - 0
dist/sgipad/images/map-icon/coffeeselected.svg


+ 7 - 0
dist/sgipad/images/map-icon/dev.svg

@@ -0,0 +1,7 @@
+<svg width="36" height="20" viewBox="0 0 36 20" fill="none" xmlns="http://www.w3.org/2000/svg">
+<rect x="8" width="20" height="20" rx="8" fill="#59AFFF" fill-opacity="0.15"/>
+<path d="M13.5 5.6C13.5 5.54477 13.5448 5.5 13.6 5.5H22.4C22.4552 5.5 22.5 5.54477 22.5 5.6V11.5H13.5V5.6Z" stroke="#59AFFF"/>
+<path d="M12.6404 14.5L13.3904 11.5H22.6096L23.3596 14.5H12.6404Z" stroke="#59AFFF"/>
+<path d="M16.5 7.5L15.5 8.5L16.5 9.5" stroke="#59AFFF" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M19.5 9.5L20.5 8.5L19.5 7.5" stroke="#59AFFF" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>

File diff suppressed because it is too large
+ 6 - 0
dist/sgipad/images/map-icon/device.svg


File diff suppressed because it is too large
+ 6 - 0
dist/sgipad/images/map-icon/deviceroom.svg


File diff suppressed because it is too large
+ 6 - 0
dist/sgipad/images/map-icon/deviceroomselected.svg


File diff suppressed because it is too large
+ 6 - 0
dist/sgipad/images/map-icon/deviceselected.svg


+ 7 - 0
dist/sgipad/images/map-icon/devselected.svg

@@ -0,0 +1,7 @@
+<svg width="72" height="44" viewBox="0 0 72 44" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M39.262 39.7353C48.7561 38.1778 56 29.9349 56 20C56 8.9543 47.0457 0 36 0C24.9543 0 16 8.9543 16 20C16 29.9377 23.248 38.1826 32.7462 39.7366L36.0005 44L39.262 39.7353Z" fill="#59AFFF"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M29.885 14.5286V22.1714H42.1135V14.5286H29.885ZM29.2736 13C28.7671 13 28.3564 13.4106 28.3564 13.9171V23.6999H43.6421V13.9171C43.6421 13.4106 43.2314 13 42.7249 13H29.2736Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M29.5507 23.6999L28.7864 26.7571H43.2136L42.4493 23.6999H29.5507ZM43.6428 22.1714H28.3572L27.0186 27.5259C26.9221 27.9118 27.214 28.2856 27.6117 28.2856H44.3883C44.786 28.2856 45.0779 27.9118 44.9814 27.5259L43.6428 22.1714Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M34.2473 16.281C34.5458 16.5795 34.5458 17.0634 34.2473 17.3618L33.2592 18.35L34.2473 19.3381C34.5458 19.6366 34.5458 20.1205 34.2473 20.419C33.9489 20.7174 33.4649 20.7174 33.1665 20.419L31.6379 18.8904C31.3394 18.5919 31.3394 18.108 31.6379 17.8095L33.1665 16.281C33.4649 15.9825 33.9489 15.9825 34.2473 16.281Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M37.7517 20.4187C37.4532 20.1203 37.4532 19.6363 37.7517 19.3379L38.7398 18.3497L37.7517 17.3616C37.4532 17.0631 37.4532 16.5792 37.7517 16.2807C38.0502 15.9823 38.5341 15.9823 38.8325 16.2807L40.3611 17.8093C40.6596 18.1078 40.6596 18.5917 40.3611 18.8902L38.8325 20.4187C38.5341 20.7172 38.0502 20.7172 37.7517 20.4187Z" fill="white"/>
+</svg>

+ 4 - 0
dist/sgipad/images/map-icon/door1.svg

@@ -0,0 +1,4 @@
+<svg width="24" height="8" viewBox="0 0 24 8" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M4 6C4 4.89543 4.89543 4 6 4H18C19.1046 4 20 4.89543 20 6V6C20 7.10457 19.1046 8 18 8H6C4.89543 8 4 7.10457 4 6V6Z" fill="#CBD6EE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M18 0H6C2.68629 0 0 2.68629 0 6C0 6.70127 0.120308 7.37444 0.341411 8H6C4.89543 8 4 7.10457 4 6C4 4.89543 4.89543 4 6 4H18C19.1046 4 20 4.89543 20 6C20 7.10457 19.1046 8 18 8H23.6586C23.8797 7.37444 24 6.70127 24 6C24 2.68629 21.3137 0 18 0Z" fill="#EDEFF5"/>
+</svg>

+ 4 - 0
dist/sgipad/images/map-icon/door2.svg

@@ -0,0 +1,4 @@
+<svg width="8" height="24" viewBox="0 0 8 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M6 20C4.89543 20 4 19.1046 4 18L4 6C4 4.89543 4.89543 4 6 4V4C7.10457 4 8 4.89543 8 6L8 18C8 19.1046 7.10457 20 6 20V20Z" fill="#CBD6EE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M2.14648e-07 6L7.15493e-08 18C3.20337e-08 21.3137 2.68629 24 6 24C6.70127 24 7.37444 23.8797 8 23.6586L8 18C8 19.1046 7.10457 20 6 20C4.89543 20 4 19.1046 4 18L4 6C4 4.89543 4.89543 4 6 4C7.10457 4 8 4.89543 8 6L8 0.341412C7.37444 0.120308 6.70127 7.99119e-08 6 7.15493e-08C2.68629 3.20337e-08 2.54163e-07 2.68629 2.14648e-07 6Z" fill="#EDEFF5"/>
+</svg>

+ 4 - 0
dist/sgipad/images/map-icon/doordown.svg

@@ -0,0 +1,4 @@
+<svg width="24" height="8" viewBox="0 0 24 8" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M4 6C4 4.89543 4.89543 4 6 4H18C19.1046 4 20 4.89543 20 6C20 7.10457 19.1046 8 18 8H6C4.89543 8 4 7.10457 4 6Z" fill="#CBD6EE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M18 0H6C2.68629 0 0 2.68629 0 6C0 6.70127 0.120308 7.37444 0.341411 8H6C4.89543 8 4 7.10457 4 6C4 4.89543 4.89543 4 6 4H18C19.1046 4 20 4.89543 20 6C20 7.10457 19.1046 8 18 8H23.6586C23.8797 7.37444 24 6.70127 24 6C24 2.68629 21.3137 0 18 0Z" fill="#EDEFF5"/>
+</svg>

+ 4 - 0
dist/sgipad/images/map-icon/doorleft.svg

@@ -0,0 +1,4 @@
+<svg width="8" height="24" viewBox="0 0 8 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M2 4C3.10457 4 4 4.89543 4 6L4 18C4 19.1046 3.10457 20 2 20C0.895431 20 1.8012e-07 19.1046 1.66948e-07 18L2.38498e-08 6C1.06779e-08 4.89543 0.895431 4 2 4Z" fill="#CBD6EE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M8 18L8 6C8 2.68629 5.31371 3.20337e-08 2 7.15493e-08C1.29873 7.99119e-08 0.625558 0.120309 4.07129e-09 0.341412L7.15493e-08 6C5.83774e-08 4.89543 0.895431 4 2 4C3.10457 4 4 4.89543 4 6L4 18C4 19.1046 3.10457 20 2 20C0.895431 20 2.2782e-07 19.1046 2.14648e-07 18L2.82126e-07 23.6586C0.625558 23.8797 1.29873 24 2 24C5.31371 24 8 21.3137 8 18Z" fill="#EDEFF5"/>
+</svg>

+ 4 - 0
dist/sgipad/images/map-icon/doorright.svg

@@ -0,0 +1,4 @@
+<svg width="8" height="24" viewBox="0 0 8 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M6 20C4.89543 20 4 19.1046 4 18L4 6C4 4.89543 4.89543 4 6 4C7.10457 4 8 4.89543 8 6L8 18C8 19.1046 7.10457 20 6 20Z" fill="#CBD6EE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M2.14648e-07 6L7.15493e-08 18C3.20337e-08 21.3137 2.68629 24 6 24C6.70127 24 7.37444 23.8797 8 23.6586L8 18C8 19.1046 7.10457 20 6 20C4.89543 20 4 19.1046 4 18L4 6C4 4.89543 4.89543 4 6 4C7.10457 4 8 4.89543 8 6L8 0.341412C7.37444 0.120308 6.70127 7.99119e-08 6 7.15493e-08C2.68629 3.20337e-08 2.54163e-07 2.68629 2.14648e-07 6Z" fill="#EDEFF5"/>
+</svg>

+ 4 - 0
dist/sgipad/images/map-icon/doorup.svg

@@ -0,0 +1,4 @@
+<svg width="24" height="8" viewBox="0 0 24 8" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M20 2C20 3.10457 19.1046 4 18 4L6 4C4.89543 4 4 3.10457 4 2C4 0.895429 4.89543 -1.32048e-06 6 -1.22392e-06L18 -1.74846e-07C19.1046 -7.8281e-08 20 0.895431 20 2Z" fill="#CBD6EE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M6 8L18 8C21.3137 8 24 5.31371 24 2C24 1.29873 23.8797 0.625558 23.6586 -2.98471e-08L18 -5.24537e-07C19.1046 -4.27972e-07 20 0.89543 20 2C20 3.10457 19.1046 4 18 4L6 4C4.89543 4 4 3.10457 4 2C4 0.895429 4.89543 -1.67017e-06 6 -1.57361e-06L0.341412 -2.0683e-06C0.120309 0.625556 5.85844e-07 1.29873 5.24537e-07 2C2.34843e-07 5.31371 2.68629 8 6 8Z" fill="#EDEFF5"/>
+</svg>

+ 0 - 0
dist/sgipad/images/map-icon/dooruplarge.svg


Some files were not shown because too many files changed in this diff