commit 82205b217b8d115b6f6facc275d6800815075b2e Author: cai <864601551@qq.com> Date: Wed May 14 17:38:11 2025 +0800 init diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..773f37c --- /dev/null +++ b/.env.development @@ -0,0 +1,9 @@ + +#开发环境配置 +VITE_APP_ENV = 'development' + +#接口地址 +VITE_APP_API=/api + +#页面基础路径 +VITE_APP_BASE=/nenghui_uat/ diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..87579bf --- /dev/null +++ b/.env.production @@ -0,0 +1,13 @@ +#生产环境配置 +VITE_APP_ENV = 'production' + +#接口地址 +#填写前缀 [/api] 需要用nginx进行反向代理 +#填写地址 [https://api.bladex.cn] 只需要保证接口支持跨域即可, 无需再做代理 +VITE_APP_API=/monitor-api + +#页面基础路径 +VITE_APP_BASE=/monitor/ + +# 是否在打包时开启压缩,支持 gzip 和 brotli +VITE_BUILD_COMPRESS = gzip diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..07e6e47 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/node_modules diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..2c268ae --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +@saber:registry=https://center.javablade.com/api/packages/blade/npm/ +//center.javablade.com/api/packages/blade/npm/:_authToken=9749f061091b44ff4662648725bd7ad8b8fcc045 diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..93a9551 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,9 @@ +{ + "printWidth": 100, + "tabWidth": 2, + "semi": true, + "singleAttributePerLine": false, + "bracketSpacing": true, + "singleQuote": true, + "arrowParens": "avoid" +} diff --git a/build.sh b/build.sh new file mode 100644 index 0000000..74b413a --- /dev/null +++ b/build.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +echo "====================打包文件====================" +yarn build:prod +echo "====================传输文件====================" + +scp -P 22 -r ./dist/** root@192.168.0.188:/docker/nginx/web/html + +echo "====================部署完毕====================" diff --git a/index.html b/index.html new file mode 100644 index 0000000..d8af954 --- /dev/null +++ b/index.html @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + 能辉UAT + + + +
+
+
+
+
系统加载中
+
+
+ + + + diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..94cf448 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "baseUrl": "./", + "paths": { + "@/*": [ + "src/*" + ] + } + }, + "exclude": [ + "node_modules", + "dist" + ] +} diff --git a/mock/crud.js b/mock/crud.js new file mode 100644 index 0000000..7e60655 --- /dev/null +++ b/mock/crud.js @@ -0,0 +1,50 @@ +export default [ + { + url: '/crud/list', + method: 'get', + response: () => { + return { + data: { + total: 10, + data: Array(10).fill( + { + name: 'small', + sex: '男', + }, + { + name: 'small', + sex: '男', + } + ), + }, + }; + }, + }, + { + url: '/crud', + method: 'post', + response: () => { + return { + data: {}, + }; + }, + }, + { + url: '/crud', + method: 'put', + response: () => { + return { + data: {}, + }; + }, + }, + { + url: '/crud', + method: 'delete', + response: () => { + return { + data: {}, + }; + }, + }, +]; diff --git a/mock/menu.js b/mock/menu.js new file mode 100644 index 0000000..4b23d1c --- /dev/null +++ b/mock/menu.js @@ -0,0 +1,296 @@ +function randomColor() { + return '#' + Math.random().toString(16).substr(2, 6).toUpperCase(); +} + +const top = [ + { + label: '首页', + path: '/wel/index', + icon: 'el-icon-document', + meta: { + i18n: 'dashboard', + keepAlive: true + }, + parentId: 0, + }, + { + label: '测试', + icon: 'el-icon-document', + path: '/test', + meta: { + i18n: 'test', + }, + parentId: 1, + }, + { + label: '更多', + icon: 'el-icon-document', + path: '/wel/more', + meta: { + menu: false, + i18n: 'more', + }, + parentId: 2, + }, +]; +const first = [ + { + label: '缓冲', + path: '/cache', + component: 'views/util/cache', + icon: 'icon-caidan', + iconBgColor: randomColor(), + meta: { + i18n: 'cache', + keepAlive: true, + }, + children: [], + }, + { + label: '参数', + path: '/params', + component: 'views/util/params', + icon: 'icon-caidan', + iconBgColor: randomColor(), + meta: { + i18n: 'params', + }, + }, + { + label: '详情页', + path: '/detail', + component: 'views/util/detail', + icon: 'icon-caidan', + iconBgColor: randomColor(), + meta: { + i18n: 'detail', + }, + }, + { + label: '标签', + path: '/tags', + component: 'views/util/tags', + icon: 'icon-caidan', + iconBgColor: randomColor(), + meta: { + i18n: 'tags', + }, + children: [], + }, + { + label: '存储', + path: '/store', + component: 'views/util/store', + icon: 'icon-caidan', + iconBgColor: randomColor(), + meta: { + i18n: 'store', + }, + children: [], + }, + { + label: '日志监控', + path: '/logs', + component: 'views/util/logs', + icon: 'icon-caidan', + iconBgColor: randomColor(), + meta: { + i18n: 'logs', + }, + children: [], + }, + { + label: '返回顶部', + path: '/top', + component: 'views/util/top', + icon: 'icon-caidan', + iconBgColor: randomColor(), + meta: { + i18n: 'top', + }, + children: [], + }, + { + label: '图钉', + path: '/affix', + component: 'views/util/affix', + icon: 'icon-caidan', + iconBgColor: randomColor(), + meta: { + i18n: 'affix', + }, + children: [], + }, + { + label: '多级菜单', + path: '/deep', + iconBgColor: randomColor(), + children: [ + { + label: '多级菜单1-1', + path: 'deep', + iconBgColor: randomColor(), + children: [ + { + label: '多级菜单2-1', + path: 'deep', + iconBgColor: randomColor(), + component: 'views/util/deep', + }, + ], + }, + ], + }, + { + label: '外部页面', + path: '/out', + icon: 'icon-caidan', + iconBgColor: randomColor(), + meta: { + i18n: 'out', + }, + children: [ + { + label: '官方网站(内嵌页面)', + path: 'website', + href: 'https://avuejs.com', + icon: 'icon-caidan', + iconBgColor: randomColor(), + meta: { + i18n: 'website', + }, + }, + { + label: '全局函数(外链页面)', + path: 'api', + href: 'https://avuejs.com/docs/api?test1=1&test2=2', + icon: 'icon-caidan', + iconBgColor: randomColor(), + meta: { + target: '_blank', + i18n: 'api', + }, + }, + ], + }, + { + label: '组合API方式', + path: '/setup', + component: 'views/util/setup', + icon: 'icon-caidan', + iconBgColor: randomColor(), + children: [], + }, + { + label: '通用模板', + path: '/crud', + component: 'views/util/crud', + icon: 'icon-caidan', + iconBgColor: randomColor(), + meta: { + i18n: 'crud', + }, + children: [], + }, + { + label: '表格', + path: '/table', + component: 'views/util/table', + icon: 'icon-caidan', + iconBgColor: randomColor(), + meta: { + i18n: 'table', + }, + children: [], + }, + { + label: '表单', + path: '/form', + component: 'views/util/form', + icon: 'icon-caidan', + iconBgColor: randomColor(), + meta: { + i18n: 'form', + }, + children: [], + }, + { + label: '异常页', + path: '/error', + meta: { + i18n: 'error', + }, + icon: 'icon-caidan', + iconBgColor: randomColor(), + children: [ + { + label: 'error403', + path: 'error', + component: 'components/error-page/403', + icon: 'icon-caidan', + iconBgColor: randomColor(), + children: [], + }, + { + label: 'error404', + path: '404', + component: 'components/error-page/404', + icon: 'icon-caidan', + iconBgColor: randomColor(), + children: [], + }, + { + label: 'error500', + path: '500', + component: 'components/error-page/500', + icon: 'icon-caidan', + iconBgColor: randomColor(), + children: [], + }, + ], + }, + { + label: '关于', + path: '/about', + component: 'views/util/about', + icon: 'icon-caidan', + iconBgColor: randomColor(), + meta: { + i18n: 'about', + }, + children: [], + }, +]; +const second = [ + { + label: '测试页面', + path: '/test', + component: 'views/util/test', + icon: 'icon-caidan', + meta: { + i18n: 'test', + }, + children: [], + }, +]; +let menu = [first, second]; +export default [ + { + url: '/user/getMenu', + method: 'get', + response: ({ query }) => { + return { + data: menu[query.type || 0] || [], + }; + }, + }, + { + url: '/user/getTopMenu', + method: 'get', + response: () => { + return { + data: top, + }; + }, + }, +]; diff --git a/mock/user.js b/mock/user.js new file mode 100644 index 0000000..213d80e --- /dev/null +++ b/mock/user.js @@ -0,0 +1,67 @@ +export default [ + { + url: '/user/login', + method: 'post', + response: () => { + return { + data: new Date().getTime() + '', + }; + }, + }, + { + url: '/user/logout', + method: 'get', + response: () => { + return { + data: new Date().getTime() + '', + }; + }, + }, + { + url: '/user/logout', + method: 'post', + response: () => { + return { + data: new Date().getTime() + '', + }; + }, + }, + { + url: '/user/refresh', + method: 'post', + response: () => { + return { + data: new Date().getTime() + '', + }; + }, + }, + { + url: '/user/getUserInfo', + method: 'get', + response: () => { + return { + data: { + userInfo: { + username: 'admin', + name: 'avue', + avatar: 'https://gitee.com/uploads/61/632261_smallweigit.jpg', + }, + roles: 'admin', + permission: [ + 'sys_crud_btn_add', + 'sys_crud_btn_export', + 'sys_menu_btn_add', + 'sys_menu_btn_edit', + 'sys_menu_btn_del', + 'sys_role_btn1', + 'sys_role_btn2', + 'sys_role_btn3', + 'sys_role_btn4', + 'sys_role_btn5', + 'sys_role_btn6', + ], + }, + }; + }, + }, +]; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..36f47ee --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5119 @@ +{ + "name": "nenghui-uat", + "version": "4.0.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "nenghui-uat", + "version": "4.0.1", + "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", + "@element-plus/icons-vue": "^2.0.9", + "@saber/nf-design-base-elp": "^1.2.0", + "@smallwei/avue": "^3.4.1", + "animate.css": "^4.1.1", + "avue-plugin-ueditor": "^1.0.3", + "axios": "^0.21.1", + "crypto-js": "^4.1.1", + "dayjs": "^1.10.6", + "echarts": "^5.5.0", + "element-plus": "^2.3.7", + "js-base64": "^3.7.4", + "js-cookie": "^3.0.0", + "js-md5": "^0.7.3", + "mockjs": "^1.1.0", + "nprogress": "^0.2.0", + "vite-plugin-mock": "^2.9.4", + "vue": "^3.2.40", + "vue-echarts": "^6.7.2", + "vue-i18n": "^9.1.9", + "vue-router": "^4.2.4", + "vuex": "^4.0.2" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^1.3.0", + "@vue/compiler-sfc": "^3.0.5", + "prettier": "^2.8.7", + "sass": "^1.37.5", + "unplugin-auto-import": "^0.11.2", + "vite": "^2.9.16", + "vite-plugin-compression": "^0.5.1", + "vite-plugin-vue-setup-extend": "^0.4.0" + } + }, + "node_modules/@amap/amap-jsapi-loader": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz", + "integrity": "sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw==" + }, + "node_modules/@antfu/utils": { + "version": "0.7.7", + "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.7.tgz", + "integrity": "sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.6", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.23.7", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.7.tgz", + "integrity": "sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bpmn-io/diagram-js-ui": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bpmn-io/diagram-js-ui/-/diagram-js-ui-0.2.3.tgz", + "integrity": "sha512-OGyjZKvGK8tHSZ0l7RfeKhilGoOGtFDcoqSGYkX0uhFlo99OVZ9Jn1K7TJGzcE9BdKwvA5Y5kGqHEhdTxHvFfw==", + "dependencies": { + "htm": "^3.1.1", + "preact": "^10.11.2" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@element-plus/icons-vue": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.1.0.tgz", + "integrity": "sha512-PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA==", + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", + "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", + "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", + "dependencies": { + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", + "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==" + }, + "node_modules/@intlify/core-base": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.2.2.tgz", + "integrity": "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==", + "dependencies": { + "@intlify/devtools-if": "9.2.2", + "@intlify/message-compiler": "9.2.2", + "@intlify/shared": "9.2.2", + "@intlify/vue-devtools": "9.2.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@intlify/devtools-if": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/@intlify/devtools-if/-/devtools-if-9.2.2.tgz", + "integrity": "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==", + "dependencies": { + "@intlify/shared": "9.2.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.2.2.tgz", + "integrity": "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==", + "dependencies": { + "@intlify/shared": "9.2.2", + "source-map": "0.6.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@intlify/shared": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.2.2.tgz", + "integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@intlify/vue-devtools": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz", + "integrity": "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==", + "dependencies": { + "@intlify/core-base": "9.2.2", + "@intlify/shared": "9.2.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@saber/nf-design-base-elp": { + "version": "1.3.0", + "resolved": "https://center.javablade.com/api/packages/blade/npm/%40saber%2Fnf-design-base-elp/-/1.3.0/nf-design-base-elp-1.3.0.tgz", + "integrity": "sha512-sKUkhErjggUjH+hoBTVpcUC7j38KAkGUloIVXIRl6YP1WT14QXvtf3iu8iCIOBO8iPKHgrBiq4h80UW9+qqbjQ==", + "dependencies": { + "bpmn-js": "11.5.0", + "codemirror": "^5", + "randomcolor": "^0.6.2" + } + }, + "node_modules/@smallwei/avue": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@smallwei/avue/-/avue-3.6.2.tgz", + "integrity": "sha512-Ifkt0o7KLsAMptfoNMG7qYS86OL2pEet761wWZyZGu8e48wuNNPOfqx5jnibGjx2oIoKtYUFh7tFdllOCth2EQ==", + "dependencies": { + "@element-plus/icons-vue": "^2.0.6", + "countup.js": "^1.9.3", + "dayjs": "^1.10.4", + "lodash": "^4.17.21" + }, + "peerDependencies": { + "element-plus": ">=2.2.0", + "vue": ">=3.2.0" + } + }, + "node_modules/@transloadit/prettier-bytes": { + "version": "0.0.7", + "resolved": "https://registry.npmmirror.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz", + "integrity": "sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==" + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@types/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==" + }, + "node_modules/@types/lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-w/P33JFeySuhN6JLkysYUK2gEmy9kHHFN7E8ro0tkfmlDOgxBDzWEZ/J8cWA+fHqFevpswDTFZnDx+R9lbL6xw==" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/mockjs": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/@types/mockjs/-/mockjs-1.0.10.tgz", + "integrity": "sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g==" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", + "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==" + }, + "node_modules/@uppy/companion-client": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/@uppy/companion-client/-/companion-client-2.2.2.tgz", + "integrity": "sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==", + "dependencies": { + "@uppy/utils": "^4.1.2", + "namespace-emitter": "^2.0.1" + } + }, + "node_modules/@uppy/core": { + "version": "2.3.4", + "resolved": "https://registry.npmmirror.com/@uppy/core/-/core-2.3.4.tgz", + "integrity": "sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==", + "dependencies": { + "@transloadit/prettier-bytes": "0.0.7", + "@uppy/store-default": "^2.1.1", + "@uppy/utils": "^4.1.3", + "lodash.throttle": "^4.1.1", + "mime-match": "^1.0.2", + "namespace-emitter": "^2.0.1", + "nanoid": "^3.1.25", + "preact": "^10.5.13" + } + }, + "node_modules/@uppy/store-default": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/@uppy/store-default/-/store-default-2.1.1.tgz", + "integrity": "sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==" + }, + "node_modules/@uppy/utils": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/@uppy/utils/-/utils-4.1.3.tgz", + "integrity": "sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==", + "dependencies": { + "lodash.throttle": "^4.1.1" + } + }, + "node_modules/@uppy/xhr-upload": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz", + "integrity": "sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==", + "dependencies": { + "@uppy/companion-client": "^2.2.2", + "@uppy/utils": "^4.1.2", + "nanoid": "^3.1.25" + }, + "peerDependencies": { + "@uppy/core": "^2.3.3" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "1.10.2", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-1.10.2.tgz", + "integrity": "sha512-/QJ0Z9qfhAFtKRY+r57ziY4BSbGUTGsPRMpB/Ron3QPwBZM4OZAZHdTa4a8PafCwU5DTatXG8TMDoP8z+oDqJw==", + "dev": true, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "vite": "^2.5.10" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz", + "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.21.3", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", + "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", + "dev": true, + "dependencies": { + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", + "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-ssr": "3.3.4", + "@vue/reactivity-transform": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0", + "postcss": "^8.1.10", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", + "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.1.tgz", + "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==" + }, + "node_modules/@vue/reactivity": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.13.tgz", + "integrity": "sha512-fjzCxceMahHhi4AxUBzQqqVhuA21RJ0COaWTbIBl1PruGW1CeY97louZzLi4smpYx+CHfFPPU/CS8NybbGvPKQ==", + "dependencies": { + "@vue/shared": "3.3.13" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", + "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0" + } + }, + "node_modules/@vue/reactivity/node_modules/@vue/shared": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.13.tgz", + "integrity": "sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==" + }, + "node_modules/@vue/runtime-core": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.13.tgz", + "integrity": "sha512-1TzA5TvGuh2zUwMJgdfvrBABWZ7y8kBwBhm7BXk8rvdx2SsgcGfz2ruv2GzuGZNvL1aKnK8CQMV/jFOrxNQUMA==", + "dependencies": { + "@vue/reactivity": "3.3.13", + "@vue/shared": "3.3.13" + } + }, + "node_modules/@vue/runtime-core/node_modules/@vue/shared": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.13.tgz", + "integrity": "sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==" + }, + "node_modules/@vue/runtime-dom": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.13.tgz", + "integrity": "sha512-JJkpE8R/hJKXqVTgUoODwS5wqKtOsmJPEqmp90PDVGygtJ4C0PtOkcEYXwhiVEmef6xeXcIlrT3Yo5aQ4qkHhQ==", + "dependencies": { + "@vue/runtime-core": "3.3.13", + "@vue/shared": "3.3.13", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/runtime-dom/node_modules/@vue/shared": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.13.tgz", + "integrity": "sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==" + }, + "node_modules/@vue/server-renderer": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.13.tgz", + "integrity": "sha512-vSnN+nuf6iSqTL3Qgx/9A+BT+0Zf/VJOgF5uMZrKjYPs38GMYyAU1coDyBNHauehXDaP+zl73VhwWv0vBRBHcg==", + "dependencies": { + "@vue/compiler-ssr": "3.3.13", + "@vue/shared": "3.3.13" + }, + "peerDependencies": { + "vue": "3.3.13" + } + }, + "node_modules/@vue/server-renderer/node_modules/@vue/compiler-core": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.13.tgz", + "integrity": "sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==", + "dependencies": { + "@babel/parser": "^7.23.5", + "@vue/shared": "3.3.13", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/server-renderer/node_modules/@vue/compiler-dom": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.13.tgz", + "integrity": "sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==", + "dependencies": { + "@vue/compiler-core": "3.3.13", + "@vue/shared": "3.3.13" + } + }, + "node_modules/@vue/server-renderer/node_modules/@vue/compiler-ssr": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.13.tgz", + "integrity": "sha512-d/P3bCeUGmkJNS1QUZSAvoCIW4fkOKK3l2deE7zrp0ypJEy+En2AcypIkqvcFQOcw3F0zt2VfMvNsA9JmExTaw==", + "dependencies": { + "@vue/compiler-dom": "3.3.13", + "@vue/shared": "3.3.13" + } + }, + "node_modules/@vue/server-renderer/node_modules/@vue/shared": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.13.tgz", + "integrity": "sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==" + }, + "node_modules/@vue/shared": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.4.tgz", + "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==", + "dev": true + }, + "node_modules/@vueuse/core": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz", + "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==", + "dependencies": { + "@types/web-bluetooth": "^0.0.16", + "@vueuse/metadata": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/metadata": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz", + "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz", + "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==", + "dependencies": { + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@wangeditor/basic-modules": { + "version": "1.1.7", + "resolved": "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz", + "integrity": "sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==", + "dependencies": { + "is-url": "^1.2.4" + }, + "peerDependencies": { + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "lodash.throttle": "^4.1.1", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/code-highlight": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz", + "integrity": "sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==", + "dependencies": { + "prismjs": "^1.23.0" + }, + "peerDependencies": { + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/core": { + "version": "1.1.19", + "resolved": "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.19.tgz", + "integrity": "sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==", + "dependencies": { + "@types/event-emitter": "^0.3.3", + "event-emitter": "^0.3.5", + "html-void-elements": "^2.0.0", + "i18next": "^20.4.0", + "scroll-into-view-if-needed": "^2.2.28", + "slate-history": "^0.66.0" + }, + "peerDependencies": { + "@uppy/core": "^2.1.1", + "@uppy/xhr-upload": "^2.0.3", + "dom7": "^3.0.0", + "is-hotkey": "^0.2.0", + "lodash.camelcase": "^4.3.0", + "lodash.clonedeep": "^4.5.0", + "lodash.debounce": "^4.0.8", + "lodash.foreach": "^4.5.0", + "lodash.isequal": "^4.5.0", + "lodash.throttle": "^4.1.1", + "lodash.toarray": "^4.4.0", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/editor": { + "version": "5.1.23", + "resolved": "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.23.tgz", + "integrity": "sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==", + "dependencies": { + "@uppy/core": "^2.1.1", + "@uppy/xhr-upload": "^2.0.3", + "@wangeditor/basic-modules": "^1.1.7", + "@wangeditor/code-highlight": "^1.0.3", + "@wangeditor/core": "^1.1.19", + "@wangeditor/list-module": "^1.0.5", + "@wangeditor/table-module": "^1.1.4", + "@wangeditor/upload-image-module": "^1.0.2", + "@wangeditor/video-module": "^1.1.4", + "dom7": "^3.0.0", + "is-hotkey": "^0.2.0", + "lodash.camelcase": "^4.3.0", + "lodash.clonedeep": "^4.5.0", + "lodash.debounce": "^4.0.8", + "lodash.foreach": "^4.5.0", + "lodash.isequal": "^4.5.0", + "lodash.throttle": "^4.1.1", + "lodash.toarray": "^4.4.0", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/editor-for-vue": { + "version": "5.1.12", + "resolved": "https://registry.npmmirror.com/@wangeditor/editor-for-vue/-/editor-for-vue-5.1.12.tgz", + "integrity": "sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==", + "peerDependencies": { + "@wangeditor/editor": ">=5.1.0", + "vue": "^3.0.5" + } + }, + "node_modules/@wangeditor/list-module": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@wangeditor/list-module/-/list-module-1.0.5.tgz", + "integrity": "sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==", + "peerDependencies": { + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/table-module": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.4.tgz", + "integrity": "sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==", + "peerDependencies": { + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "lodash.isequal": "^4.5.0", + "lodash.throttle": "^4.1.1", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/upload-image-module": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz", + "integrity": "sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==", + "peerDependencies": { + "@uppy/core": "^2.0.3", + "@uppy/xhr-upload": "^2.0.3", + "@wangeditor/basic-modules": "1.x", + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "lodash.foreach": "^4.5.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/video-module": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz", + "integrity": "sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==", + "peerDependencies": { + "@uppy/core": "^2.1.4", + "@uppy/xhr-upload": "^2.0.7", + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/animate.css": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/animate.css/-/animate.css-4.1.1.tgz", + "integrity": "sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==" + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" + }, + "node_modules/avue-plugin-ueditor": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/avue-plugin-ueditor/-/avue-plugin-ueditor-1.0.3.tgz", + "integrity": "sha512-hly5hcS5g9d9uoSY5m6h7Kf/o8wHXKQO9LZICbbtmiEX6xYlWcH0mqL0j5rKdbUVNNcjzUThBGaDVWWzXqqxBQ==", + "dependencies": { + "@wangeditor/editor": "^5.1.23", + "@wangeditor/editor-for-vue": "^5.1.12", + "axios": "^0.18.0", + "vue": "^3.2.47" + }, + "peerDependencies": { + "axios": ">=0.18.0", + "vue": ">=3.2.0" + } + }, + "node_modules/avue-plugin-ueditor/node_modules/axios": { + "version": "0.18.1", + "resolved": "https://registry.npmmirror.com/axios/-/axios-0.18.1.tgz", + "integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==", + "deprecated": "Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410", + "dependencies": { + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + } + }, + "node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmmirror.com/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/axios/node_modules/follow-redirects": { + "version": "1.15.4", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bpmn-js": { + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/bpmn-js/-/bpmn-js-11.5.0.tgz", + "integrity": "sha512-Bdj53UvfiDtGE1wmiBmpgjl5RMLhCGV/C841dyC+t4kBHj7vApAeeHs2Qiycj390HO4B2U8UDROLT7yjdXEEUA==", + "dependencies": { + "bpmn-moddle": "^8.0.0", + "diagram-js": "^11.9.1", + "diagram-js-direct-editing": "^2.0.0", + "ids": "^1.0.0", + "inherits-browser": "^0.1.0", + "min-dash": "^4.0.0", + "min-dom": "^4.0.3", + "object-refs": "^0.3.0", + "tiny-svg": "^3.0.0" + } + }, + "node_modules/bpmn-moddle": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-8.1.0.tgz", + "integrity": "sha512-yI5OAFfYVJwViKTsTsonVfCBPtB3MlefADUORwNIxxBOMp21vnoxuxsdgUWlPH/dvAEZh/+mr8UtqOBNu8NC5Q==", + "dependencies": { + "min-dash": "^4.0.0", + "moddle": "^6.2.3", + "moddle-xml": "^10.1.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/codemirror": { + "version": "5.65.18", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.18.tgz", + "integrity": "sha512-Gaz4gHnkbHMGgahNt3CA5HBk5lLQBqmD/pBgeB4kQU6OedZmqMBjlRF0LSrp2tJ4wlLNPm2FfaUd1pDy0mdlpA==" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "engines": { + "node": ">=16" + } + }, + "node_modules/component-event": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/component-event/-/component-event-0.2.1.tgz", + "integrity": "sha512-wGA++isMqiDq1jPYeyv2as/Bt/u+3iLW0rEa+8NQ82jAv3TgqMiCM+B2SaBdn2DfLilLjjq736YcezihRYhfxw==" + }, + "node_modules/compute-scroll-into-view": { + "version": "1.0.20", + "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", + "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==" + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmmirror.com/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/countup.js": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/countup.js/-/countup.js-1.9.3.tgz", + "integrity": "sha512-UHf2P/mFKaESqdPq+UdBJm/1y8lYdlcDd0nTZHNC8cxWoJwZr1Eldm1PpWui446vDl5Pd8PtRYkr3q6K4+Qa5A==" + }, + "node_modules/crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/dayjs": { + "version": "1.11.7", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.7.tgz", + "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" + }, + "node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/diagram-js": { + "version": "11.13.1", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.13.1.tgz", + "integrity": "sha512-6kO0rBN6aBIQiMELfv1oX2Ohes/brlIPuOVZUYAioeWM0EyuazhAXgHeq8iKFt29daU9NGRr4n78esGx8QjtjQ==", + "dependencies": { + "@bpmn-io/diagram-js-ui": "^0.2.2", + "clsx": "^1.2.1", + "didi": "^9.0.2", + "hammerjs": "^2.0.1", + "inherits-browser": "^0.1.0", + "min-dash": "^4.1.0", + "min-dom": "^4.1.0", + "object-refs": "^0.3.0", + "path-intersection": "^2.2.1", + "tiny-svg": "^3.0.1" + } + }, + "node_modules/diagram-js-direct-editing": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/diagram-js-direct-editing/-/diagram-js-direct-editing-2.1.2.tgz", + "integrity": "sha512-VpccLAnLqLF1cp3fk363QUbRVTd/qTcj2oOb+IqgcmOiWszJp7J9Ta6y5GjUvw48hDZpzCatlmWwA4CJ3MaYGQ==", + "dependencies": { + "min-dash": "^4.0.0", + "min-dom": "^4.0.2" + }, + "engines": { + "node": "*" + }, + "peerDependencies": { + "diagram-js": "*" + } + }, + "node_modules/didi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/didi/-/didi-9.0.2.tgz", + "integrity": "sha512-q2+aj+lnJcUweV7A9pdUrwFr4LHVmRPwTmQLtHPFz4aT7IBoryN6Iy+jmFku+oIzr5ebBkvtBCOb87+dJhb7bg==" + }, + "node_modules/dom7": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz", + "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==", + "dependencies": { + "ssr-window": "^3.0.0-alpha.1" + } + }, + "node_modules/domify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/domify/-/domify-1.4.2.tgz", + "integrity": "sha512-m4yreHcUWHBncGVV7U+yQzc12vIlq0jMrtHZ5mW6dQMiL/7skSYNVX9wqKwOtyO9SGCgevrAFEgOCAHmamHTUA==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/echarts": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.5.0.tgz", + "integrity": "sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==", + "dependencies": { + "tslib": "2.3.0", + "zrender": "5.5.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/element-plus": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.9.3.tgz", + "integrity": "sha512-6tSLp5XytDS4TMZ0P3aGZnr7MXTagfNycepNfIDitd9IgwM9y01+Ssu6mglNi8RiXYhek6LBWNOd/cvpIO12+w==", + "dependencies": { + "@ctrl/tinycolor": "^3.4.1", + "@element-plus/icons-vue": "^2.3.1", + "@floating-ui/dom": "^1.0.1", + "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", + "@types/lodash": "^4.14.182", + "@types/lodash-es": "^4.17.6", + "@vueuse/core": "^9.1.0", + "async-validator": "^4.2.5", + "dayjs": "^1.11.13", + "escape-html": "^1.0.3", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "lodash-unified": "^1.0.2", + "memoize-one": "^6.0.0", + "normalize-wheel-es": "^1.2.0" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/element-plus/node_modules/@element-plus/icons-vue": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz", + "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==", + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/element-plus/node_modules/@popperjs/core": { + "name": "@sxzz/popperjs-es", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz", + "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==" + }, + "node_modules/element-plus/node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es5-ext": { + "version": "0.10.62", + "resolved": "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.62.tgz", + "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", + "hasInstallScript": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/esbuild": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.54.tgz", + "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/linux-loong64": "0.14.54", + "esbuild-android-64": "0.14.54", + "esbuild-android-arm64": "0.14.54", + "esbuild-darwin-64": "0.14.54", + "esbuild-darwin-arm64": "0.14.54", + "esbuild-freebsd-64": "0.14.54", + "esbuild-freebsd-arm64": "0.14.54", + "esbuild-linux-32": "0.14.54", + "esbuild-linux-64": "0.14.54", + "esbuild-linux-arm": "0.14.54", + "esbuild-linux-arm64": "0.14.54", + "esbuild-linux-mips64le": "0.14.54", + "esbuild-linux-ppc64le": "0.14.54", + "esbuild-linux-riscv64": "0.14.54", + "esbuild-linux-s390x": "0.14.54", + "esbuild-netbsd-64": "0.14.54", + "esbuild-openbsd-64": "0.14.54", + "esbuild-sunos-64": "0.14.54", + "esbuild-windows-32": "0.14.54", + "esbuild-windows-64": "0.14.54", + "esbuild-windows-arm64": "0.14.54" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", + "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", + "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", + "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", + "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", + "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", + "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", + "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", + "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", + "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", + "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", + "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", + "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", + "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", + "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", + "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", + "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", + "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", + "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", + "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", + "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmmirror.com/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.16.0", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "dependencies": { + "debug": "=3.1.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/hammerjs": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", + "integrity": "sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/htm": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/htm/-/htm-3.1.1.tgz", + "integrity": "sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==" + }, + "node_modules/html-void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz", + "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/i18next": { + "version": "20.6.1", + "resolved": "https://registry.npmmirror.com/i18next/-/i18next-20.6.1.tgz", + "integrity": "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==", + "dependencies": { + "@babel/runtime": "^7.12.0" + } + }, + "node_modules/ids": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/ids/-/ids-1.0.5.tgz", + "integrity": "sha512-XQ0yom/4KWTL29sLG+tyuycy7UmeaM/79GRtSJq6IG9cJGIPeBz5kwDCguie3TwxaMNIc3WtPi0cTa1XYHicpw==" + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmmirror.com/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/immutable": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", + "dev": true + }, + "node_modules/inherits-browser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/inherits-browser/-/inherits-browser-0.1.0.tgz", + "integrity": "sha512-CJHHvW3jQ6q7lzsXPpapLdMx5hDpSF3FSh45pwsj6bKxJJ8Nl8v43i5yXnr3BdfOimGHKyniewQtnAIp3vyJJw==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hotkey": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/is-hotkey/-/is-hotkey-0.2.0.tgz", + "integrity": "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" + }, + "node_modules/js-base64": { + "version": "3.7.5", + "resolved": "https://registry.npmmirror.com/js-base64/-/js-base64-3.7.5.tgz", + "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" + }, + "node_modules/js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "engines": { + "node": ">=14" + } + }, + "node_modules/js-md5": { + "version": "0.7.3", + "resolved": "https://registry.npmmirror.com/js-md5/-/js-md5-0.7.3.tgz", + "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==" + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash-unified": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz", + "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==", + "peerDependencies": { + "@types/lodash-es": "*", + "lodash": "*", + "lodash-es": "*" + } + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead." + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" + }, + "node_modules/lodash.toarray": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz", + "integrity": "sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==" + }, + "node_modules/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/mime-match/-/mime-match-1.0.2.tgz", + "integrity": "sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==", + "dependencies": { + "wildcard": "^1.1.0" + } + }, + "node_modules/min-dash": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-4.2.2.tgz", + "integrity": "sha512-qbhSYUxk6mBaF096B3JOQSumXbKWHenmT97cSpdNzgkWwGjhjhE/KZODCoDNhI2I4C9Cb6R/Q13S4BYkUSXoXQ==" + }, + "node_modules/min-dom": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-4.2.1.tgz", + "integrity": "sha512-TMoL8SEEIhUWYgkj7XMSgxmwSyGI+4fP2KFFGnN3FbHfbGHVdsLYSz8LoIsgPhz4dWRmLvxWWSMgzZMJW5sZuA==", + "dependencies": { + "component-event": "^0.2.1", + "domify": "^1.4.1", + "min-dash": "^4.2.1" + } + }, + "node_modules/mlly": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.4.2.tgz", + "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==", + "dev": true, + "dependencies": { + "acorn": "^8.10.0", + "pathe": "^1.1.1", + "pkg-types": "^1.0.3", + "ufo": "^1.3.0" + } + }, + "node_modules/mockjs": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/mockjs/-/mockjs-1.1.0.tgz", + "integrity": "sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==", + "dependencies": { + "commander": "*" + }, + "bin": { + "random": "bin/random" + } + }, + "node_modules/moddle": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/moddle/-/moddle-6.2.3.tgz", + "integrity": "sha512-bLVN+ZHL3aKnhxc19XtjUfvdJsS3EsiEJC7bT6YPD11qYmTzvsxrGgyYz1Ouof7TZuGw0lDJ1OLmEnxcpQWk3Q==", + "dependencies": { + "min-dash": "^4.0.0" + } + }, + "node_modules/moddle-xml": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/moddle-xml/-/moddle-xml-10.1.0.tgz", + "integrity": "sha512-erWckwLt+dYskewKXJso9u+aAZ5172lOiYxSOqKCPTy7L/xmqH1PoeoA7eVC7oJTt3PqF5TkZzUmbjGH6soQBg==", + "dependencies": { + "min-dash": "^4.0.0", + "moddle": "^6.0.0", + "saxen": "^8.1.2" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/namespace-emitter": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz", + "integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==" + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-wheel-es": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", + "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" + }, + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" + }, + "node_modules/object-refs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/object-refs/-/object-refs-0.3.0.tgz", + "integrity": "sha512-eP0ywuoWOaDoiake/6kTJlPJhs+k0qNm4nYRzXLNHj6vh+5M3i9R1epJTdxIPGlhWc4fNRQ7a6XJNCX+/L4FOQ==" + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-intersection": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-intersection/-/path-intersection-2.2.1.tgz", + "integrity": "sha512-9u8xvMcSfuOiStv9bPdnRJQhGQXLKurew94n4GPQCdH1nj9QKC9ObbNoIpiRq8skiOBxKkt277PgOoFgAt3/rA==" + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-to-regexp": { + "version": "6.2.1", + "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==" + }, + "node_modules/pathe": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.1.tgz", + "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.0.3.tgz", + "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.2.0", + "pathe": "^1.1.0" + } + }, + "node_modules/postcss": { + "version": "8.4.33", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.33.tgz", + "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss/node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/preact": { + "version": "10.19.3", + "resolved": "https://registry.npmmirror.com/preact/-/preact-10.19.3.tgz", + "integrity": "sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmmirror.com/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randomcolor": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/randomcolor/-/randomcolor-0.6.2.tgz", + "integrity": "sha512-Mn6TbyYpFgwFuQ8KJKqf3bqqY9O1y37/0jgSK/61PUxV4QfIMv0+K2ioq8DfOjkBslcjwSzRfIDEXfzA9aCx7A==" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/resize-detector": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/resize-detector/-/resize-detector-0.3.0.tgz", + "integrity": "sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "2.77.3", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-2.77.3.tgz", + "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sass": { + "version": "1.62.1", + "resolved": "https://registry.npmmirror.com/sass/-/sass-1.62.1.tgz", + "integrity": "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/saxen": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/saxen/-/saxen-8.1.2.tgz", + "integrity": "sha512-xUOiiFbc3Ow7p8KMxwsGICPx46ZQvy3+qfNVhrkwfz3Vvq45eGt98Ft5IQaA1R/7Tb5B5MKh9fUR9x3c3nDTxw==" + }, + "node_modules/scroll-into-view-if-needed": { + "version": "2.2.31", + "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz", + "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==", + "dependencies": { + "compute-scroll-into-view": "^1.0.20" + } + }, + "node_modules/scule": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/scule/-/scule-1.1.1.tgz", + "integrity": "sha512-sHtm/SsIK9BUBI3EFT/Gnp9VoKfY6QLvlkvAE6YK7454IF8FSgJEAnJpVdSC7K5/pjI5NfxhzBLW2JAfYA/shQ==", + "dev": true + }, + "node_modules/slate": { + "version": "0.72.8", + "resolved": "https://registry.npmmirror.com/slate/-/slate-0.72.8.tgz", + "integrity": "sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==", + "dependencies": { + "immer": "^9.0.6", + "is-plain-object": "^5.0.0", + "tiny-warning": "^1.0.3" + } + }, + "node_modules/slate-history": { + "version": "0.66.0", + "resolved": "https://registry.npmmirror.com/slate-history/-/slate-history-0.66.0.tgz", + "integrity": "sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==", + "dependencies": { + "is-plain-object": "^5.0.0" + }, + "peerDependencies": { + "slate": ">=0.65.3" + } + }, + "node_modules/snabbdom": { + "version": "3.5.1", + "resolved": "https://registry.npmmirror.com/snabbdom/-/snabbdom-3.5.1.tgz", + "integrity": "sha512-wHMNIOjkm/YNE5EM3RCbr/+DVgPg6AqQAX1eOxO46zYNvCXjKP5Y865tqQj3EXnaMBjkxmQA5jFuDpDK/dbfiA==", + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true + }, + "node_modules/ssr-window": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz", + "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==" + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/strip-literal": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-1.3.0.tgz", + "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", + "dev": true, + "dependencies": { + "acorn": "^8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tiny-svg": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-3.1.3.tgz", + "integrity": "sha512-9mwnPqXInRsBmH/DO6NMxBE++9LsqpVXQSSTZGc5bomoKKvL5OX/Hlotw7XVXP6XLRcHWIzZpxfovGqWKgCypQ==" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "node_modules/ufo": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.3.2.tgz", + "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", + "dev": true + }, + "node_modules/unimport": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/unimport/-/unimport-1.3.0.tgz", + "integrity": "sha512-fOkrdxglsHd428yegH0wPH/6IfaSdDeMXtdRGn6en/ccyzc2aaoxiUTMrJyc6Bu+xoa18RJRPMfLUHEzjz8atw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.2", + "escape-string-regexp": "^5.0.0", + "fast-glob": "^3.2.12", + "local-pkg": "^0.4.3", + "magic-string": "^0.27.0", + "mlly": "^1.1.0", + "pathe": "^1.0.0", + "pkg-types": "^1.0.1", + "scule": "^1.0.0", + "strip-literal": "^1.0.0", + "unplugin": "^1.0.1" + } + }, + "node_modules/unimport/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unplugin": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.6.0.tgz", + "integrity": "sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==", + "dev": true, + "dependencies": { + "acorn": "^8.11.2", + "chokidar": "^3.5.3", + "webpack-sources": "^3.2.3", + "webpack-virtual-modules": "^0.6.1" + } + }, + "node_modules/unplugin-auto-import": { + "version": "0.11.5", + "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.11.5.tgz", + "integrity": "sha512-nvbL2AQwLRR8wbHpJ6L1EBVNmjN045RSedTa4NtsGRkSQFXkI1iKHs4dTqJwcKZsnFrZOAKtLPiN1/oQTObLZw==", + "dev": true, + "dependencies": { + "@antfu/utils": "^0.7.0", + "@rollup/pluginutils": "^5.0.2", + "local-pkg": "^0.4.2", + "magic-string": "^0.26.7", + "unimport": "^1.0.1", + "unplugin": "^1.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vueuse/core": "*" + }, + "peerDependenciesMeta": { + "@vueuse/core": { + "optional": true + } + } + }, + "node_modules/unplugin-auto-import/node_modules/magic-string": { + "version": "0.26.7", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.26.7.tgz", + "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vite": { + "version": "2.9.16", + "resolved": "https://registry.npmmirror.com/vite/-/vite-2.9.16.tgz", + "integrity": "sha512-X+6q8KPyeuBvTQV8AVSnKDvXoBMnTx8zxh54sOwmmuOdxkjMmEJXH2UEchA+vTMps1xw9vL64uwJOWryULg7nA==", + "dependencies": { + "esbuild": "^0.14.27", + "postcss": "^8.4.13", + "resolve": "^1.22.0", + "rollup": ">=2.59.0 <2.78.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": ">=12.2.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "less": "*", + "sass": "*", + "stylus": "*" + }, + "peerDependenciesMeta": { + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + } + } + }, + "node_modules/vite-plugin-compression": { + "version": "0.5.1", + "resolved": "https://registry.npmmirror.com/vite-plugin-compression/-/vite-plugin-compression-0.5.1.tgz", + "integrity": "sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "debug": "^4.3.3", + "fs-extra": "^10.0.0" + }, + "peerDependencies": { + "vite": ">=2.0.0" + } + }, + "node_modules/vite-plugin-compression/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/vite-plugin-compression/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/vite-plugin-mock": { + "version": "2.9.8", + "resolved": "https://registry.npmmirror.com/vite-plugin-mock/-/vite-plugin-mock-2.9.8.tgz", + "integrity": "sha512-YTQM5Sn7t+/DNOwTkr+W26QGTCk1PrDkhGHslTJ90lIPJhJtDTwuSkEYMAuLP9TcVQ/qExTFx/x/GE3kxJ05sw==", + "dependencies": { + "@types/mockjs": "^1.0.4", + "chalk": "^4.1.2", + "chokidar": "^3.5.2", + "connect": "^3.7.0", + "debug": "^4.3.2", + "esbuild": "^0.14.36", + "fast-glob": "^3.2.7", + "path-to-regexp": "^6.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "mockjs": ">=1.1.0", + "vite": ">=2.0.0" + } + }, + "node_modules/vite-plugin-mock/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/vite-plugin-mock/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/vite-plugin-vue-setup-extend": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/vite-plugin-vue-setup-extend/-/vite-plugin-vue-setup-extend-0.4.0.tgz", + "integrity": "sha512-WMbjPCui75fboFoUTHhdbXzu4Y/bJMv5N9QT9a7do3wNMNHHqrk+Tn2jrSJU0LS5fGl/EG+FEDBYVUeWIkDqXQ==", + "dev": true, + "dependencies": { + "@vue/compiler-sfc": "^3.2.29", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "vite": ">=2.0.0" + } + }, + "node_modules/vite-plugin-vue-setup-extend/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/vue": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.13.tgz", + "integrity": "sha512-LDnUpQvDgsfc0u/YgtAgTMXJlJQqjkxW1PVcOnJA5cshPleULDjHi7U45pl2VJYazSSvLH8UKcid/kzH8I0a0Q==", + "dependencies": { + "@vue/compiler-dom": "3.3.13", + "@vue/compiler-sfc": "3.3.13", + "@vue/runtime-dom": "3.3.13", + "@vue/server-renderer": "3.3.13", + "@vue/shared": "3.3.13" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/vue-echarts": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/vue-echarts/-/vue-echarts-6.7.3.tgz", + "integrity": "sha512-vXLKpALFjbPphW9IfQPOVfb1KjGZ/f8qa/FZHi9lZIWzAnQC1DgnmEK3pJgEkyo6EP7UnX6Bv/V3Ke7p+qCNXA==", + "hasInstallScript": true, + "dependencies": { + "resize-detector": "^0.3.0", + "vue-demi": "^0.13.11" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.5", + "@vue/runtime-core": "^3.0.0", + "echarts": "^5.4.1", + "vue": "^2.6.12 || ^3.1.1" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "@vue/runtime-core": { + "optional": true + } + } + }, + "node_modules/vue-echarts/node_modules/vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/vue-i18n": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.2.2.tgz", + "integrity": "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==", + "dependencies": { + "@intlify/core-base": "9.2.2", + "@intlify/shared": "9.2.2", + "@intlify/vue-devtools": "9.2.2", + "@vue/devtools-api": "^6.2.1" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.2.4.tgz", + "integrity": "sha512-9PISkmaCO02OzPVOMq2w82ilty6+xJmQrarYZDkjZBfl4RvYAlt4PKnEX21oW4KTtWfa9OuO/b3qk1Od3AEdCQ==", + "dependencies": { + "@vue/devtools-api": "^6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue/node_modules/@vue/compiler-core": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.13.tgz", + "integrity": "sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==", + "dependencies": { + "@babel/parser": "^7.23.5", + "@vue/shared": "3.3.13", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/vue/node_modules/@vue/compiler-dom": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.13.tgz", + "integrity": "sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==", + "dependencies": { + "@vue/compiler-core": "3.3.13", + "@vue/shared": "3.3.13" + } + }, + "node_modules/vue/node_modules/@vue/compiler-sfc": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.13.tgz", + "integrity": "sha512-DQVmHEy/EKIgggvnGRLx21hSqnr1smUS9Aq8tfxiiot8UR0/pXKHN9k78/qQ7etyQTFj5em5nruODON7dBeumw==", + "dependencies": { + "@babel/parser": "^7.23.5", + "@vue/compiler-core": "3.3.13", + "@vue/compiler-dom": "3.3.13", + "@vue/compiler-ssr": "3.3.13", + "@vue/reactivity-transform": "3.3.13", + "@vue/shared": "3.3.13", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.5", + "postcss": "^8.4.32", + "source-map-js": "^1.0.2" + } + }, + "node_modules/vue/node_modules/@vue/compiler-ssr": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.13.tgz", + "integrity": "sha512-d/P3bCeUGmkJNS1QUZSAvoCIW4fkOKK3l2deE7zrp0ypJEy+En2AcypIkqvcFQOcw3F0zt2VfMvNsA9JmExTaw==", + "dependencies": { + "@vue/compiler-dom": "3.3.13", + "@vue/shared": "3.3.13" + } + }, + "node_modules/vue/node_modules/@vue/reactivity-transform": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.13.tgz", + "integrity": "sha512-oWnydGH0bBauhXvh5KXUy61xr9gKaMbtsMHk40IK9M4gMuKPJ342tKFarY0eQ6jef8906m35q37wwA8DMZOm5Q==", + "dependencies": { + "@babel/parser": "^7.23.5", + "@vue/compiler-core": "3.3.13", + "@vue/shared": "3.3.13", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.5" + } + }, + "node_modules/vue/node_modules/@vue/shared": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.13.tgz", + "integrity": "sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==" + }, + "node_modules/vuex": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/vuex/-/vuex-4.1.0.tgz", + "integrity": "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==", + "dependencies": { + "@vue/devtools-api": "^6.0.0-beta.11" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz", + "integrity": "sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==", + "dev": true + }, + "node_modules/wildcard": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz", + "integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==" + }, + "node_modules/zrender": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.5.0.tgz", + "integrity": "sha512-O3MilSi/9mwoovx77m6ROZM7sXShR/O/JIanvzTwjN3FORfLSr81PsUGd7jlaYOeds9d8tw82oP44+3YucVo+w==", + "dependencies": { + "tslib": "2.3.0" + } + } + }, + "dependencies": { + "@amap/amap-jsapi-loader": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz", + "integrity": "sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw==" + }, + "@antfu/utils": { + "version": "0.7.7", + "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.7.tgz", + "integrity": "sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==", + "dev": true + }, + "@babel/parser": { + "version": "7.23.6", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==" + }, + "@babel/runtime": { + "version": "7.23.7", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.7.tgz", + "integrity": "sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==", + "requires": { + "regenerator-runtime": "^0.14.0" + } + }, + "@bpmn-io/diagram-js-ui": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bpmn-io/diagram-js-ui/-/diagram-js-ui-0.2.3.tgz", + "integrity": "sha512-OGyjZKvGK8tHSZ0l7RfeKhilGoOGtFDcoqSGYkX0uhFlo99OVZ9Jn1K7TJGzcE9BdKwvA5Y5kGqHEhdTxHvFfw==", + "requires": { + "htm": "^3.1.1", + "preact": "^10.11.2" + } + }, + "@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==" + }, + "@element-plus/icons-vue": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.1.0.tgz", + "integrity": "sha512-PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA==", + "requires": {} + }, + "@esbuild/linux-loong64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", + "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", + "optional": true + }, + "@floating-ui/core": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", + "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", + "requires": { + "@floating-ui/utils": "^0.2.9" + } + }, + "@floating-ui/dom": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", + "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "requires": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.9" + } + }, + "@floating-ui/utils": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==" + }, + "@intlify/core-base": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.2.2.tgz", + "integrity": "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==", + "requires": { + "@intlify/devtools-if": "9.2.2", + "@intlify/message-compiler": "9.2.2", + "@intlify/shared": "9.2.2", + "@intlify/vue-devtools": "9.2.2" + } + }, + "@intlify/devtools-if": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/@intlify/devtools-if/-/devtools-if-9.2.2.tgz", + "integrity": "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==", + "requires": { + "@intlify/shared": "9.2.2" + } + }, + "@intlify/message-compiler": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.2.2.tgz", + "integrity": "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==", + "requires": { + "@intlify/shared": "9.2.2", + "source-map": "0.6.1" + } + }, + "@intlify/shared": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.2.2.tgz", + "integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==" + }, + "@intlify/vue-devtools": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz", + "integrity": "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==", + "requires": { + "@intlify/core-base": "9.2.2", + "@intlify/shared": "9.2.2" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + } + }, + "@saber/nf-design-base-elp": { + "version": "1.3.0", + "resolved": "https://center.javablade.com/api/packages/blade/npm/%40saber%2Fnf-design-base-elp/-/1.3.0/nf-design-base-elp-1.3.0.tgz", + "integrity": "sha512-sKUkhErjggUjH+hoBTVpcUC7j38KAkGUloIVXIRl6YP1WT14QXvtf3iu8iCIOBO8iPKHgrBiq4h80UW9+qqbjQ==", + "requires": { + "bpmn-js": "11.5.0", + "codemirror": "^5", + "randomcolor": "^0.6.2" + } + }, + "@smallwei/avue": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@smallwei/avue/-/avue-3.6.2.tgz", + "integrity": "sha512-Ifkt0o7KLsAMptfoNMG7qYS86OL2pEet761wWZyZGu8e48wuNNPOfqx5jnibGjx2oIoKtYUFh7tFdllOCth2EQ==", + "requires": { + "@element-plus/icons-vue": "^2.0.6", + "countup.js": "^1.9.3", + "dayjs": "^1.10.4", + "lodash": "^4.17.21" + } + }, + "@transloadit/prettier-bytes": { + "version": "0.0.7", + "resolved": "https://registry.npmmirror.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz", + "integrity": "sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==" + }, + "@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "@types/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@types/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==" + }, + "@types/lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-w/P33JFeySuhN6JLkysYUK2gEmy9kHHFN7E8ro0tkfmlDOgxBDzWEZ/J8cWA+fHqFevpswDTFZnDx+R9lbL6xw==" + }, + "@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", + "requires": { + "@types/lodash": "*" + } + }, + "@types/mockjs": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/@types/mockjs/-/mockjs-1.0.10.tgz", + "integrity": "sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g==" + }, + "@types/web-bluetooth": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", + "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==" + }, + "@uppy/companion-client": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/@uppy/companion-client/-/companion-client-2.2.2.tgz", + "integrity": "sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==", + "requires": { + "@uppy/utils": "^4.1.2", + "namespace-emitter": "^2.0.1" + } + }, + "@uppy/core": { + "version": "2.3.4", + "resolved": "https://registry.npmmirror.com/@uppy/core/-/core-2.3.4.tgz", + "integrity": "sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==", + "requires": { + "@transloadit/prettier-bytes": "0.0.7", + "@uppy/store-default": "^2.1.1", + "@uppy/utils": "^4.1.3", + "lodash.throttle": "^4.1.1", + "mime-match": "^1.0.2", + "namespace-emitter": "^2.0.1", + "nanoid": "^3.1.25", + "preact": "^10.5.13" + } + }, + "@uppy/store-default": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/@uppy/store-default/-/store-default-2.1.1.tgz", + "integrity": "sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==" + }, + "@uppy/utils": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/@uppy/utils/-/utils-4.1.3.tgz", + "integrity": "sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==", + "requires": { + "lodash.throttle": "^4.1.1" + } + }, + "@uppy/xhr-upload": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz", + "integrity": "sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==", + "requires": { + "@uppy/companion-client": "^2.2.2", + "@uppy/utils": "^4.1.2", + "nanoid": "^3.1.25" + } + }, + "@vitejs/plugin-vue": { + "version": "1.10.2", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-1.10.2.tgz", + "integrity": "sha512-/QJ0Z9qfhAFtKRY+r57ziY4BSbGUTGsPRMpB/Ron3QPwBZM4OZAZHdTa4a8PafCwU5DTatXG8TMDoP8z+oDqJw==", + "dev": true, + "requires": {} + }, + "@vue/compiler-core": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz", + "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", + "dev": true, + "requires": { + "@babel/parser": "^7.21.3", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "@vue/compiler-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", + "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", + "dev": true, + "requires": { + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/compiler-sfc": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", + "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", + "dev": true, + "requires": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-ssr": "3.3.4", + "@vue/reactivity-transform": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0", + "postcss": "^8.1.10", + "source-map-js": "^1.0.2" + } + }, + "@vue/compiler-ssr": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", + "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", + "dev": true, + "requires": { + "@vue/compiler-dom": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/devtools-api": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.1.tgz", + "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==" + }, + "@vue/reactivity": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.13.tgz", + "integrity": "sha512-fjzCxceMahHhi4AxUBzQqqVhuA21RJ0COaWTbIBl1PruGW1CeY97louZzLi4smpYx+CHfFPPU/CS8NybbGvPKQ==", + "requires": { + "@vue/shared": "3.3.13" + }, + "dependencies": { + "@vue/shared": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.13.tgz", + "integrity": "sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==" + } + } + }, + "@vue/reactivity-transform": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", + "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", + "dev": true, + "requires": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0" + } + }, + "@vue/runtime-core": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.13.tgz", + "integrity": "sha512-1TzA5TvGuh2zUwMJgdfvrBABWZ7y8kBwBhm7BXk8rvdx2SsgcGfz2ruv2GzuGZNvL1aKnK8CQMV/jFOrxNQUMA==", + "requires": { + "@vue/reactivity": "3.3.13", + "@vue/shared": "3.3.13" + }, + "dependencies": { + "@vue/shared": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.13.tgz", + "integrity": "sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==" + } + } + }, + "@vue/runtime-dom": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.13.tgz", + "integrity": "sha512-JJkpE8R/hJKXqVTgUoODwS5wqKtOsmJPEqmp90PDVGygtJ4C0PtOkcEYXwhiVEmef6xeXcIlrT3Yo5aQ4qkHhQ==", + "requires": { + "@vue/runtime-core": "3.3.13", + "@vue/shared": "3.3.13", + "csstype": "^3.1.3" + }, + "dependencies": { + "@vue/shared": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.13.tgz", + "integrity": "sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==" + } + } + }, + "@vue/server-renderer": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.13.tgz", + "integrity": "sha512-vSnN+nuf6iSqTL3Qgx/9A+BT+0Zf/VJOgF5uMZrKjYPs38GMYyAU1coDyBNHauehXDaP+zl73VhwWv0vBRBHcg==", + "requires": { + "@vue/compiler-ssr": "3.3.13", + "@vue/shared": "3.3.13" + }, + "dependencies": { + "@vue/compiler-core": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.13.tgz", + "integrity": "sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==", + "requires": { + "@babel/parser": "^7.23.5", + "@vue/shared": "3.3.13", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "@vue/compiler-dom": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.13.tgz", + "integrity": "sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==", + "requires": { + "@vue/compiler-core": "3.3.13", + "@vue/shared": "3.3.13" + } + }, + "@vue/compiler-ssr": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.13.tgz", + "integrity": "sha512-d/P3bCeUGmkJNS1QUZSAvoCIW4fkOKK3l2deE7zrp0ypJEy+En2AcypIkqvcFQOcw3F0zt2VfMvNsA9JmExTaw==", + "requires": { + "@vue/compiler-dom": "3.3.13", + "@vue/shared": "3.3.13" + } + }, + "@vue/shared": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.13.tgz", + "integrity": "sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==" + } + } + }, + "@vue/shared": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.4.tgz", + "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==", + "dev": true + }, + "@vueuse/core": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz", + "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==", + "requires": { + "@types/web-bluetooth": "^0.0.16", + "@vueuse/metadata": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + } + }, + "@vueuse/metadata": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz", + "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==" + }, + "@vueuse/shared": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz", + "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==", + "requires": { + "vue-demi": "*" + } + }, + "@wangeditor/basic-modules": { + "version": "1.1.7", + "resolved": "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz", + "integrity": "sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==", + "requires": { + "is-url": "^1.2.4" + } + }, + "@wangeditor/code-highlight": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz", + "integrity": "sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==", + "requires": { + "prismjs": "^1.23.0" + } + }, + "@wangeditor/core": { + "version": "1.1.19", + "resolved": "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.19.tgz", + "integrity": "sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==", + "requires": { + "@types/event-emitter": "^0.3.3", + "event-emitter": "^0.3.5", + "html-void-elements": "^2.0.0", + "i18next": "^20.4.0", + "scroll-into-view-if-needed": "^2.2.28", + "slate-history": "^0.66.0" + } + }, + "@wangeditor/editor": { + "version": "5.1.23", + "resolved": "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.23.tgz", + "integrity": "sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==", + "requires": { + "@uppy/core": "^2.1.1", + "@uppy/xhr-upload": "^2.0.3", + "@wangeditor/basic-modules": "^1.1.7", + "@wangeditor/code-highlight": "^1.0.3", + "@wangeditor/core": "^1.1.19", + "@wangeditor/list-module": "^1.0.5", + "@wangeditor/table-module": "^1.1.4", + "@wangeditor/upload-image-module": "^1.0.2", + "@wangeditor/video-module": "^1.1.4", + "dom7": "^3.0.0", + "is-hotkey": "^0.2.0", + "lodash.camelcase": "^4.3.0", + "lodash.clonedeep": "^4.5.0", + "lodash.debounce": "^4.0.8", + "lodash.foreach": "^4.5.0", + "lodash.isequal": "^4.5.0", + "lodash.throttle": "^4.1.1", + "lodash.toarray": "^4.4.0", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "@wangeditor/editor-for-vue": { + "version": "5.1.12", + "resolved": "https://registry.npmmirror.com/@wangeditor/editor-for-vue/-/editor-for-vue-5.1.12.tgz", + "integrity": "sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==", + "requires": {} + }, + "@wangeditor/list-module": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@wangeditor/list-module/-/list-module-1.0.5.tgz", + "integrity": "sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==", + "requires": {} + }, + "@wangeditor/table-module": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.4.tgz", + "integrity": "sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==", + "requires": {} + }, + "@wangeditor/upload-image-module": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz", + "integrity": "sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==", + "requires": {} + }, + "@wangeditor/video-module": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz", + "integrity": "sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==", + "requires": {} + }, + "acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true + }, + "animate.css": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/animate.css/-/animate.css-4.1.1.tgz", + "integrity": "sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" + }, + "avue-plugin-ueditor": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/avue-plugin-ueditor/-/avue-plugin-ueditor-1.0.3.tgz", + "integrity": "sha512-hly5hcS5g9d9uoSY5m6h7Kf/o8wHXKQO9LZICbbtmiEX6xYlWcH0mqL0j5rKdbUVNNcjzUThBGaDVWWzXqqxBQ==", + "requires": { + "@wangeditor/editor": "^5.1.23", + "@wangeditor/editor-for-vue": "^5.1.12", + "axios": "^0.18.0", + "vue": "^3.2.47" + }, + "dependencies": { + "axios": { + "version": "0.18.1", + "resolved": "https://registry.npmmirror.com/axios/-/axios-0.18.1.tgz", + "integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==", + "requires": { + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + } + } + } + }, + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmmirror.com/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + }, + "dependencies": { + "follow-redirects": { + "version": "1.15.4", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==" + } + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "bpmn-js": { + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/bpmn-js/-/bpmn-js-11.5.0.tgz", + "integrity": "sha512-Bdj53UvfiDtGE1wmiBmpgjl5RMLhCGV/C841dyC+t4kBHj7vApAeeHs2Qiycj390HO4B2U8UDROLT7yjdXEEUA==", + "requires": { + "bpmn-moddle": "^8.0.0", + "diagram-js": "^11.9.1", + "diagram-js-direct-editing": "^2.0.0", + "ids": "^1.0.0", + "inherits-browser": "^0.1.0", + "min-dash": "^4.0.0", + "min-dom": "^4.0.3", + "object-refs": "^0.3.0", + "tiny-svg": "^3.0.0" + } + }, + "bpmn-moddle": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-8.1.0.tgz", + "integrity": "sha512-yI5OAFfYVJwViKTsTsonVfCBPtB3MlefADUORwNIxxBOMp21vnoxuxsdgUWlPH/dvAEZh/+mr8UtqOBNu8NC5Q==", + "requires": { + "min-dash": "^4.0.0", + "moddle": "^6.2.3", + "moddle-xml": "^10.1.0" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" + }, + "codemirror": { + "version": "5.65.18", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.18.tgz", + "integrity": "sha512-Gaz4gHnkbHMGgahNt3CA5HBk5lLQBqmD/pBgeB4kQU6OedZmqMBjlRF0LSrp2tJ4wlLNPm2FfaUd1pDy0mdlpA==" + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "commander": { + "version": "11.1.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==" + }, + "component-event": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/component-event/-/component-event-0.2.1.tgz", + "integrity": "sha512-wGA++isMqiDq1jPYeyv2as/Bt/u+3iLW0rEa+8NQ82jAv3TgqMiCM+B2SaBdn2DfLilLjjq736YcezihRYhfxw==" + }, + "compute-scroll-into-view": { + "version": "1.0.20", + "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", + "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==" + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmmirror.com/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "countup.js": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/countup.js/-/countup.js-1.9.3.tgz", + "integrity": "sha512-UHf2P/mFKaESqdPq+UdBJm/1y8lYdlcDd0nTZHNC8cxWoJwZr1Eldm1PpWui446vDl5Pd8PtRYkr3q6K4+Qa5A==" + }, + "crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "dayjs": { + "version": "1.11.7", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.7.tgz", + "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "diagram-js": { + "version": "11.13.1", + "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-11.13.1.tgz", + "integrity": "sha512-6kO0rBN6aBIQiMELfv1oX2Ohes/brlIPuOVZUYAioeWM0EyuazhAXgHeq8iKFt29daU9NGRr4n78esGx8QjtjQ==", + "requires": { + "@bpmn-io/diagram-js-ui": "^0.2.2", + "clsx": "^1.2.1", + "didi": "^9.0.2", + "hammerjs": "^2.0.1", + "inherits-browser": "^0.1.0", + "min-dash": "^4.1.0", + "min-dom": "^4.1.0", + "object-refs": "^0.3.0", + "path-intersection": "^2.2.1", + "tiny-svg": "^3.0.1" + } + }, + "diagram-js-direct-editing": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/diagram-js-direct-editing/-/diagram-js-direct-editing-2.1.2.tgz", + "integrity": "sha512-VpccLAnLqLF1cp3fk363QUbRVTd/qTcj2oOb+IqgcmOiWszJp7J9Ta6y5GjUvw48hDZpzCatlmWwA4CJ3MaYGQ==", + "requires": { + "min-dash": "^4.0.0", + "min-dom": "^4.0.2" + } + }, + "didi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/didi/-/didi-9.0.2.tgz", + "integrity": "sha512-q2+aj+lnJcUweV7A9pdUrwFr4LHVmRPwTmQLtHPFz4aT7IBoryN6Iy+jmFku+oIzr5ebBkvtBCOb87+dJhb7bg==" + }, + "dom7": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz", + "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==", + "requires": { + "ssr-window": "^3.0.0-alpha.1" + } + }, + "domify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/domify/-/domify-1.4.2.tgz", + "integrity": "sha512-m4yreHcUWHBncGVV7U+yQzc12vIlq0jMrtHZ5mW6dQMiL/7skSYNVX9wqKwOtyO9SGCgevrAFEgOCAHmamHTUA==" + }, + "echarts": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.5.0.tgz", + "integrity": "sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==", + "requires": { + "tslib": "2.3.0", + "zrender": "5.5.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "element-plus": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.9.3.tgz", + "integrity": "sha512-6tSLp5XytDS4TMZ0P3aGZnr7MXTagfNycepNfIDitd9IgwM9y01+Ssu6mglNi8RiXYhek6LBWNOd/cvpIO12+w==", + "requires": { + "@ctrl/tinycolor": "^3.4.1", + "@element-plus/icons-vue": "^2.3.1", + "@floating-ui/dom": "^1.0.1", + "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", + "@types/lodash": "^4.14.182", + "@types/lodash-es": "^4.17.6", + "@vueuse/core": "^9.1.0", + "async-validator": "^4.2.5", + "dayjs": "^1.11.13", + "escape-html": "^1.0.3", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "lodash-unified": "^1.0.2", + "memoize-one": "^6.0.0", + "normalize-wheel-es": "^1.2.0" + }, + "dependencies": { + "@element-plus/icons-vue": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz", + "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==", + "requires": {} + }, + "@popperjs/core": { + "version": "npm:@sxzz/popperjs-es@2.11.7", + "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz", + "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==" + }, + "dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + } + } + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "es5-ext": { + "version": "0.10.62", + "resolved": "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.62.tgz", + "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", + "requires": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "esbuild": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.54.tgz", + "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", + "requires": { + "@esbuild/linux-loong64": "0.14.54", + "esbuild-android-64": "0.14.54", + "esbuild-android-arm64": "0.14.54", + "esbuild-darwin-64": "0.14.54", + "esbuild-darwin-arm64": "0.14.54", + "esbuild-freebsd-64": "0.14.54", + "esbuild-freebsd-arm64": "0.14.54", + "esbuild-linux-32": "0.14.54", + "esbuild-linux-64": "0.14.54", + "esbuild-linux-arm": "0.14.54", + "esbuild-linux-arm64": "0.14.54", + "esbuild-linux-mips64le": "0.14.54", + "esbuild-linux-ppc64le": "0.14.54", + "esbuild-linux-riscv64": "0.14.54", + "esbuild-linux-s390x": "0.14.54", + "esbuild-netbsd-64": "0.14.54", + "esbuild-openbsd-64": "0.14.54", + "esbuild-sunos-64": "0.14.54", + "esbuild-windows-32": "0.14.54", + "esbuild-windows-64": "0.14.54", + "esbuild-windows-arm64": "0.14.54" + } + }, + "esbuild-android-64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", + "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", + "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", + "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", + "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", + "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", + "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", + "optional": true + }, + "esbuild-linux-32": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", + "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", + "optional": true + }, + "esbuild-linux-64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", + "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", + "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", + "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", + "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", + "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", + "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", + "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", + "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", + "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", + "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", + "optional": true + }, + "esbuild-windows-32": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", + "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", + "optional": true + }, + "esbuild-windows-64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", + "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", + "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", + "optional": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "ext": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "requires": { + "type": "^2.7.2" + }, + "dependencies": { + "type": { + "version": "2.7.2", + "resolved": "https://registry.npmmirror.com/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + } + } + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fastq": { + "version": "1.16.0", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "requires": { + "reusify": "^1.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "hammerjs": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", + "integrity": "sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "requires": { + "function-bind": "^1.1.2" + } + }, + "htm": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/htm/-/htm-3.1.1.tgz", + "integrity": "sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==" + }, + "html-void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz", + "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==" + }, + "i18next": { + "version": "20.6.1", + "resolved": "https://registry.npmmirror.com/i18next/-/i18next-20.6.1.tgz", + "integrity": "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==", + "requires": { + "@babel/runtime": "^7.12.0" + } + }, + "ids": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/ids/-/ids-1.0.5.tgz", + "integrity": "sha512-XQ0yom/4KWTL29sLG+tyuycy7UmeaM/79GRtSJq6IG9cJGIPeBz5kwDCguie3TwxaMNIc3WtPi0cTa1XYHicpw==" + }, + "immer": { + "version": "9.0.21", + "resolved": "https://registry.npmmirror.com/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==" + }, + "immutable": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", + "dev": true + }, + "inherits-browser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/inherits-browser/-/inherits-browser-0.1.0.tgz", + "integrity": "sha512-CJHHvW3jQ6q7lzsXPpapLdMx5hDpSF3FSh45pwsj6bKxJJ8Nl8v43i5yXnr3BdfOimGHKyniewQtnAIp3vyJJw==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + }, + "is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "requires": { + "hasown": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hotkey": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/is-hotkey/-/is-hotkey-0.2.0.tgz", + "integrity": "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + }, + "is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" + }, + "js-base64": { + "version": "3.7.5", + "resolved": "https://registry.npmmirror.com/js-base64/-/js-base64-3.7.5.tgz", + "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" + }, + "js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==" + }, + "js-md5": { + "version": "0.7.3", + "resolved": "https://registry.npmmirror.com/js-md5/-/js-md5-0.7.3.tgz", + "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==" + }, + "jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "dev": true + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "lodash-unified": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz", + "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==", + "requires": {} + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==" + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, + "lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" + }, + "lodash.toarray": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz", + "integrity": "sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==" + }, + "magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/mime-match/-/mime-match-1.0.2.tgz", + "integrity": "sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==", + "requires": { + "wildcard": "^1.1.0" + } + }, + "min-dash": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-4.2.2.tgz", + "integrity": "sha512-qbhSYUxk6mBaF096B3JOQSumXbKWHenmT97cSpdNzgkWwGjhjhE/KZODCoDNhI2I4C9Cb6R/Q13S4BYkUSXoXQ==" + }, + "min-dom": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-4.2.1.tgz", + "integrity": "sha512-TMoL8SEEIhUWYgkj7XMSgxmwSyGI+4fP2KFFGnN3FbHfbGHVdsLYSz8LoIsgPhz4dWRmLvxWWSMgzZMJW5sZuA==", + "requires": { + "component-event": "^0.2.1", + "domify": "^1.4.1", + "min-dash": "^4.2.1" + } + }, + "mlly": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.4.2.tgz", + "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==", + "dev": true, + "requires": { + "acorn": "^8.10.0", + "pathe": "^1.1.1", + "pkg-types": "^1.0.3", + "ufo": "^1.3.0" + } + }, + "mockjs": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/mockjs/-/mockjs-1.1.0.tgz", + "integrity": "sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==", + "requires": { + "commander": "*" + } + }, + "moddle": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/moddle/-/moddle-6.2.3.tgz", + "integrity": "sha512-bLVN+ZHL3aKnhxc19XtjUfvdJsS3EsiEJC7bT6YPD11qYmTzvsxrGgyYz1Ouof7TZuGw0lDJ1OLmEnxcpQWk3Q==", + "requires": { + "min-dash": "^4.0.0" + } + }, + "moddle-xml": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/moddle-xml/-/moddle-xml-10.1.0.tgz", + "integrity": "sha512-erWckwLt+dYskewKXJso9u+aAZ5172lOiYxSOqKCPTy7L/xmqH1PoeoA7eVC7oJTt3PqF5TkZzUmbjGH6soQBg==", + "requires": { + "min-dash": "^4.0.0", + "moddle": "^6.0.0", + "saxen": "^8.1.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "namespace-emitter": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz", + "integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==" + }, + "nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + }, + "next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-wheel-es": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", + "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" + }, + "nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" + }, + "object-refs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/object-refs/-/object-refs-0.3.0.tgz", + "integrity": "sha512-eP0ywuoWOaDoiake/6kTJlPJhs+k0qNm4nYRzXLNHj6vh+5M3i9R1epJTdxIPGlhWc4fNRQ7a6XJNCX+/L4FOQ==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "requires": { + "ee-first": "1.1.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-intersection": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-intersection/-/path-intersection-2.2.1.tgz", + "integrity": "sha512-9u8xvMcSfuOiStv9bPdnRJQhGQXLKurew94n4GPQCdH1nj9QKC9ObbNoIpiRq8skiOBxKkt277PgOoFgAt3/rA==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-to-regexp": { + "version": "6.2.1", + "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==" + }, + "pathe": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.1.tgz", + "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pkg-types": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.0.3.tgz", + "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", + "dev": true, + "requires": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.2.0", + "pathe": "^1.1.0" + } + }, + "postcss": { + "version": "8.4.33", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.33.tgz", + "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "requires": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "dependencies": { + "nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" + } + } + }, + "preact": { + "version": "10.19.3", + "resolved": "https://registry.npmmirror.com/preact/-/preact-10.19.3.tgz", + "integrity": "sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ==" + }, + "prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true + }, + "prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmmirror.com/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "randomcolor": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/randomcolor/-/randomcolor-0.6.2.tgz", + "integrity": "sha512-Mn6TbyYpFgwFuQ8KJKqf3bqqY9O1y37/0jgSK/61PUxV4QfIMv0+K2ioq8DfOjkBslcjwSzRfIDEXfzA9aCx7A==" + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "resize-detector": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/resize-detector/-/resize-detector-0.3.0.tgz", + "integrity": "sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ==" + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rollup": { + "version": "2.77.3", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-2.77.3.tgz", + "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==", + "requires": { + "fsevents": "~2.3.2" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "sass": { + "version": "1.62.1", + "resolved": "https://registry.npmmirror.com/sass/-/sass-1.62.1.tgz", + "integrity": "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "saxen": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/saxen/-/saxen-8.1.2.tgz", + "integrity": "sha512-xUOiiFbc3Ow7p8KMxwsGICPx46ZQvy3+qfNVhrkwfz3Vvq45eGt98Ft5IQaA1R/7Tb5B5MKh9fUR9x3c3nDTxw==" + }, + "scroll-into-view-if-needed": { + "version": "2.2.31", + "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz", + "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==", + "requires": { + "compute-scroll-into-view": "^1.0.20" + } + }, + "scule": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/scule/-/scule-1.1.1.tgz", + "integrity": "sha512-sHtm/SsIK9BUBI3EFT/Gnp9VoKfY6QLvlkvAE6YK7454IF8FSgJEAnJpVdSC7K5/pjI5NfxhzBLW2JAfYA/shQ==", + "dev": true + }, + "slate": { + "version": "0.72.8", + "resolved": "https://registry.npmmirror.com/slate/-/slate-0.72.8.tgz", + "integrity": "sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==", + "requires": { + "immer": "^9.0.6", + "is-plain-object": "^5.0.0", + "tiny-warning": "^1.0.3" + } + }, + "slate-history": { + "version": "0.66.0", + "resolved": "https://registry.npmmirror.com/slate-history/-/slate-history-0.66.0.tgz", + "integrity": "sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==", + "requires": { + "is-plain-object": "^5.0.0" + } + }, + "snabbdom": { + "version": "3.5.1", + "resolved": "https://registry.npmmirror.com/snabbdom/-/snabbdom-3.5.1.tgz", + "integrity": "sha512-wHMNIOjkm/YNE5EM3RCbr/+DVgPg6AqQAX1eOxO46zYNvCXjKP5Y865tqQj3EXnaMBjkxmQA5jFuDpDK/dbfiA==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "ssr-window": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz", + "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" + }, + "strip-literal": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-1.3.0.tgz", + "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", + "dev": true, + "requires": { + "acorn": "^8.10.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "tiny-svg": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-3.1.3.tgz", + "integrity": "sha512-9mwnPqXInRsBmH/DO6NMxBE++9LsqpVXQSSTZGc5bomoKKvL5OX/Hlotw7XVXP6XLRcHWIzZpxfovGqWKgCypQ==" + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "ufo": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.3.2.tgz", + "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", + "dev": true + }, + "unimport": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/unimport/-/unimport-1.3.0.tgz", + "integrity": "sha512-fOkrdxglsHd428yegH0wPH/6IfaSdDeMXtdRGn6en/ccyzc2aaoxiUTMrJyc6Bu+xoa18RJRPMfLUHEzjz8atw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.2", + "escape-string-regexp": "^5.0.0", + "fast-glob": "^3.2.12", + "local-pkg": "^0.4.3", + "magic-string": "^0.27.0", + "mlly": "^1.1.0", + "pathe": "^1.0.0", + "pkg-types": "^1.0.1", + "scule": "^1.0.0", + "strip-literal": "^1.0.0", + "unplugin": "^1.0.1" + }, + "dependencies": { + "magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + } + } + }, + "universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "unplugin": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.6.0.tgz", + "integrity": "sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==", + "dev": true, + "requires": { + "acorn": "^8.11.2", + "chokidar": "^3.5.3", + "webpack-sources": "^3.2.3", + "webpack-virtual-modules": "^0.6.1" + } + }, + "unplugin-auto-import": { + "version": "0.11.5", + "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.11.5.tgz", + "integrity": "sha512-nvbL2AQwLRR8wbHpJ6L1EBVNmjN045RSedTa4NtsGRkSQFXkI1iKHs4dTqJwcKZsnFrZOAKtLPiN1/oQTObLZw==", + "dev": true, + "requires": { + "@antfu/utils": "^0.7.0", + "@rollup/pluginutils": "^5.0.2", + "local-pkg": "^0.4.2", + "magic-string": "^0.26.7", + "unimport": "^1.0.1", + "unplugin": "^1.0.0" + }, + "dependencies": { + "magic-string": { + "version": "0.26.7", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.26.7.tgz", + "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + } + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "vite": { + "version": "2.9.16", + "resolved": "https://registry.npmmirror.com/vite/-/vite-2.9.16.tgz", + "integrity": "sha512-X+6q8KPyeuBvTQV8AVSnKDvXoBMnTx8zxh54sOwmmuOdxkjMmEJXH2UEchA+vTMps1xw9vL64uwJOWryULg7nA==", + "requires": { + "esbuild": "^0.14.27", + "fsevents": "~2.3.2", + "postcss": "^8.4.13", + "resolve": "^1.22.0", + "rollup": ">=2.59.0 <2.78.0" + } + }, + "vite-plugin-compression": { + "version": "0.5.1", + "resolved": "https://registry.npmmirror.com/vite-plugin-compression/-/vite-plugin-compression-0.5.1.tgz", + "integrity": "sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==", + "dev": true, + "requires": { + "chalk": "^4.1.2", + "debug": "^4.3.3", + "fs-extra": "^10.0.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "vite-plugin-mock": { + "version": "2.9.8", + "resolved": "https://registry.npmmirror.com/vite-plugin-mock/-/vite-plugin-mock-2.9.8.tgz", + "integrity": "sha512-YTQM5Sn7t+/DNOwTkr+W26QGTCk1PrDkhGHslTJ90lIPJhJtDTwuSkEYMAuLP9TcVQ/qExTFx/x/GE3kxJ05sw==", + "requires": { + "@types/mockjs": "^1.0.4", + "chalk": "^4.1.2", + "chokidar": "^3.5.2", + "connect": "^3.7.0", + "debug": "^4.3.2", + "esbuild": "^0.14.36", + "fast-glob": "^3.2.7", + "path-to-regexp": "^6.2.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "vite-plugin-vue-setup-extend": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/vite-plugin-vue-setup-extend/-/vite-plugin-vue-setup-extend-0.4.0.tgz", + "integrity": "sha512-WMbjPCui75fboFoUTHhdbXzu4Y/bJMv5N9QT9a7do3wNMNHHqrk+Tn2jrSJU0LS5fGl/EG+FEDBYVUeWIkDqXQ==", + "dev": true, + "requires": { + "@vue/compiler-sfc": "^3.2.29", + "magic-string": "^0.25.7" + }, + "dependencies": { + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + } + } + }, + "vue": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.13.tgz", + "integrity": "sha512-LDnUpQvDgsfc0u/YgtAgTMXJlJQqjkxW1PVcOnJA5cshPleULDjHi7U45pl2VJYazSSvLH8UKcid/kzH8I0a0Q==", + "requires": { + "@vue/compiler-dom": "3.3.13", + "@vue/compiler-sfc": "3.3.13", + "@vue/runtime-dom": "3.3.13", + "@vue/server-renderer": "3.3.13", + "@vue/shared": "3.3.13" + }, + "dependencies": { + "@vue/compiler-core": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.13.tgz", + "integrity": "sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==", + "requires": { + "@babel/parser": "^7.23.5", + "@vue/shared": "3.3.13", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "@vue/compiler-dom": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.13.tgz", + "integrity": "sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==", + "requires": { + "@vue/compiler-core": "3.3.13", + "@vue/shared": "3.3.13" + } + }, + "@vue/compiler-sfc": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.13.tgz", + "integrity": "sha512-DQVmHEy/EKIgggvnGRLx21hSqnr1smUS9Aq8tfxiiot8UR0/pXKHN9k78/qQ7etyQTFj5em5nruODON7dBeumw==", + "requires": { + "@babel/parser": "^7.23.5", + "@vue/compiler-core": "3.3.13", + "@vue/compiler-dom": "3.3.13", + "@vue/compiler-ssr": "3.3.13", + "@vue/reactivity-transform": "3.3.13", + "@vue/shared": "3.3.13", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.5", + "postcss": "^8.4.32", + "source-map-js": "^1.0.2" + } + }, + "@vue/compiler-ssr": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.13.tgz", + "integrity": "sha512-d/P3bCeUGmkJNS1QUZSAvoCIW4fkOKK3l2deE7zrp0ypJEy+En2AcypIkqvcFQOcw3F0zt2VfMvNsA9JmExTaw==", + "requires": { + "@vue/compiler-dom": "3.3.13", + "@vue/shared": "3.3.13" + } + }, + "@vue/reactivity-transform": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.13.tgz", + "integrity": "sha512-oWnydGH0bBauhXvh5KXUy61xr9gKaMbtsMHk40IK9M4gMuKPJ342tKFarY0eQ6jef8906m35q37wwA8DMZOm5Q==", + "requires": { + "@babel/parser": "^7.23.5", + "@vue/compiler-core": "3.3.13", + "@vue/shared": "3.3.13", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.5" + } + }, + "@vue/shared": { + "version": "3.3.13", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.13.tgz", + "integrity": "sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==" + } + } + }, + "vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "requires": {} + }, + "vue-echarts": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/vue-echarts/-/vue-echarts-6.7.3.tgz", + "integrity": "sha512-vXLKpALFjbPphW9IfQPOVfb1KjGZ/f8qa/FZHi9lZIWzAnQC1DgnmEK3pJgEkyo6EP7UnX6Bv/V3Ke7p+qCNXA==", + "requires": { + "resize-detector": "^0.3.0", + "vue-demi": "^0.13.11" + }, + "dependencies": { + "vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "requires": {} + } + } + }, + "vue-i18n": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.2.2.tgz", + "integrity": "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==", + "requires": { + "@intlify/core-base": "9.2.2", + "@intlify/shared": "9.2.2", + "@intlify/vue-devtools": "9.2.2", + "@vue/devtools-api": "^6.2.1" + } + }, + "vue-router": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.2.4.tgz", + "integrity": "sha512-9PISkmaCO02OzPVOMq2w82ilty6+xJmQrarYZDkjZBfl4RvYAlt4PKnEX21oW4KTtWfa9OuO/b3qk1Od3AEdCQ==", + "requires": { + "@vue/devtools-api": "^6.5.0" + } + }, + "vuex": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/vuex/-/vuex-4.1.0.tgz", + "integrity": "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==", + "requires": { + "@vue/devtools-api": "^6.0.0-beta.11" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + }, + "webpack-virtual-modules": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz", + "integrity": "sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==", + "dev": true + }, + "wildcard": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz", + "integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==" + }, + "zrender": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.5.0.tgz", + "integrity": "sha512-O3MilSi/9mwoovx77m6ROZM7sXShR/O/JIanvzTwjN3FORfLSr81PsUGd7jlaYOeds9d8tw82oP44+3YucVo+w==", + "requires": { + "tslib": "2.3.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..eac9d31 --- /dev/null +++ b/package.json @@ -0,0 +1,45 @@ +{ + "name": "nenghui-uat", + "version": "4.0.1", + "scripts": { + "dev": "vite --host", + "prod": "vite --mode production", + "build": "vite build", + "build:prod": "vite build --mode production", + "serve": "vite preview --host" + }, + "dependencies": { + "@amap/amap-jsapi-loader": "^1.0.1", + "@element-plus/icons-vue": "^2.0.9", + "@saber/nf-design-base-elp": "^1.2.0", + "@smallwei/avue": "^3.4.1", + "animate.css": "^4.1.1", + "avue-plugin-ueditor": "^1.0.3", + "axios": "^0.21.1", + "crypto-js": "^4.1.1", + "dayjs": "^1.10.6", + "echarts": "^5.5.0", + "element-plus": "^2.3.7", + "js-base64": "^3.7.4", + "js-cookie": "^3.0.0", + "js-md5": "^0.7.3", + "mockjs": "^1.1.0", + "nprogress": "^0.2.0", + "vite-plugin-mock": "^2.9.4", + "vue": "^3.2.40", + "vue-echarts": "^6.7.2", + "vue-i18n": "^9.1.9", + "vue-router": "^4.2.4", + "vuex": "^4.0.2" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^1.3.0", + "@vue/compiler-sfc": "^3.0.5", + "prettier": "^2.8.7", + "sass": "^1.37.5", + "unplugin-auto-import": "^0.11.2", + "vite": "^2.9.16", + "vite-plugin-compression": "^0.5.1", + "vite-plugin-vue-setup-extend": "^0.4.0" + } +} diff --git a/public/ats_logo.png b/public/ats_logo.png new file mode 100644 index 0000000..d283473 Binary files /dev/null and b/public/ats_logo.png differ diff --git a/public/css/loading.css b/public/css/loading.css new file mode 100644 index 0000000..a07c505 --- /dev/null +++ b/public/css/loading.css @@ -0,0 +1,116 @@ +.loading { + display: flex; + width: 100%; + height: 100%; + justify-content: center; + align-items: center; + flex-direction: column; + background-color: #f4f7f9 +} + +.loading .loading-wrap { + position: absolute; + top: 50%; + left: 50%; + display: flex; + -webkit-transform: translate3d(-50%, -50%, 0); + transform: translate3d(-50%, -50%, 0); + justify-content: center; + align-items: center; + flex-direction: column +} + +.loading .dots { + display: flex; + padding: 98px; + justify-content: center; + align-items: center +} + +.loading .loading-title { + display: flex; + font-weight: bold; + margin-top: 30px; + font-size: 18px; + color: rgba(0, 0, 0, .85); + justify-content: center; + align-items: center +} + + +.dot { + position: relative; + display: inline-block; + width: 40px; + height: 40px; + margin-top: 30px; + font-size: 28px; + transform: rotate(45deg); + box-sizing: border-box; + animation: antRotate 1.2s infinite linear +} + +.dot i { + position: absolute; + display: block; + width: 20px; + height: 20px; + background-color: #0065cc; + border-radius: 100%; + opacity: .3; + transform: scale(.75); + animation: antSpinMove 1s infinite linear alternate; + transform-origin: 50% 50% +} + +.dot i:nth-child(1) { + top: 0; + left: 0 +} + +.dot i:nth-child(2) { + top: 0; + right: 0; + -webkit-animation-delay: .4s; + animation-delay: .4s +} + +.dot i:nth-child(3) { + right: 0; + bottom: 0; + -webkit-animation-delay: .8s; + animation-delay: .8s +} + +.dot i:nth-child(4) { + bottom: 0; + left: 0; + -webkit-animation-delay: 1.2s; + animation-delay: 1.2s +} + +@keyframes antRotate { + to { + -webkit-transform: rotate(405deg); + transform: rotate(405deg) + } +} + +@-webkit-keyframes antRotate { + to { + -webkit-transform: rotate(405deg); + transform: rotate(405deg) + } +} + +@keyframes antSpinMove { + to { + opacity: 1 + } +} + +@-webkit-keyframes antSpinMove { + to { + opacity: 1 + } +} diff --git a/public/css/saber.css b/public/css/saber.css new file mode 100644 index 0000000..bc5c152 --- /dev/null +++ b/public/css/saber.css @@ -0,0 +1,88 @@ +html, +body, +#app { + height: 100%; + margin: 0; + padding: 0; +} + +#loader-wrapper { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 99999; + background-color: #151a26; +} + +#loader-wrapper .loader-box { + position: fixed; + left: calc(50% - 250px); + top: calc(50% - 100px); + margin: 0 auto; + width: 500px; + height: 200px; + text-align: center; + vertical-align: center; + font-weight: bold; + color: #87888E; + font-size: 35px; +} + +#loader-wrapper .loader-box > span { + opacity: 0.4; + display: inline-block; + animation: bouncingLoader 1s infinite alternate; +} + +#loader-wrapper .loader-box > span:nth-child(2) { + animation-delay: 0.1s; +} + +#loader-wrapper .loader-box > span:nth-child(3) { + animation-delay: 0.2s; +} + +#loader-wrapper .loader-box > span:nth-child(4) { + animation-delay: 0.3s; +} + +#loader-wrapper .loader-box > span:nth-child(5) { + animation-delay: 0.4s; +} + +#loader-wrapper .loader-box > span:nth-child(6) { + animation-delay: 0.5s; +} + +#loader-wrapper .loader-box > span:nth-child(7) { + animation-delay: 0.6s; +} + +@keyframes bouncingLoader { + 0% { + transform: translateY(0); + } + 50% { + transform: translateY(25px); + } + 100% { + transform: translateY(0); + } +} + +#loader-wrapper .loader-title { + font-weight: bold; + z-index: 1002; + position: absolute; + top: 50%; + margin-top: 15px; + color: #87888E; + font-size: 18px; + width: 100%; + height: 30px; + text-align: center; + opacity: 0.4; + line-height: 30px; +} diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000..ecd70ca Binary files /dev/null and b/public/favicon.png differ diff --git a/public/hty_logo.png b/public/hty_logo.png new file mode 100644 index 0000000..22264f6 Binary files /dev/null and b/public/hty_logo.png differ diff --git a/public/iconfont/avue/iconfont.css b/public/iconfont/avue/iconfont.css new file mode 100644 index 0000000..d957b8a --- /dev/null +++ b/public/iconfont/avue/iconfont.css @@ -0,0 +1,201 @@ +@font-face {font-family: "iconfont"; + src: url('iconfont.eot?t=1611236720878'); /* IE9 */ + src: url('iconfont.eot?t=1611236720878#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), + url('iconfont.woff?t=1611236720878') format('woff'), + url('iconfont.ttf?t=1611236720878') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ + url('iconfont.svg?t=1611236720878#iconfont') format('svg'); /* iOS 4.1- */ +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-zhongyingwen:before { + content: "\e61d"; +} + +.icon-caidan:before { + content: "\e891"; +} + +.icon-rizhi1:before { + content: "\e6af"; +} + +.icon-suoping:before { + content: "\e6e9"; +} + +.icon-zhuti:before { + content: "\e620"; +} + +.icon-bug:before { + content: "\e649"; +} + +.icon-weixin1:before { + content: "\e679"; +} + +.icon-qq1:before { + content: "\e609"; +} + +.icon-yanzhengma:before { + content: "\e616"; +} + +.icon-yonghu:before { + content: "\e6b3"; +} + +.icon-mima:before { + content: "\e652"; +} + +.icon-shouji:before { + content: "\e65d"; +} + +.icon-iconset0265:before { + content: "\e6a4"; +} + +.icon-dongtai:before { + content: "\e6a7"; +} + +.icon-canshu:before { + content: "\e655"; +} + +.icon-shujuzhanshi2:before { + content: "\e651"; +} + +.icon-tuichuquanping:before { + content: "\e755"; +} + +.icon-rizhi:before { + content: "\e61c"; +} + +.icon-cuowutishitubiao:before { + content: "\e6a0"; +} + +.icon-iconset0216:before { + content: "\e673"; +} + +.icon-debug:before { + content: "\e611"; +} + +.icon-quanxian:before { + content: "\e63f"; +} + +.icon-shuaxin:before { + content: "\e6ba"; +} + +.icon-quanping:before { + content: "\e615"; +} + +.icon-bofangqi-suoping:before { + content: "\e699"; +} + +.icon-navicon:before { + content: "\e84e"; +} + +.icon-yuan:before { + content: "\e657"; +} + +.icon-biaodan:before { + content: "\e715"; +} + +.icon-liuliangyunpingtaitubiao08:before { + content: "\e68f"; +} + +.icon-caidanguanli:before { + content: "\e7c0"; +} + +.icon-yonghuguanli:before { + content: "\e610"; +} + +.icon-jiaoseguanli:before { + content: "\e624"; +} + +.icon-cuowu:before { + content: "\e626"; +} + +.icon-wxbgongju:before { + content: "\e61b"; +} + +.icon-tuichu:before { + content: "\e642"; +} + +.icon-daohanglanmoshi02:before { + content: "\e623"; +} + +.icon-changyonglogo27:before { + content: "\e714"; +} + +.icon-huanyingye:before { + content: "\e60c"; +} + +.icon-iframe:before { + content: "\e74c"; +} + +.icon-msnui-360:before { + content: "\e78a"; +} + +.icon-souhu:before { + content: "\e62d"; +} + +.icon-tubiao:before { + content: "\e630"; +} + +.icon-baidu1:before { + content: "\e621"; +} + +.icon-biaoge:before { + content: "\e6b5"; +} + +.icon-qq:before { + content: "\e631"; +} + +.icon-weixin:before { + content: "\e632"; +} + diff --git a/public/iconfont/avue/iconfont.eot b/public/iconfont/avue/iconfont.eot new file mode 100644 index 0000000..05c8789 Binary files /dev/null and b/public/iconfont/avue/iconfont.eot differ diff --git a/public/iconfont/avue/iconfont.js b/public/iconfont/avue/iconfont.js new file mode 100644 index 0000000..1d83d3c --- /dev/null +++ b/public/iconfont/avue/iconfont.js @@ -0,0 +1 @@ +!function(c){var l,h,t,a,o,i,s='',z=(z=document.getElementsByTagName("script"))[z.length-1].getAttribute("data-injectcss");if(z&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}function M(){o||(o=!0,t())}l=function(){var c,l,h,t;(t=document.createElement("div")).innerHTML=s,s=null,(h=t.getElementsByTagName("svg")[0])&&(h.setAttribute("aria-hidden","true"),h.style.position="absolute",h.style.width=0,h.style.height=0,h.style.overflow="hidden",c=h,(l=document.body).firstChild?(t=c,(h=l.firstChild).parentNode.insertBefore(t,h)):l.appendChild(c))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(h=function(){document.removeEventListener("DOMContentLoaded",h,!1),l()},document.addEventListener("DOMContentLoaded",h,!1)):document.attachEvent&&(t=l,a=c.document,o=!1,(i=function(){try{a.documentElement.doScroll("left")}catch(c){return void setTimeout(i,50)}M()})(),a.onreadystatechange=function(){"complete"==a.readyState&&(a.onreadystatechange=null,M())})}(window); \ No newline at end of file diff --git a/public/iconfont/avue/iconfont.json b/public/iconfont/avue/iconfont.json new file mode 100644 index 0000000..15c7207 --- /dev/null +++ b/public/iconfont/avue/iconfont.json @@ -0,0 +1,331 @@ +{ + "id": "567566", + "name": "avue-cli", + "font_family": "iconfont", + "css_prefix_text": "icon-", + "description": "", + "glyphs": [ + { + "icon_id": "5779983", + "name": "中英文", + "font_class": "zhongyingwen", + "unicode": "e61d", + "unicode_decimal": 58909 + }, + { + "icon_id": "6270863", + "name": "菜单", + "font_class": "caidan", + "unicode": "e891", + "unicode_decimal": 59537 + }, + { + "icon_id": "696478", + "name": "日志", + "font_class": "rizhi1", + "unicode": "e6af", + "unicode_decimal": 59055 + }, + { + "icon_id": "3416675", + "name": "锁屏", + "font_class": "suoping", + "unicode": "e6e9", + "unicode_decimal": 59113 + }, + { + "icon_id": "6631809", + "name": "主题", + "font_class": "zhuti", + "unicode": "e620", + "unicode_decimal": 58912 + }, + { + "icon_id": "1261208", + "name": "bug", + "font_class": "bug", + "unicode": "e649", + "unicode_decimal": 58953 + }, + { + "icon_id": "288984", + "name": "微信", + "font_class": "weixin1", + "unicode": "e679", + "unicode_decimal": 59001 + }, + { + "icon_id": "1037628", + "name": "qq", + "font_class": "qq1", + "unicode": "e609", + "unicode_decimal": 58889 + }, + { + "icon_id": "1046777", + "name": "验证码", + "font_class": "yanzhengma", + "unicode": "e616", + "unicode_decimal": 58902 + }, + { + "icon_id": "2559431", + "name": "用户", + "font_class": "yonghu", + "unicode": "e6b3", + "unicode_decimal": 59059 + }, + { + "icon_id": "2678617", + "name": "密码", + "font_class": "mima", + "unicode": "e652", + "unicode_decimal": 58962 + }, + { + "icon_id": "2678634", + "name": "手机", + "font_class": "shouji", + "unicode": "e65d", + "unicode_decimal": 58973 + }, + { + "icon_id": "554313", + "name": "wifi路由", + "font_class": "iconset0265", + "unicode": "e6a4", + "unicode_decimal": 59044 + }, + { + "icon_id": "1149090", + "name": "动态", + "font_class": "dongtai", + "unicode": "e6a7", + "unicode_decimal": 59047 + }, + { + "icon_id": "3851337", + "name": "参数", + "font_class": "canshu", + "unicode": "e655", + "unicode_decimal": 58965 + }, + { + "icon_id": "167168", + "name": "数据展示2", + "font_class": "shujuzhanshi2", + "unicode": "e651", + "unicode_decimal": 58961 + }, + { + "icon_id": "1025135", + "name": "退出全屏", + "font_class": "tuichuquanping", + "unicode": "e755", + "unicode_decimal": 59221 + }, + { + "icon_id": "1166053", + "name": "日志", + "font_class": "rizhi", + "unicode": "e61c", + "unicode_decimal": 58908 + }, + { + "icon_id": "500861", + "name": "错误提示图标", + "font_class": "cuowutishitubiao", + "unicode": "e6a0", + "unicode_decimal": 59040 + }, + { + "icon_id": "554205", + "name": "闪电", + "font_class": "iconset0216", + "unicode": "e673", + "unicode_decimal": 58995 + }, + { + "icon_id": "1572731", + "name": "错误", + "font_class": "debug", + "unicode": "e611", + "unicode_decimal": 58897 + }, + { + "icon_id": "1305474", + "name": "权限", + "font_class": "quanxian", + "unicode": "e63f", + "unicode_decimal": 58943 + }, + { + "icon_id": "1684809", + "name": "刷新", + "font_class": "shuaxin", + "unicode": "e6ba", + "unicode_decimal": 59066 + }, + { + "icon_id": "579385", + "name": "全屏", + "font_class": "quanping", + "unicode": "e615", + "unicode_decimal": 58901 + }, + { + "icon_id": "2154823", + "name": "播放器-(锁屏)_44", + "font_class": "bofangqi-suoping", + "unicode": "e699", + "unicode_decimal": 59033 + }, + { + "icon_id": "1160830", + "name": "navicon", + "font_class": "navicon", + "unicode": "e84e", + "unicode_decimal": 59470 + }, + { + "icon_id": "1250665", + "name": "圆", + "font_class": "yuan", + "unicode": "e657", + "unicode_decimal": 58967 + }, + { + "icon_id": "680969", + "name": "表单", + "font_class": "biaodan", + "unicode": "e715", + "unicode_decimal": 59157 + }, + { + "icon_id": "1164693", + "name": "系统管理", + "font_class": "liuliangyunpingtaitubiao08", + "unicode": "e68f", + "unicode_decimal": 59023 + }, + { + "icon_id": "1723000", + "name": "菜单管理", + "font_class": "caidanguanli", + "unicode": "e7c0", + "unicode_decimal": 59328 + }, + { + "icon_id": "2486611", + "name": "用户管理", + "font_class": "yonghuguanli", + "unicode": "e610", + "unicode_decimal": 58896 + }, + { + "icon_id": "2959039", + "name": "角色管理", + "font_class": "jiaoseguanli", + "unicode": "e624", + "unicode_decimal": 58916 + }, + { + "icon_id": "1164841", + "name": "错误", + "font_class": "cuowu", + "unicode": "e626", + "unicode_decimal": 58918 + }, + { + "icon_id": "591722", + "name": "wxb工具", + "font_class": "wxbgongju", + "unicode": "e61b", + "unicode_decimal": 58907 + }, + { + "icon_id": "804054", + "name": "退出", + "font_class": "tuichu", + "unicode": "e642", + "unicode_decimal": 58946 + }, + { + "icon_id": "1191509", + "name": "导航栏_模式02", + "font_class": "daohanglanmoshi02", + "unicode": "e623", + "unicode_decimal": 58915 + }, + { + "icon_id": "1005775", + "name": "阿里巴巴", + "font_class": "changyonglogo27", + "unicode": "e714", + "unicode_decimal": 59156 + }, + { + "icon_id": "128369", + "name": "欢迎页", + "font_class": "huanyingye", + "unicode": "e60c", + "unicode_decimal": 58892 + }, + { + "icon_id": "586924", + "name": "iframe", + "font_class": "iframe", + "unicode": "e74c", + "unicode_decimal": 59212 + }, + { + "icon_id": "700335", + "name": "360", + "font_class": "msnui-360", + "unicode": "e78a", + "unicode_decimal": 59274 + }, + { + "icon_id": "833695", + "name": "搜狐", + "font_class": "souhu", + "unicode": "e62d", + "unicode_decimal": 58925 + }, + { + "icon_id": "1114667", + "name": "图标", + "font_class": "tubiao", + "unicode": "e630", + "unicode_decimal": 58928 + }, + { + "icon_id": "1346645", + "name": "百度1", + "font_class": "baidu1", + "unicode": "e621", + "unicode_decimal": 58913 + }, + { + "icon_id": "1789257", + "name": "表格", + "font_class": "biaoge", + "unicode": "e6b5", + "unicode_decimal": 59061 + }, + { + "icon_id": "695468", + "name": "QQ", + "font_class": "qq", + "unicode": "e631", + "unicode_decimal": 58929 + }, + { + "icon_id": "851731", + "name": "微信", + "font_class": "weixin", + "unicode": "e632", + "unicode_decimal": 58930 + } + ] +} diff --git a/public/iconfont/avue/iconfont.svg b/public/iconfont/avue/iconfont.svg new file mode 100644 index 0000000..45815e9 --- /dev/null +++ b/public/iconfont/avue/iconfont.svg @@ -0,0 +1,164 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/iconfont/avue/iconfont.ttf b/public/iconfont/avue/iconfont.ttf new file mode 100644 index 0000000..9e40a79 Binary files /dev/null and b/public/iconfont/avue/iconfont.ttf differ diff --git a/public/iconfont/avue/iconfont.woff b/public/iconfont/avue/iconfont.woff new file mode 100644 index 0000000..8a88f4e Binary files /dev/null and b/public/iconfont/avue/iconfont.woff differ diff --git a/public/iconfont/avue/iconfont.woff2 b/public/iconfont/avue/iconfont.woff2 new file mode 100644 index 0000000..18195bd Binary files /dev/null and b/public/iconfont/avue/iconfont.woff2 differ diff --git a/public/iconfont/index.css b/public/iconfont/index.css new file mode 100644 index 0000000..c097181 --- /dev/null +++ b/public/iconfont/index.css @@ -0,0 +1,23 @@ + +[class^="icon-"]{ + font-family: "iconfont" !important; + /* 以下内容参照第三方图标库本身的规则 */ + font-size: 18px !important; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.el-menu-item [class^=icon-] { + margin-right: 5px; + width: 24px; + text-align: center; + font-size: 18px; + vertical-align: middle; +} +.el-submenu [class^=icon-] { + vertical-align: middle; + margin-right: 5px; + width: 24px; + text-align: center; + font-size: 18px; +} diff --git a/public/iconfont/saber/iconfont.css b/public/iconfont/saber/iconfont.css new file mode 100644 index 0000000..75a799a --- /dev/null +++ b/public/iconfont/saber/iconfont.css @@ -0,0 +1,345 @@ +@font-face {font-family: "iconfont"; + src: url('iconfont.eot?t=1611211499158'); /* IE9 */ + src: url('iconfont.eot?t=1611211499158#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), + url('iconfont.woff?t=1611211499158') format('woff'), + url('iconfont.ttf?t=1611211499158') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ + url('iconfont.svg?t=1611211499158#iconfont') format('svg'); /* iOS 4.1- */ +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icongitee2:before { + content: "\e6d6"; +} + +.icongithub:before { + content: "\e709"; +} + +.iconicon_wechat:before { + content: "\ebde"; +} + +.iconicon_exchange:before { + content: "\eba7"; +} + +.iconicon_ding:before { + content: "\eba8"; +} + +.iconicon_down:before { + content: "\eba9"; +} + +.iconicon_glass:before { + content: "\ebaa"; +} + +.iconicon_GPS:before { + content: "\ebab"; +} + +.iconicon_hardware_fill:before { + content: "\ebac"; +} + +.iconicon_im_more:before { + content: "\ebad"; +} + +.iconicon_group:before { + content: "\ebae"; +} + +.iconicon_horn:before { + content: "\ebaf"; +} + +.iconicon_im_face:before { + content: "\ebb0"; +} + +.iconicon_launch_page:before { + content: "\ebb1"; +} + +.iconicon_likegood:before { + content: "\ebb2"; +} + +.iconicon_index_line:before { + content: "\ebb3"; +} + +.iconicon_live:before { + content: "\ebb4"; +} + +.iconicon_link:before { + content: "\ebb5"; +} + +.iconicon_im_voice:before { + content: "\ebb6"; +} + +.iconicon_mobilephone:before { + content: "\ebb7"; +} + +.iconicon_dmail:before { + content: "\ebb8"; +} + +.iconicon_message:before { + content: "\ebb9"; +} + +.iconicon_more:before { + content: "\ebba"; +} + +.iconicon_left:before { + content: "\ebbb"; +} + +.iconicon_next_arrow:before { + content: "\ebbc"; +} + +.iconicon_notice:before { + content: "\ebbd"; +} + +.iconicon_namecard:before { + content: "\ebbe"; +} + +.iconicon_phone:before { + content: "\ebbf"; +} + +.iconicon_qq:before { + content: "\ebc0"; +} + +.iconicon_photo:before { + content: "\ebc1"; +} + +.iconicon_redpacket:before { + content: "\ebc2"; +} + +.iconicon_patriarch:before { + content: "\ebc3"; +} + +.iconicon_roundclose:before { + content: "\ebc4"; +} + +.iconicon_im_keyboard:before { + content: "\ebc5"; +} + +.iconicon_roundreduce:before { + content: "\ebc6"; +} + +.iconicon_QRcode:before { + content: "\ebc7"; +} + +.iconicon_savememo:before { + content: "\ebc8"; +} + +.iconicon_roundadd:before { + content: "\ebc9"; +} + +.iconicon_refresh:before { + content: "\ebca"; +} + +.iconicon_search:before { + content: "\ebcb"; +} + +.iconicon_scan:before { + content: "\ebcc"; +} + +.iconicon_send:before { + content: "\ebcd"; +} + +.iconicon_principal:before { + content: "\ebce"; +} + +.iconicon_scan_namecard:before { + content: "\ebcf"; +} + +.iconicon_secret:before { + content: "\ebd0"; +} + +.iconicon_share:before { + content: "\ebd1"; +} + +.iconicon_sms:before { + content: "\ebd2"; +} + +.iconicon_setting:before { + content: "\ebd3"; +} + +.iconicon_star:before { + content: "\ebd4"; +} + +.iconicon_subordinate:before { + content: "\ebd5"; +} + +.iconicon_task:before { + content: "\ebd6"; +} + +.iconicon_study:before { + content: "\ebd7"; +} + +.iconicon_work:before { + content: "\ebd8"; +} + +.iconicon_safety:before { + content: "\ebd9"; +} + +.iconicon_voipphone:before { + content: "\ebda"; +} + +.iconicon_shakehands:before { + content: "\ebdb"; +} + +.iconicon_task_done:before { + content: "\ebdc"; +} + +.iconicon_workfile_line:before { + content: "\ebdd"; +} + +.iconicon_add:before { + content: "\eb8f"; +} + +.iconicon_addmessage:before { + content: "\eb90"; +} + +.iconicon_addresslist:before { + content: "\eb91"; +} + +.iconicon_affiliations_li:before { + content: "\eb92"; +} + +.iconicon_addperson:before { + content: "\eb93"; +} + +.iconicon_boss:before { + content: "\eb94"; +} + +.iconicon_alipay_line:before { + content: "\eb95"; +} + +.iconicon_addressbook:before { + content: "\eb96"; +} + +.iconicon_at:before { + content: "\eb97"; +} + +.iconicon_airplay:before { + content: "\eb98"; +} + +.iconicon_calendar:before { + content: "\eb99"; +} + +.iconicon_attestation:before { + content: "\eb9a"; +} + +.iconicon_camera:before { + content: "\eb9b"; +} + +.iconicon_certificate_fil:before { + content: "\eb9c"; +} + +.iconicon_coinpurse_line:before { + content: "\eb9d"; +} + +.iconicon_compile:before { + content: "\eb9e"; +} + +.iconicon_details:before { + content: "\eb9f"; +} + +.iconicon_cloud_history:before { + content: "\eba0"; +} + +.iconicon_community_line:before { + content: "\eba1"; +} + +.iconicon_discovery:before { + content: "\eba2"; +} + +.iconicon_delete:before { + content: "\eba3"; +} + +.iconicon_dispose:before { + content: "\eba4"; +} + +.iconicon_doc:before { + content: "\eba5"; +} + +.iconicon_cspace:before { + content: "\eba6"; +} + diff --git a/public/iconfont/saber/iconfont.eot b/public/iconfont/saber/iconfont.eot new file mode 100644 index 0000000..e49550a Binary files /dev/null and b/public/iconfont/saber/iconfont.eot differ diff --git a/public/iconfont/saber/iconfont.js b/public/iconfont/saber/iconfont.js new file mode 100644 index 0000000..6ed8198 --- /dev/null +++ b/public/iconfont/saber/iconfont.js @@ -0,0 +1 @@ +!function(c){var o,h,s,l,i,a,m='',v=(v=document.getElementsByTagName("script"))[v.length-1].getAttribute("data-injectcss");if(v&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}function t(){i||(i=!0,s())}o=function(){var c,o,h,s;(s=document.createElement("div")).innerHTML=m,m=null,(h=s.getElementsByTagName("svg")[0])&&(h.setAttribute("aria-hidden","true"),h.style.position="absolute",h.style.width=0,h.style.height=0,h.style.overflow="hidden",c=h,(o=document.body).firstChild?(s=c,(h=o.firstChild).parentNode.insertBefore(s,h)):o.appendChild(c))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(o,0):(h=function(){document.removeEventListener("DOMContentLoaded",h,!1),o()},document.addEventListener("DOMContentLoaded",h,!1)):document.attachEvent&&(s=o,l=c.document,i=!1,(a=function(){try{l.documentElement.doScroll("left")}catch(c){return void setTimeout(a,50)}t()})(),l.onreadystatechange=function(){"complete"==l.readyState&&(l.onreadystatechange=null,t())})}(window); \ No newline at end of file diff --git a/public/iconfont/saber/iconfont.json b/public/iconfont/saber/iconfont.json new file mode 100644 index 0000000..39f6ffd --- /dev/null +++ b/public/iconfont/saber/iconfont.json @@ -0,0 +1,583 @@ +{ + "id": "1066523", + "name": "saber", + "font_family": "iconfont", + "css_prefix_text": "icon", + "description": "saber图标库", + "glyphs": [ + { + "icon_id": "7396772", + "name": "gitee", + "font_class": "gitee2", + "unicode": "e6d6", + "unicode_decimal": 59094 + }, + { + "icon_id": "431779", + "name": "github", + "font_class": "github", + "unicode": "e709", + "unicode_decimal": 59145 + }, + { + "icon_id": "7766806", + "name": "icon_wechat", + "font_class": "icon_wechat", + "unicode": "ebde", + "unicode_decimal": 60382 + }, + { + "icon_id": "7766735", + "name": "icon_exchange", + "font_class": "icon_exchange", + "unicode": "eba7", + "unicode_decimal": 60327 + }, + { + "icon_id": "7766736", + "name": "icon_ding", + "font_class": "icon_ding", + "unicode": "eba8", + "unicode_decimal": 60328 + }, + { + "icon_id": "7766737", + "name": "icon_down", + "font_class": "icon_down", + "unicode": "eba9", + "unicode_decimal": 60329 + }, + { + "icon_id": "7766740", + "name": "icon_glass", + "font_class": "icon_glass", + "unicode": "ebaa", + "unicode_decimal": 60330 + }, + { + "icon_id": "7766742", + "name": "icon_GPS", + "font_class": "icon_GPS", + "unicode": "ebab", + "unicode_decimal": 60331 + }, + { + "icon_id": "7766743", + "name": "icon_hardware_fill", + "font_class": "icon_hardware_fill", + "unicode": "ebac", + "unicode_decimal": 60332 + }, + { + "icon_id": "7766745", + "name": "icon_im_more", + "font_class": "icon_im_more", + "unicode": "ebad", + "unicode_decimal": 60333 + }, + { + "icon_id": "7766747", + "name": "icon_group", + "font_class": "icon_group", + "unicode": "ebae", + "unicode_decimal": 60334 + }, + { + "icon_id": "7766748", + "name": "icon_horn", + "font_class": "icon_horn", + "unicode": "ebaf", + "unicode_decimal": 60335 + }, + { + "icon_id": "7766749", + "name": "icon_im_face", + "font_class": "icon_im_face", + "unicode": "ebb0", + "unicode_decimal": 60336 + }, + { + "icon_id": "7766752", + "name": "icon_launch_page", + "font_class": "icon_launch_page", + "unicode": "ebb1", + "unicode_decimal": 60337 + }, + { + "icon_id": "7766753", + "name": "icon_likegood", + "font_class": "icon_likegood", + "unicode": "ebb2", + "unicode_decimal": 60338 + }, + { + "icon_id": "7766754", + "name": "icon_index_line", + "font_class": "icon_index_line", + "unicode": "ebb3", + "unicode_decimal": 60339 + }, + { + "icon_id": "7766755", + "name": "icon_live", + "font_class": "icon_live", + "unicode": "ebb4", + "unicode_decimal": 60340 + }, + { + "icon_id": "7766756", + "name": "icon_link", + "font_class": "icon_link", + "unicode": "ebb5", + "unicode_decimal": 60341 + }, + { + "icon_id": "7766757", + "name": "icon_im_voice", + "font_class": "icon_im_voice", + "unicode": "ebb6", + "unicode_decimal": 60342 + }, + { + "icon_id": "7766758", + "name": "icon_mobilephone", + "font_class": "icon_mobilephone", + "unicode": "ebb7", + "unicode_decimal": 60343 + }, + { + "icon_id": "7766759", + "name": "icon_dmail", + "font_class": "icon_dmail", + "unicode": "ebb8", + "unicode_decimal": 60344 + }, + { + "icon_id": "7766760", + "name": "icon_message", + "font_class": "icon_message", + "unicode": "ebb9", + "unicode_decimal": 60345 + }, + { + "icon_id": "7766763", + "name": "icon_more", + "font_class": "icon_more", + "unicode": "ebba", + "unicode_decimal": 60346 + }, + { + "icon_id": "7766764", + "name": "icon_left", + "font_class": "icon_left", + "unicode": "ebbb", + "unicode_decimal": 60347 + }, + { + "icon_id": "7766765", + "name": "icon_next_arrow", + "font_class": "icon_next_arrow", + "unicode": "ebbc", + "unicode_decimal": 60348 + }, + { + "icon_id": "7766766", + "name": "icon_notice", + "font_class": "icon_notice", + "unicode": "ebbd", + "unicode_decimal": 60349 + }, + { + "icon_id": "7766769", + "name": "icon_namecard", + "font_class": "icon_namecard", + "unicode": "ebbe", + "unicode_decimal": 60350 + }, + { + "icon_id": "7766770", + "name": "icon_phone", + "font_class": "icon_phone", + "unicode": "ebbf", + "unicode_decimal": 60351 + }, + { + "icon_id": "7766771", + "name": "icon_qq", + "font_class": "icon_qq", + "unicode": "ebc0", + "unicode_decimal": 60352 + }, + { + "icon_id": "7766772", + "name": "icon_photo", + "font_class": "icon_photo", + "unicode": "ebc1", + "unicode_decimal": 60353 + }, + { + "icon_id": "7766774", + "name": "icon_redpacket", + "font_class": "icon_redpacket", + "unicode": "ebc2", + "unicode_decimal": 60354 + }, + { + "icon_id": "7766775", + "name": "icon_patriarch", + "font_class": "icon_patriarch", + "unicode": "ebc3", + "unicode_decimal": 60355 + }, + { + "icon_id": "7766776", + "name": "icon_roundclose", + "font_class": "icon_roundclose", + "unicode": "ebc4", + "unicode_decimal": 60356 + }, + { + "icon_id": "7766777", + "name": "icon_im_keyboard", + "font_class": "icon_im_keyboard", + "unicode": "ebc5", + "unicode_decimal": 60357 + }, + { + "icon_id": "7766778", + "name": "icon_roundreduce", + "font_class": "icon_roundreduce", + "unicode": "ebc6", + "unicode_decimal": 60358 + }, + { + "icon_id": "7766780", + "name": "icon_QRcode", + "font_class": "icon_QRcode", + "unicode": "ebc7", + "unicode_decimal": 60359 + }, + { + "icon_id": "7766781", + "name": "icon_savememo", + "font_class": "icon_savememo", + "unicode": "ebc8", + "unicode_decimal": 60360 + }, + { + "icon_id": "7766782", + "name": "icon_roundadd", + "font_class": "icon_roundadd", + "unicode": "ebc9", + "unicode_decimal": 60361 + }, + { + "icon_id": "7766783", + "name": "icon_refresh", + "font_class": "icon_refresh", + "unicode": "ebca", + "unicode_decimal": 60362 + }, + { + "icon_id": "7766784", + "name": "icon_search", + "font_class": "icon_search", + "unicode": "ebcb", + "unicode_decimal": 60363 + }, + { + "icon_id": "7766785", + "name": "icon_scan", + "font_class": "icon_scan", + "unicode": "ebcc", + "unicode_decimal": 60364 + }, + { + "icon_id": "7766786", + "name": "icon_send", + "font_class": "icon_send", + "unicode": "ebcd", + "unicode_decimal": 60365 + }, + { + "icon_id": "7766787", + "name": "icon_principal", + "font_class": "icon_principal", + "unicode": "ebce", + "unicode_decimal": 60366 + }, + { + "icon_id": "7766789", + "name": "icon_scan_namecard", + "font_class": "icon_scan_namecard", + "unicode": "ebcf", + "unicode_decimal": 60367 + }, + { + "icon_id": "7766790", + "name": "icon_secret", + "font_class": "icon_secret", + "unicode": "ebd0", + "unicode_decimal": 60368 + }, + { + "icon_id": "7766791", + "name": "icon_share", + "font_class": "icon_share", + "unicode": "ebd1", + "unicode_decimal": 60369 + }, + { + "icon_id": "7766793", + "name": "icon_sms", + "font_class": "icon_sms", + "unicode": "ebd2", + "unicode_decimal": 60370 + }, + { + "icon_id": "7766795", + "name": "icon_setting", + "font_class": "icon_setting", + "unicode": "ebd3", + "unicode_decimal": 60371 + }, + { + "icon_id": "7766798", + "name": "icon_star", + "font_class": "icon_star", + "unicode": "ebd4", + "unicode_decimal": 60372 + }, + { + "icon_id": "7766799", + "name": "icon_subordinate", + "font_class": "icon_subordinate", + "unicode": "ebd5", + "unicode_decimal": 60373 + }, + { + "icon_id": "7766800", + "name": "icon_task", + "font_class": "icon_task", + "unicode": "ebd6", + "unicode_decimal": 60374 + }, + { + "icon_id": "7766803", + "name": "icon_study", + "font_class": "icon_study", + "unicode": "ebd7", + "unicode_decimal": 60375 + }, + { + "icon_id": "7766808", + "name": "icon_work", + "font_class": "icon_work", + "unicode": "ebd8", + "unicode_decimal": 60376 + }, + { + "icon_id": "7766811", + "name": "icon_safety", + "font_class": "icon_safety", + "unicode": "ebd9", + "unicode_decimal": 60377 + }, + { + "icon_id": "7766813", + "name": "icon_voipphone", + "font_class": "icon_voipphone", + "unicode": "ebda", + "unicode_decimal": 60378 + }, + { + "icon_id": "7766815", + "name": "icon_shakehands", + "font_class": "icon_shakehands", + "unicode": "ebdb", + "unicode_decimal": 60379 + }, + { + "icon_id": "7766817", + "name": "icon_task_done", + "font_class": "icon_task_done", + "unicode": "ebdc", + "unicode_decimal": 60380 + }, + { + "icon_id": "7766820", + "name": "icon_workfile_line", + "font_class": "icon_workfile_line", + "unicode": "ebdd", + "unicode_decimal": 60381 + }, + { + "icon_id": "7766709", + "name": "icon_add", + "font_class": "icon_add", + "unicode": "eb8f", + "unicode_decimal": 60303 + }, + { + "icon_id": "7766710", + "name": "icon_addmessage", + "font_class": "icon_addmessage", + "unicode": "eb90", + "unicode_decimal": 60304 + }, + { + "icon_id": "7766711", + "name": "icon_addresslist", + "font_class": "icon_addresslist", + "unicode": "eb91", + "unicode_decimal": 60305 + }, + { + "icon_id": "7766712", + "name": "icon_affiliations_li", + "font_class": "icon_affiliations_li", + "unicode": "eb92", + "unicode_decimal": 60306 + }, + { + "icon_id": "7766713", + "name": "icon_addperson", + "font_class": "icon_addperson", + "unicode": "eb93", + "unicode_decimal": 60307 + }, + { + "icon_id": "7766714", + "name": "icon_boss", + "font_class": "icon_boss", + "unicode": "eb94", + "unicode_decimal": 60308 + }, + { + "icon_id": "7766715", + "name": "icon_alipay_line", + "font_class": "icon_alipay_line", + "unicode": "eb95", + "unicode_decimal": 60309 + }, + { + "icon_id": "7766716", + "name": "icon_addressbook", + "font_class": "icon_addressbook", + "unicode": "eb96", + "unicode_decimal": 60310 + }, + { + "icon_id": "7766717", + "name": "icon_at", + "font_class": "icon_at", + "unicode": "eb97", + "unicode_decimal": 60311 + }, + { + "icon_id": "7766718", + "name": "icon_airplay", + "font_class": "icon_airplay", + "unicode": "eb98", + "unicode_decimal": 60312 + }, + { + "icon_id": "7766719", + "name": "icon_calendar", + "font_class": "icon_calendar", + "unicode": "eb99", + "unicode_decimal": 60313 + }, + { + "icon_id": "7766720", + "name": "icon_attestation", + "font_class": "icon_attestation", + "unicode": "eb9a", + "unicode_decimal": 60314 + }, + { + "icon_id": "7766721", + "name": "icon_camera", + "font_class": "icon_camera", + "unicode": "eb9b", + "unicode_decimal": 60315 + }, + { + "icon_id": "7766722", + "name": "icon_certificate_fil", + "font_class": "icon_certificate_fil", + "unicode": "eb9c", + "unicode_decimal": 60316 + }, + { + "icon_id": "7766723", + "name": "icon_coinpurse_line", + "font_class": "icon_coinpurse_line", + "unicode": "eb9d", + "unicode_decimal": 60317 + }, + { + "icon_id": "7766725", + "name": "icon_compile", + "font_class": "icon_compile", + "unicode": "eb9e", + "unicode_decimal": 60318 + }, + { + "icon_id": "7766726", + "name": "icon_details", + "font_class": "icon_details", + "unicode": "eb9f", + "unicode_decimal": 60319 + }, + { + "icon_id": "7766728", + "name": "icon_cloud_history", + "font_class": "icon_cloud_history", + "unicode": "eba0", + "unicode_decimal": 60320 + }, + { + "icon_id": "7766729", + "name": "icon_community_line", + "font_class": "icon_community_line", + "unicode": "eba1", + "unicode_decimal": 60321 + }, + { + "icon_id": "7766730", + "name": "icon_discovery", + "font_class": "icon_discovery", + "unicode": "eba2", + "unicode_decimal": 60322 + }, + { + "icon_id": "7766731", + "name": "icon_delete", + "font_class": "icon_delete", + "unicode": "eba3", + "unicode_decimal": 60323 + }, + { + "icon_id": "7766732", + "name": "icon_dispose", + "font_class": "icon_dispose", + "unicode": "eba4", + "unicode_decimal": 60324 + }, + { + "icon_id": "7766733", + "name": "icon_doc", + "font_class": "icon_doc", + "unicode": "eba5", + "unicode_decimal": 60325 + }, + { + "icon_id": "7766734", + "name": "icon_cspace", + "font_class": "icon_cspace", + "unicode": "eba6", + "unicode_decimal": 60326 + } + ] +} diff --git a/public/iconfont/saber/iconfont.svg b/public/iconfont/saber/iconfont.svg new file mode 100644 index 0000000..f96dc36 --- /dev/null +++ b/public/iconfont/saber/iconfont.svg @@ -0,0 +1,272 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/iconfont/saber/iconfont.ttf b/public/iconfont/saber/iconfont.ttf new file mode 100644 index 0000000..4a0beab Binary files /dev/null and b/public/iconfont/saber/iconfont.ttf differ diff --git a/public/iconfont/saber/iconfont.woff b/public/iconfont/saber/iconfont.woff new file mode 100644 index 0000000..3119113 Binary files /dev/null and b/public/iconfont/saber/iconfont.woff differ diff --git a/public/iconfont/saber/iconfont.woff2 b/public/iconfont/saber/iconfont.woff2 new file mode 100644 index 0000000..a391ec4 Binary files /dev/null and b/public/iconfont/saber/iconfont.woff2 differ diff --git a/public/images/arrow-grey.png b/public/images/arrow-grey.png new file mode 100644 index 0000000..823a7b6 Binary files /dev/null and b/public/images/arrow-grey.png differ diff --git a/public/images/arrow.png b/public/images/arrow.png new file mode 100644 index 0000000..47d1537 Binary files /dev/null and b/public/images/arrow.png differ diff --git a/public/images/engineer-grey.png b/public/images/engineer-grey.png new file mode 100644 index 0000000..47b9985 Binary files /dev/null and b/public/images/engineer-grey.png differ diff --git a/public/images/engineer.png b/public/images/engineer.png new file mode 100644 index 0000000..be5ee74 Binary files /dev/null and b/public/images/engineer.png differ diff --git a/public/images/finish-grey.png b/public/images/finish-grey.png new file mode 100644 index 0000000..241fa99 Binary files /dev/null and b/public/images/finish-grey.png differ diff --git a/public/images/finish.png b/public/images/finish.png new file mode 100644 index 0000000..7badfcf Binary files /dev/null and b/public/images/finish.png differ diff --git a/public/images/login/bg.png b/public/images/login/bg.png new file mode 100644 index 0000000..9ce2f1f Binary files /dev/null and b/public/images/login/bg.png differ diff --git a/public/images/login/pic1.png b/public/images/login/pic1.png new file mode 100644 index 0000000..76534d2 Binary files /dev/null and b/public/images/login/pic1.png differ diff --git a/public/images/login/pic2.png b/public/images/login/pic2.png new file mode 100644 index 0000000..350582c Binary files /dev/null and b/public/images/login/pic2.png differ diff --git a/public/images/login/pic3.png b/public/images/login/pic3.png new file mode 100644 index 0000000..fd95fdc Binary files /dev/null and b/public/images/login/pic3.png differ diff --git a/public/images/login/pic4.png b/public/images/login/pic4.png new file mode 100644 index 0000000..52551d9 Binary files /dev/null and b/public/images/login/pic4.png differ diff --git a/public/images/order-grey.png b/public/images/order-grey.png new file mode 100644 index 0000000..aa058da Binary files /dev/null and b/public/images/order-grey.png differ diff --git a/public/images/order.png b/public/images/order.png new file mode 100644 index 0000000..98882d6 Binary files /dev/null and b/public/images/order.png differ diff --git a/public/images/service-grey.png b/public/images/service-grey.png new file mode 100644 index 0000000..697231f Binary files /dev/null and b/public/images/service-grey.png differ diff --git a/public/images/service.png b/public/images/service.png new file mode 100644 index 0000000..d31b709 Binary files /dev/null and b/public/images/service.png differ diff --git a/public/img/403.svg b/public/img/403.svg new file mode 100644 index 0000000..610f136 --- /dev/null +++ b/public/img/403.svg @@ -0,0 +1,508 @@ + + + + Group 9 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/img/404.svg b/public/img/404.svg new file mode 100644 index 0000000..5531d05 --- /dev/null +++ b/public/img/404.svg @@ -0,0 +1,314 @@ + + + + Group 4 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/img/500.svg b/public/img/500.svg new file mode 100644 index 0000000..de723b1 --- /dev/null +++ b/public/img/500.svg @@ -0,0 +1,208 @@ + + + + Group 4 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/img/bg.jpg b/public/img/bg.jpg new file mode 100644 index 0000000..18a3394 Binary files /dev/null and b/public/img/bg.jpg differ diff --git a/public/img/bg/403.svg b/public/img/bg/403.svg new file mode 100644 index 0000000..610f136 --- /dev/null +++ b/public/img/bg/403.svg @@ -0,0 +1,508 @@ + + + + Group 9 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/img/bg/404.svg b/public/img/bg/404.svg new file mode 100644 index 0000000..5531d05 --- /dev/null +++ b/public/img/bg/404.svg @@ -0,0 +1,314 @@ + + + + Group 4 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/img/bg/500.svg b/public/img/bg/500.svg new file mode 100644 index 0000000..de723b1 --- /dev/null +++ b/public/img/bg/500.svg @@ -0,0 +1,208 @@ + + + + Group 4 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/img/bg/bg.jpg b/public/img/bg/bg.jpg new file mode 100644 index 0000000..7f08086 Binary files /dev/null and b/public/img/bg/bg.jpg differ diff --git a/public/img/bg/bg1.jpg b/public/img/bg/bg1.jpg new file mode 100644 index 0000000..c13e5c9 Binary files /dev/null and b/public/img/bg/bg1.jpg differ diff --git a/public/img/bg/bg2.jpg b/public/img/bg/bg2.jpg new file mode 100644 index 0000000..a16b980 Binary files /dev/null and b/public/img/bg/bg2.jpg differ diff --git a/public/img/bg/bg3.jpg b/public/img/bg/bg3.jpg new file mode 100644 index 0000000..b72458d Binary files /dev/null and b/public/img/bg/bg3.jpg differ diff --git a/public/img/bg/bg4.jpg b/public/img/bg/bg4.jpg new file mode 100644 index 0000000..5b5248a Binary files /dev/null and b/public/img/bg/bg4.jpg differ diff --git a/public/img/bg/cloud.jpg b/public/img/bg/cloud.jpg new file mode 100644 index 0000000..151a000 Binary files /dev/null and b/public/img/bg/cloud.jpg differ diff --git a/public/img/bg/img-logo.png b/public/img/bg/img-logo.png new file mode 100644 index 0000000..9a6b2a4 Binary files /dev/null and b/public/img/bg/img-logo.png differ diff --git a/public/img/bg/login.png b/public/img/bg/login.png new file mode 100644 index 0000000..eb92779 Binary files /dev/null and b/public/img/bg/login.png differ diff --git a/public/img/bg/logo.png b/public/img/bg/logo.png new file mode 100644 index 0000000..b3e40cc Binary files /dev/null and b/public/img/bg/logo.png differ diff --git a/public/img/bg/star-squashed.jpg b/public/img/bg/star-squashed.jpg new file mode 100644 index 0000000..2176e39 Binary files /dev/null and b/public/img/bg/star-squashed.jpg differ diff --git a/public/img/bg/vip1.png b/public/img/bg/vip1.png new file mode 100644 index 0000000..babbf10 Binary files /dev/null and b/public/img/bg/vip1.png differ diff --git a/public/img/bg/vip2.png b/public/img/bg/vip2.png new file mode 100644 index 0000000..3071122 Binary files /dev/null and b/public/img/bg/vip2.png differ diff --git a/public/img/bg/vip3.png b/public/img/bg/vip3.png new file mode 100644 index 0000000..256f837 Binary files /dev/null and b/public/img/bg/vip3.png differ diff --git a/public/img/bg/vip4.png b/public/img/bg/vip4.png new file mode 100644 index 0000000..3ece581 Binary files /dev/null and b/public/img/bg/vip4.png differ diff --git a/public/img/bg1.jpg b/public/img/bg1.jpg new file mode 100644 index 0000000..c13e5c9 Binary files /dev/null and b/public/img/bg1.jpg differ diff --git a/public/img/bg2.jpg b/public/img/bg2.jpg new file mode 100644 index 0000000..a16b980 Binary files /dev/null and b/public/img/bg2.jpg differ diff --git a/public/img/bg3.jpg b/public/img/bg3.jpg new file mode 100644 index 0000000..b72458d Binary files /dev/null and b/public/img/bg3.jpg differ diff --git a/public/img/bg4.jpg b/public/img/bg4.jpg new file mode 100644 index 0000000..5b5248a Binary files /dev/null and b/public/img/bg4.jpg differ diff --git a/public/img/blue_circle.png b/public/img/blue_circle.png new file mode 100644 index 0000000..ab0dff1 Binary files /dev/null and b/public/img/blue_circle.png differ diff --git a/public/img/icon1.png b/public/img/icon1.png new file mode 100644 index 0000000..48188a7 Binary files /dev/null and b/public/img/icon1.png differ diff --git a/public/img/icon2.png b/public/img/icon2.png new file mode 100644 index 0000000..70c0ba9 Binary files /dev/null and b/public/img/icon2.png differ diff --git a/public/img/icon3.png b/public/img/icon3.png new file mode 100644 index 0000000..5260e6f Binary files /dev/null and b/public/img/icon3.png differ diff --git a/public/img/icon4.png b/public/img/icon4.png new file mode 100644 index 0000000..bf5c0c7 Binary files /dev/null and b/public/img/icon4.png differ diff --git a/public/img/login-bg.svg b/public/img/login-bg.svg new file mode 100644 index 0000000..a637a49 --- /dev/null +++ b/public/img/login-bg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/logo.png b/public/img/logo.png new file mode 100644 index 0000000..b3e40cc Binary files /dev/null and b/public/img/logo.png differ diff --git a/public/img/red_circle.png b/public/img/red_circle.png new file mode 100644 index 0000000..8992198 Binary files /dev/null and b/public/img/red_circle.png differ diff --git a/public/img/red_location.jpg b/public/img/red_location.jpg new file mode 100644 index 0000000..09686a2 Binary files /dev/null and b/public/img/red_location.jpg differ diff --git a/public/img/star-squashed.jpg b/public/img/star-squashed.jpg new file mode 100644 index 0000000..2176e39 Binary files /dev/null and b/public/img/star-squashed.jpg differ diff --git a/public/logo.ico b/public/logo.ico new file mode 100644 index 0000000..f42209f Binary files /dev/null and b/public/logo.ico differ diff --git a/public/nenghui_logo.png b/public/nenghui_logo.png new file mode 100644 index 0000000..57b1fc4 Binary files /dev/null and b/public/nenghui_logo.png differ diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..925f1d1 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/src/api/base/region.js b/src/api/base/region.js new file mode 100644 index 0000000..c9ea4c6 --- /dev/null +++ b/src/api/base/region.js @@ -0,0 +1,63 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-system/region/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + + +export const selectCityByProvince = (provinceName) => { + return request({ + url: '/blade-system/region/selectCityByProvince', + method: 'get', + params: { + provinceName:provinceName + }, + }); +}; + +export const getLazyTree = (parentCode, params) => { + return request({ + url: '/blade-system/region/lazy-tree', + method: 'get', + params: { + ...params, + parentCode, + }, + }); +}; + +export const getDetail = code => { + return request({ + url: '/blade-system/region/detail', + method: 'get', + params: { + code, + }, + }); +}; + +export const remove = id => { + return request({ + url: '/blade-system/region/remove', + method: 'post', + params: { + id, + }, + }); +}; + +export const submit = row => { + return request({ + url: '/blade-system/region/submit', + method: 'post', + data: row, + }); +}; diff --git a/src/api/common.js b/src/api/common.js new file mode 100644 index 0000000..80cc7a3 --- /dev/null +++ b/src/api/common.js @@ -0,0 +1,30 @@ +import request from '@/axios'; + +/** + * 文件流返回 + * @param url 接口地址 + * @param params 接口参数 + */ +export const exportBlob = (url, params) => { + return request({ + url: url, + params: params, + method: 'get', + responseType: 'blob', + }); +}; + + +/** + * 项目公司数据 +**/ +export const getPartnerList = (page) => { + return request({ + url: '/sf/partner/list', + method: 'get', + // params: { + // current:page.currentPage || '', + // size:page.pageSize || '', + // } + }) +} \ No newline at end of file diff --git a/src/api/desk/notice.js b/src/api/desk/notice.js new file mode 100644 index 0000000..708da65 --- /dev/null +++ b/src/api/desk/notice.js @@ -0,0 +1,59 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-desk/notice/list', + method: 'get', + params: { + ...params, + current, + size, + }, + cryptoToken: false, + cryptoData: false, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-desk/notice/remove', + method: 'post', + params: { + ids, + }, + cryptoToken: false, + cryptoData: false, + }); +}; + +export const add = row => { + return request({ + url: '/blade-desk/notice/submit', + method: 'post', + data: row, + cryptoToken: false, + cryptoData: false, + }); +}; + +export const update = row => { + return request({ + url: '/blade-desk/notice/submit', + method: 'post', + data: row, + cryptoToken: false, + cryptoData: false, + }); +}; + +export const getNotice = id => { + return request({ + url: '/blade-desk/notice/detail', + method: 'get', + params: { + id, + }, + cryptoToken: false, + cryptoData: false, + }); +}; diff --git a/src/api/finance/account.js b/src/api/finance/account.js new file mode 100644 index 0000000..2bb18d7 --- /dev/null +++ b/src/api/finance/account.js @@ -0,0 +1,13 @@ +import request from '@/axios'; + +export const getList = (page, params) => { + return request({ + url: '/sf/operationSite/findSiteAmountPage', + method: 'get', + params: { + ...params, + current:page.currentPage, + size:page.pageSize, + } + }) +} diff --git a/src/api/finance/settlement.js b/src/api/finance/settlement.js new file mode 100644 index 0000000..b1ab289 --- /dev/null +++ b/src/api/finance/settlement.js @@ -0,0 +1,23 @@ +import request from '@/axios'; + +export const getList = (page, params) => { + return request({ + url: '/sf/operationOrderSettle/page', + method: 'get', + params: { + ...params, + current:page.currentPage, + size:page.pageSize, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/sf/operationOrderSettle/detail', + method: 'get', + params: { + id + } + }) +} \ No newline at end of file diff --git a/src/api/flow/flow.js b/src/api/flow/flow.js new file mode 100644 index 0000000..24f8fd1 --- /dev/null +++ b/src/api/flow/flow.js @@ -0,0 +1,122 @@ +import request from '@/axios'; + +export const modelList = (current, size, params) => { + return request({ + url: '/blade-flow/model/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const managerList = (current, size, params) => { + return request({ + url: '/blade-flow/manager/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const followList = (current, size, params) => { + return request({ + url: '/blade-flow/follow/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const removeModel = ids => { + return request({ + url: '/blade-flow/model/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const deployModel = params => { + return request({ + url: '/blade-flow/model/deploy', + method: 'post', + params, + }); +}; + +export const changeState = params => { + return request({ + url: '/blade-flow/manager/change-state', + method: 'post', + params, + }); +}; + +export const deployUpload = (category, tenantIds, files) => { + const formData = new FormData(); + formData.append('category', category); + formData.append('tenantIds', tenantIds); + files.forEach(file => { + formData.append('files', file); + }); + return request({ + headers: { + 'Content-Type': 'multipart/form-data', + }, + url: '/blade-flow/manager/deploy-upload', + method: 'post', + data: formData, + }); +}; + +export const deleteDeployment = deploymentIds => { + return request({ + url: '/blade-flow/manager/delete-deployment', + method: 'post', + params: { + deploymentIds, + }, + }); +}; + +export const deleteProcessInstance = params => { + return request({ + url: '/blade-flow/follow/delete-process-instance', + method: 'post', + params, + }); +}; + +export const submitModel = data => { + return request({ + url: '/blade-flow/model/submit', + method: 'post', + data, + }); +}; + +export const detail = params => { + return request({ + url: '/blade-flow/model/detail', + method: 'get', + params, + }); +}; + +export const modelView = params => { + return request({ + url: '/blade-flow/process/model-view', + method: 'get', + params, + }); +}; diff --git a/src/api/job/jobinfo.js b/src/api/job/jobinfo.js new file mode 100644 index 0000000..bf6baf8 --- /dev/null +++ b/src/api/job/jobinfo.js @@ -0,0 +1,78 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-job/job-info/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getDetail = id => { + return request({ + url: '/blade-job/job-info/detail', + method: 'get', + params: { + id, + }, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-job/job-info/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const add = row => { + return request({ + url: '/blade-job/job-info/submit', + method: 'post', + data: row, + }); +}; + +export const update = row => { + return request({ + url: '/blade-job/job-info/submit', + method: 'post', + data: row, + }); +}; + +export const change = row => { + return request({ + url: '/blade-job/job-info/change', + method: 'post', + params: { + id: row.id, + enable: row.enable, + }, + }); +}; + +export const run = row => { + return request({ + url: '/blade-job/job-info/run', + method: 'post', + params: { + id: row.id, + }, + }); +}; + +export const sync = row => { + return request({ + url: '/blade-job/job-info/sync', + method: 'post', + data: row, + }); +}; diff --git a/src/api/job/jobserver.js b/src/api/job/jobserver.js new file mode 100644 index 0000000..8ac8d9f --- /dev/null +++ b/src/api/job/jobserver.js @@ -0,0 +1,57 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-job/job-server/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getDetail = id => { + return request({ + url: '/blade-job/job-server/detail', + method: 'get', + params: { + id, + }, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-job/job-server/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const add = row => { + return request({ + url: '/blade-job/job-server/submit', + method: 'post', + data: row, + }); +}; + +export const update = row => { + return request({ + url: '/blade-job/job-server/submit', + method: 'post', + data: row, + }); +}; + +export const sync = row => { + return request({ + url: '/blade-job/job-server/sync', + method: 'post', + data: row, + }); +}; diff --git a/src/api/logs.js b/src/api/logs.js new file mode 100644 index 0000000..9368365 --- /dev/null +++ b/src/api/logs.js @@ -0,0 +1,62 @@ +import request from '@/axios'; + +export const getUsualList = (current, size) => { + return request({ + url: '/blade-log/usual/list', + method: 'get', + params: { + current, + size, + }, + }); +}; + +export const getApiList = (current, size) => { + return request({ + url: '/blade-log/api/list', + method: 'get', + params: { + current, + size, + }, + }); +}; + +export const getErrorList = (current, size) => { + return request({ + url: '/blade-log/error/list', + method: 'get', + params: { + current, + size, + }, + }); +}; + +export const getUsualLogs = id => { + return request({ + url: '/blade-log/usual/detail', + method: 'get', + params: { + id, + }, + }); +}; +export const getApiLogs = id => { + return request({ + url: '/blade-log/api/detail', + method: 'get', + params: { + id, + }, + }); +}; +export const getErrorLogs = id => { + return request({ + url: '/blade-log/error/detail', + method: 'get', + params: { + id, + }, + }); +}; diff --git a/src/api/material/material.js b/src/api/material/material.js new file mode 100644 index 0000000..97aff1c --- /dev/null +++ b/src/api/material/material.js @@ -0,0 +1,60 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/wl/material/list', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/wl/material/detail', + method: 'get', + params: { + id + } + }) +} + +export const remove = (ids) => { + return request({ + url: '/wl/material/remove', + method: 'post', + params: { + ids, + } + }) +} + +export const setStatus = (ids,status) => { + return request({ + url: '/wl/material/setStatus', + method: 'post', + params: { + ids,status + } + }) +} + +export const add = (row) => { + return request({ + url: '/wl/material/submit', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/wl/material/submit', + method: 'post', + data: row + }) +} + diff --git a/src/api/material/materialEngineer.js b/src/api/material/materialEngineer.js new file mode 100644 index 0000000..b7d8d27 --- /dev/null +++ b/src/api/material/materialEngineer.js @@ -0,0 +1,50 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/wl/materialEngineer/list', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/wl/materialEngineer/detail', + method: 'get', + params: { + id + } + }) +} + +export const remove = (ids) => { + return request({ + url: '/wl/materialEngineer/remove', + method: 'post', + params: { + ids, + } + }) +} + +export const add = (row) => { + return request({ + url: '/wl/materialEngineer/submit', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/wl/materialEngineer/submit', + method: 'post', + data: row + }) +} + diff --git a/src/api/material/materialEngineerOutbound.js b/src/api/material/materialEngineerOutbound.js new file mode 100644 index 0000000..725cfe8 --- /dev/null +++ b/src/api/material/materialEngineerOutbound.js @@ -0,0 +1,50 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/wl/materialEngineerOutbound/list', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/wl/materialEngineerOutbound/detail', + method: 'get', + params: { + id + } + }) +} + +export const remove = (ids) => { + return request({ + url: '/wl/materialEngineerOutbound/remove', + method: 'post', + params: { + ids, + } + }) +} + +export const add = (row) => { + return request({ + url: '/wl/materialEngineerOutbound/submit', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/wl/materialEngineerOutbound/submit', + method: 'post', + data: row + }) +} + diff --git a/src/api/material/materialOperation.js b/src/api/material/materialOperation.js new file mode 100644 index 0000000..68b2f55 --- /dev/null +++ b/src/api/material/materialOperation.js @@ -0,0 +1,50 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/wl/materialOperation/list', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/wl/materialOperation/detail', + method: 'get', + params: { + id + } + }) +} + +export const remove = (ids) => { + return request({ + url: '/wl/materialOperation/remove', + method: 'post', + params: { + ids, + } + }) +} + +export const add = (row) => { + return request({ + url: '/wl/materialOperation/submit', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/wl/materialOperation/submit', + method: 'post', + data: row + }) +} + diff --git a/src/api/material/materialOperationOutbound.js b/src/api/material/materialOperationOutbound.js new file mode 100644 index 0000000..3402b09 --- /dev/null +++ b/src/api/material/materialOperationOutbound.js @@ -0,0 +1,50 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/wl/materialOperationOutbound/list', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/wl/materialOperationOutbound/detail', + method: 'get', + params: { + id + } + }) +} + +export const remove = (ids) => { + return request({ + url: '/wl/materialOperationOutbound/remove', + method: 'post', + params: { + ids, + } + }) +} + +export const add = (row) => { + return request({ + url: '/wl/materialOperationOutbound/submit', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/wl/materialOperationOutbound/submit', + method: 'post', + data: row + }) +} + diff --git a/src/api/material/materialOutbound.js b/src/api/material/materialOutbound.js new file mode 100644 index 0000000..11c19c1 --- /dev/null +++ b/src/api/material/materialOutbound.js @@ -0,0 +1,50 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/wl/materialOutbound/list', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/wl/materialOutbound/detail', + method: 'get', + params: { + id + } + }) +} + +export const remove = (ids) => { + return request({ + url: '/wl/materialOutbound/remove', + method: 'post', + params: { + ids, + } + }) +} + +export const add = (row) => { + return request({ + url: '/wl/materialOutbound/submit', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/wl/materialOutbound/submit', + method: 'post', + data: row + }) +} + diff --git a/src/api/nh/alarmCode.js b/src/api/nh/alarmCode.js new file mode 100644 index 0000000..2219fb6 --- /dev/null +++ b/src/api/nh/alarmCode.js @@ -0,0 +1,50 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/nh/alarmCode/list', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/nh/alarmCode/detail', + method: 'get', + params: { + id + } + }) +} + +export const remove = (ids) => { + return request({ + url: '/nh/alarmCode/remove', + method: 'post', + params: { + ids, + } + }) +} + +export const add = (row) => { + return request({ + url: '/nh/alarmCode/submit', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/nh/alarmCode/submit', + method: 'post', + data: row + }) +} + diff --git a/src/api/nh/alarmInfo.js b/src/api/nh/alarmInfo.js new file mode 100644 index 0000000..fc95cf0 --- /dev/null +++ b/src/api/nh/alarmInfo.js @@ -0,0 +1,89 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/nh/alarmInfo/list', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/nh/alarmInfo/detail', + method: 'get', + params: { + id + } + }) +} + +export const remove = (ids) => { + return request({ + url: '/nh/alarmInfo/remove', + method: 'post', + params: { + ids, + } + }) +} + +export const batchApplyError = (ids) => { + return request({ + url: '/nh/alarmInfo/batchApplyError', + method: 'post', + params: { + ids, + } + }) +} + +export const batchClose = (ids) => { + return request({ + url: '/nh/alarmInfo/batchClose', + method: 'post', + params: { + ids, + } + }) +} + +export const batchUnClose = (ids) => { + return request({ + url: '/nh/alarmInfo/batchUnClose', + method: 'post', + params: { + ids, + } + }) +} + +export const add = (row) => { + return request({ + url: '/nh/alarmInfo/submit', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/nh/alarmInfo/submit', + method: 'post', + data: row + }) +} + +export const turnMaintenance = (ids) => { + return request({ + url: '/nh/alarmInfo/turnMaintenance', + method: 'post', + params: { + id:ids, + } + }) +} \ No newline at end of file diff --git a/src/api/nh/device.js b/src/api/nh/device.js new file mode 100644 index 0000000..a374399 --- /dev/null +++ b/src/api/nh/device.js @@ -0,0 +1,61 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/nh/device/list', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + +export const getInverterGraph = (sn,time) => { + return request({ + url: '/nh/device/getInverterGraph', + method: 'get', + params: { + sn, + time + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/nh/device/detail', + method: 'get', + params: { + id + } + }) +} + +export const remove = (ids) => { + return request({ + url: '/nh/device/remove', + method: 'post', + params: { + ids, + } + }) +} + +export const add = (row) => { + return request({ + url: '/nh/device/submit', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/nh/device/submit', + method: 'post', + data: row + }) +} + diff --git a/src/api/nh/inefficientSetting.js b/src/api/nh/inefficientSetting.js new file mode 100644 index 0000000..562e01b --- /dev/null +++ b/src/api/nh/inefficientSetting.js @@ -0,0 +1,50 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/nh/inefficientSetting/list', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/nh/inefficientSetting/detail', + method: 'get', + params: { + id + } + }) +} + +export const remove = (ids) => { + return request({ + url: '/nh/inefficientSetting/remove', + method: 'post', + params: { + ids, + } + }) +} + +export const add = (row) => { + return request({ + url: '/nh/inefficientSetting/submit', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/nh/inefficientSetting/submit', + method: 'post', + data: row + }) +} + diff --git a/src/api/nh/inverterData.js b/src/api/nh/inverterData.js new file mode 100644 index 0000000..e9cc313 --- /dev/null +++ b/src/api/nh/inverterData.js @@ -0,0 +1,50 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/nh/inverterData/list', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/nh/inverterData/detail', + method: 'get', + params: { + id + } + }) +} + +export const remove = (ids) => { + return request({ + url: '/nh/inverterData/remove', + method: 'post', + params: { + ids, + } + }) +} + +export const add = (row) => { + return request({ + url: '/nh/inverterData/submit', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/nh/inverterData/submit', + method: 'post', + data: row + }) +} + diff --git a/src/api/nh/monitorEntryDailyStat.js b/src/api/nh/monitorEntryDailyStat.js new file mode 100644 index 0000000..560e202 --- /dev/null +++ b/src/api/nh/monitorEntryDailyStat.js @@ -0,0 +1,50 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/nh/monitorEntryDailyStat/list', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/nh/monitorEntryDailyStat/detail', + method: 'get', + params: { + id + } + }) +} + +export const remove = (ids) => { + return request({ + url: '/nh/monitorEntryDailyStat/remove', + method: 'post', + params: { + ids, + } + }) +} + +export const add = (row) => { + return request({ + url: '/nh/monitorEntryDailyStat/submit', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/nh/monitorEntryDailyStat/submit', + method: 'post', + data: row + }) +} + diff --git a/src/api/nh/monitorEntryMonthStat.js b/src/api/nh/monitorEntryMonthStat.js new file mode 100644 index 0000000..1e2e129 --- /dev/null +++ b/src/api/nh/monitorEntryMonthStat.js @@ -0,0 +1,50 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/nh/monitorEntryMonthStat/list', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/nh/monitorEntryMonthStat/detail', + method: 'get', + params: { + id + } + }) +} + +export const remove = (ids) => { + return request({ + url: '/nh/monitorEntryMonthStat/remove', + method: 'post', + params: { + ids, + } + }) +} + +export const add = (row) => { + return request({ + url: '/nh/monitorEntryMonthStat/submit', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/nh/monitorEntryMonthStat/submit', + method: 'post', + data: row + }) +} + diff --git a/src/api/nh/monitorEntryStat.js b/src/api/nh/monitorEntryStat.js new file mode 100644 index 0000000..acf6c05 --- /dev/null +++ b/src/api/nh/monitorEntryStat.js @@ -0,0 +1,50 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/nh/monitorEntryStat/list', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/nh/monitorEntryStat/detail', + method: 'get', + params: { + id + } + }) +} + +export const remove = (ids) => { + return request({ + url: '/nh/monitorEntryStat/remove', + method: 'post', + params: { + ids, + } + }) +} + +export const add = (row) => { + return request({ + url: '/nh/monitorEntryStat/submit', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/nh/monitorEntryStat/submit', + method: 'post', + data: row + }) +} + diff --git a/src/api/nh/monitorEntryYearStat.js b/src/api/nh/monitorEntryYearStat.js new file mode 100644 index 0000000..7b343de --- /dev/null +++ b/src/api/nh/monitorEntryYearStat.js @@ -0,0 +1,50 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/nh/monitorEntryYearStat/list', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/nh/monitorEntryYearStat/detail', + method: 'get', + params: { + id + } + }) +} + +export const remove = (ids) => { + return request({ + url: '/nh/monitorEntryYearStat/remove', + method: 'post', + params: { + ids, + } + }) +} + +export const add = (row) => { + return request({ + url: '/nh/monitorEntryYearStat/submit', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/nh/monitorEntryYearStat/submit', + method: 'post', + data: row + }) +} + diff --git a/src/api/nh/monitorInverterDailyStat.js b/src/api/nh/monitorInverterDailyStat.js new file mode 100644 index 0000000..105a8ad --- /dev/null +++ b/src/api/nh/monitorInverterDailyStat.js @@ -0,0 +1,50 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/nh/monitorInverterDailyStat/list', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/nh/monitorInverterDailyStat/detail', + method: 'get', + params: { + id + } + }) +} + +export const remove = (ids) => { + return request({ + url: '/nh/monitorInverterDailyStat/remove', + method: 'post', + params: { + ids, + } + }) +} + +export const add = (row) => { + return request({ + url: '/nh/monitorInverterDailyStat/submit', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/nh/monitorInverterDailyStat/submit', + method: 'post', + data: row + }) +} + diff --git a/src/api/nh/monitorInverterStat.js b/src/api/nh/monitorInverterStat.js new file mode 100644 index 0000000..f87da1e --- /dev/null +++ b/src/api/nh/monitorInverterStat.js @@ -0,0 +1,50 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/nh/monitorInverterStat/list', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/nh/monitorInverterStat/detail', + method: 'get', + params: { + id + } + }) +} + +export const remove = (ids) => { + return request({ + url: '/nh/monitorInverterStat/remove', + method: 'post', + params: { + ids, + } + }) +} + +export const add = (row) => { + return request({ + url: '/nh/monitorInverterStat/submit', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/nh/monitorInverterStat/submit', + method: 'post', + data: row + }) +} + diff --git a/src/api/nh/nhcommon.js b/src/api/nh/nhcommon.js new file mode 100644 index 0000000..9561bc1 --- /dev/null +++ b/src/api/nh/nhcommon.js @@ -0,0 +1,25 @@ +import request from '@/axios'; + +export const queryWeather = (stationId,area) => { + return request({ + url: '/nh/home/weather', + method: 'get', + params: { + "stationId":stationId, + "area":area + } + }) +} + +export const queryWeatherHistory = (stationId,area,day) => { + return request({ + url: '/nh/home/weatherHistory', + method: 'get', + params: { + "stationId":stationId, + "area":area, + "day":day + } + }) +} + diff --git a/src/api/nh/powerStation.js b/src/api/nh/powerStation.js new file mode 100644 index 0000000..799ca4f --- /dev/null +++ b/src/api/nh/powerStation.js @@ -0,0 +1,154 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/nh/powerStation/page', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + +export const getLazyTree = (parentId,parentName,level) => { + return request({ + url: '/nh/powerStation/lazy-tree', + method: 'get', + params: { + parentId, + parentName, + level, + } + }) +} + +export const getTotalTree = () => { + return request({ + url: '/nh/powerStation/total-tree', + method: 'get', + params: { + } + }) +} + +export const queryList = (params) => { + return request({ + url: '/nh/powerStation/list', + method: 'get', + params: { + ...params + } + }) +} + +export const mapSearch = (keyword) => { + return request({ + url: '/nh/powerStation/mapSearch', + method: 'get', + params: { + keyword + } + }) +} + +export const staticsHomeOverview = () => { + return request({ + url: '/nh/powerStation/staticsHomeOverview', + method: 'get' + }) +} + +export const getStatusCount = () => { + return request({ + url: '/nh/powerStation/staticsStatus', + method: 'get' + }) +} + +export const getMapDistribute = () => { + return request({ + url: '/nh/powerStation/getMapDistribute', + method: 'get' + }) +} + +export const getDetail = (id) => { + return request({ + url: '/nh/powerStation/detail', + method: 'get', + params: { + id + } + }) +} + +export const powerGenerationTrends = (id,type,time) => { + return request({ + url: '/nh/powerStation/powerGenerationTrends', + method: 'get', + params: { + 'entryId':id, + "type":type, + "time":time + } + }) +} + +export const projectCompanyGenerationData = (type) => { + return request({ + url: '/nh/powerStation/projectCompanyGenerationData', + method: 'get', + params: { + "type":type + } + }) +} + + +export const powerGenerationTrendsHome = (type) => { + return request({ + url: '/nh/powerStation/powerGenerationTrendsHome', + method: 'get', + params: { + "type":type + } + }) +} + +export const remove = (ids) => { + return request({ + url: '/nh/powerStation/remove', + method: 'post', + params: { + ids, + } + }) +} + +export const add = (row) => { + return request({ + url: '/nh/powerStation/submit', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/nh/powerStation/submit', + method: 'post', + data: row + }) +} + +//绑定服务商 +export const bindingSite = (row) => { + return request({ + url: '/nh/powerStation/bindingSite', + method: 'post', + params: row + }) +} + diff --git a/src/api/nh/powerStationInefficient.js b/src/api/nh/powerStationInefficient.js new file mode 100644 index 0000000..2a4c735 --- /dev/null +++ b/src/api/nh/powerStationInefficient.js @@ -0,0 +1,60 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/nh/powerStationInefficient/list', + method: 'get', + params: { + ...params, + current, + size, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/nh/powerStationInefficient/detail', + method: 'get', + params: { + id + } + }) +} + +export const remove = (ids) => { + return request({ + url: '/nh/powerStationInefficient/remove', + method: 'post', + params: { + ids, + } + }) +} + +export const confirmInefficient = (ids,isConfirm,remarks) => { + return request({ + url: '/nh/powerStationInefficient/confirmInefficient', + method: 'post', + params: { + ids,isConfirm,remarks + } + }) +} + +export const add = (row) => { + return request({ + url: '/nh/powerStationInefficient/submit', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/nh/powerStationInefficient/submit', + method: 'post', + data: row + }) +} + diff --git a/src/api/order/order.js b/src/api/order/order.js new file mode 100644 index 0000000..cc798c9 --- /dev/null +++ b/src/api/order/order.js @@ -0,0 +1,99 @@ +import request from '@/axios'; + +export const getList = (page, params) => { + return request({ + url: '/sf/operationOrder/page', + method: 'get', + params: { + ...params, + current:page.currentPage, + size:page.pageSize, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/sf/operationOrder/detail', + method: 'get', + params: { + id + } + }) +} + +export const add = (row) => { + return request({ + url: '/sf/operationOrder/save', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/sf/operationOrder/update', + method: 'post', + data: row + }) +} + +export const remove = (params) => { + return request({ + url: '/sf/operationOrder/remove', + method: 'post', + params:params + }) +} + +export const dispatch = (params) => { + return request({ + url: '/sf/operationOrderDispatch/dispatchOrderSite', + method: 'post', + params:params + }) +} + +//服务商端******************************************************** +export const siteDispatch = (params) => { + return request({ + url: '/sf/operationOrderSiteDispatch/siteDispatchOrder', + method: 'post', + params:params + }) +} + +export const receiveOrder = (params) => { + return request({ + url: '/sf/operationOrderDispatch/receiveOrder', + method: 'post', + params:params + }) +} + +/** 过程反馈 **/ +export const listFeedback = (params) => { + return request({ + url: '/sf/operationOrderFeedback/listFeedback', + method: 'get', + params:params + }) +} + +/** 回访 **/ +export const addOrderCllBack = (params) => { + return request({ + url: '/sf/operationOrderCallback/addOrderCllBack', + method: 'post', + data:params + }) +} + +/** 结算 **/ +export const settlement = (params) => { + return request({ + url: '/sf/operationOrderSettle/save', + method: 'post', + data:params + }) +} diff --git a/src/api/report/report.js b/src/api/report/report.js new file mode 100644 index 0000000..3ea1ced --- /dev/null +++ b/src/api/report/report.js @@ -0,0 +1,22 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-report/report/rest/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; +export const remove = ids => { + return request({ + url: '/blade-report/report/rest/remove', + method: 'post', + params: { + ids, + }, + }); +}; diff --git a/src/api/resource/attach.js b/src/api/resource/attach.js new file mode 100644 index 0000000..a5954bf --- /dev/null +++ b/src/api/resource/attach.js @@ -0,0 +1,49 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-resource/attach/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getDetail = id => { + return request({ + url: '/blade-resource/attach/detail', + method: 'get', + params: { + id, + }, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-resource/attach/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const add = row => { + return request({ + url: '/blade-resource/attach/submit', + method: 'post', + data: row, + }); +}; + +export const update = row => { + return request({ + url: '/blade-resource/attach/submit', + method: 'post', + data: row, + }); +}; diff --git a/src/api/resource/oss.js b/src/api/resource/oss.js new file mode 100644 index 0000000..c126296 --- /dev/null +++ b/src/api/resource/oss.js @@ -0,0 +1,59 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-resource/oss/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getDetail = id => { + return request({ + url: '/blade-resource/oss/detail', + method: 'get', + params: { + id, + }, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-resource/oss/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const add = row => { + return request({ + url: '/blade-resource/oss/submit', + method: 'post', + data: row, + }); +}; + +export const update = row => { + return request({ + url: '/blade-resource/oss/submit', + method: 'post', + data: row, + }); +}; + +export const enable = id => { + return request({ + url: '/blade-resource/oss/enable', + method: 'post', + params: { + id, + }, + }); +}; diff --git a/src/api/resource/sms.js b/src/api/resource/sms.js new file mode 100644 index 0000000..2433398 --- /dev/null +++ b/src/api/resource/sms.js @@ -0,0 +1,71 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-resource/sms/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getDetail = id => { + return request({ + url: '/blade-resource/sms/detail', + method: 'get', + params: { + id, + }, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-resource/sms/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const add = row => { + return request({ + url: '/blade-resource/sms/submit', + method: 'post', + data: row, + }); +}; + +export const update = row => { + return request({ + url: '/blade-resource/sms/submit', + method: 'post', + data: row, + }); +}; + +export const enable = id => { + return request({ + url: '/blade-resource/sms/enable', + method: 'post', + params: { + id, + }, + }); +}; + +export const send = (code, phones, params) => { + return request({ + url: '/blade-resource/sms/endpoint/send-message', + method: 'post', + params: { + code, + phones, + params, + }, + }); +}; diff --git a/src/api/system/client.js b/src/api/system/client.js new file mode 100644 index 0000000..0912288 --- /dev/null +++ b/src/api/system/client.js @@ -0,0 +1,49 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-system/client/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getDetail = id => { + return request({ + url: '/blade-system/client/detail', + method: 'get', + params: { + id, + }, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-system/client/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const add = row => { + return request({ + url: '/blade-system/client/submit', + method: 'post', + data: row, + }); +}; + +export const update = row => { + return request({ + url: '/blade-system/client/submit', + method: 'post', + data: row, + }); +}; diff --git a/src/api/system/dept.js b/src/api/system/dept.js new file mode 100644 index 0000000..ba96954 --- /dev/null +++ b/src/api/system/dept.js @@ -0,0 +1,80 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-system/dept/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getLazyList = (parentId, params) => { + return request({ + url: '/blade-system/dept/lazy-list', + method: 'get', + params: { + ...params, + parentId, + }, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-system/dept/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const add = row => { + return request({ + url: '/blade-system/dept/submit', + method: 'post', + data: row, + }); +}; + +export const update = row => { + return request({ + url: '/blade-system/dept/submit', + method: 'post', + data: row, + }); +}; + +export const getDept = id => { + return request({ + url: '/blade-system/dept/detail', + method: 'get', + params: { + id, + }, + }); +}; + +export const getDeptTree = tenantId => { + return request({ + url: '/blade-system/dept/tree', + method: 'get', + params: { + tenantId, + }, + }); +}; + +export const getDeptLazyTree = parentId => { + return request({ + url: '/blade-system/dept/lazy-tree', + method: 'get', + params: { + parentId, + }, + }); +}; diff --git a/src/api/system/dict.js b/src/api/system/dict.js new file mode 100644 index 0000000..51daacc --- /dev/null +++ b/src/api/system/dict.js @@ -0,0 +1,88 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-system/dict/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getParentList = (current, size, params) => { + return request({ + url: '/blade-system/dict/parent-list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getChildList = (current, size, parentId, params) => { + return request({ + url: '/blade-system/dict/child-list', + method: 'get', + params: { + ...params, + current, + size, + parentId: parentId, + }, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-system/dict/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const add = row => { + return request({ + url: '/blade-system/dict/submit', + method: 'post', + data: row, + }); +}; + +export const update = row => { + return request({ + url: '/blade-system/dict/submit', + method: 'post', + data: row, + }); +}; + +export const getDict = id => { + return request({ + url: '/blade-system/dict/detail', + method: 'get', + params: { + id, + }, + }); +}; +export const getDictTree = () => { + return request({ + url: '/blade-system/dict/tree?code=DICT', + method: 'get', + }); +}; + +export const getDictionary = params => { + return request({ + url: '/blade-system/dict/dictionary', + method: 'get', + params, + }); +}; diff --git a/src/api/system/dictbiz.js b/src/api/system/dictbiz.js new file mode 100644 index 0000000..6c7ee7e --- /dev/null +++ b/src/api/system/dictbiz.js @@ -0,0 +1,88 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-system/dict-biz/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getParentList = (current, size, params) => { + return request({ + url: '/blade-system/dict-biz/parent-list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getChildList = (current, size, parentId, params) => { + return request({ + url: '/blade-system/dict-biz/child-list', + method: 'get', + params: { + ...params, + current, + size, + parentId: parentId, + }, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-system/dict-biz/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const add = row => { + return request({ + url: '/blade-system/dict-biz/submit', + method: 'post', + data: row, + }); +}; + +export const update = row => { + return request({ + url: '/blade-system/dict-biz/submit', + method: 'post', + data: row, + }); +}; + +export const getDict = id => { + return request({ + url: '/blade-system/dict-biz/detail', + method: 'get', + params: { + id, + }, + }); +}; +export const getDictTree = () => { + return request({ + url: '/blade-system/dict-biz/tree?code=DICT', + method: 'get', + }); +}; + +export const getDictionary = params => { + return request({ + url: '/blade-system/dict-biz/dictionary', + method: 'get', + params, + }); +}; diff --git a/src/api/system/menu.js b/src/api/system/menu.js new file mode 100644 index 0000000..7050c95 --- /dev/null +++ b/src/api/system/menu.js @@ -0,0 +1,108 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-system/menu/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getLazyList = (parentId, params) => { + return request({ + url: '/blade-system/menu/lazy-list', + method: 'get', + params: { + ...params, + parentId, + }, + }); +}; + +export const getLazyMenuList = (parentId, params) => { + return request({ + url: '/blade-system/menu/lazy-menu-list', + method: 'get', + params: { + ...params, + parentId, + }, + }); +}; + +export const getMenuList = (current, size, params) => { + return request({ + url: '/blade-system/menu/menu-list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getMenuTree = tenantId => { + return request({ + url: '/blade-system/menu/tree', + method: 'get', + params: { + tenantId, + }, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-system/menu/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const add = row => { + return request({ + url: '/blade-system/menu/submit', + method: 'post', + data: row, + }); +}; + +export const update = row => { + return request({ + url: '/blade-system/menu/submit', + method: 'post', + data: row, + }); +}; + +export const getMenu = id => { + return request({ + url: '/blade-system/menu/detail', + method: 'get', + params: { + id, + }, + }); +}; + +export const getTopMenu = () => + request({ + url: '/blade-system/menu/top-menu', + method: 'get', + }); + +export const getRoutes = topMenuId => + request({ + url: '/blade-system/menu/routes', + method: 'get', + params: { + topMenuId, + }, + }); diff --git a/src/api/system/param.js b/src/api/system/param.js new file mode 100644 index 0000000..be23977 --- /dev/null +++ b/src/api/system/param.js @@ -0,0 +1,49 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-system/param/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getDetail = id => { + return request({ + url: '/blade-system/param/detail', + method: 'get', + params: { + id, + }, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-system/param/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const add = row => { + return request({ + url: '/blade-system/param/submit', + method: 'post', + data: row, + }); +}; + +export const update = row => { + return request({ + url: '/blade-system/param/submit', + method: 'post', + data: row, + }); +}; diff --git a/src/api/system/post.js b/src/api/system/post.js new file mode 100644 index 0000000..01de371 --- /dev/null +++ b/src/api/system/post.js @@ -0,0 +1,59 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-system/post/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getPostList = tenantId => { + return request({ + url: '/blade-system/post/select', + method: 'get', + params: { + tenantId, + }, + }); +}; + +export const getDetail = id => { + return request({ + url: '/blade-system/post/detail', + method: 'get', + params: { + id, + }, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-system/post/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const add = row => { + return request({ + url: '/blade-system/post/submit', + method: 'post', + data: row, + }); +}; + +export const update = row => { + return request({ + url: '/blade-system/post/submit', + method: 'post', + data: row, + }); +}; diff --git a/src/api/system/role.js b/src/api/system/role.js new file mode 100644 index 0000000..ef57e36 --- /dev/null +++ b/src/api/system/role.js @@ -0,0 +1,88 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-system/role/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; +export const grantTree = () => { + return request({ + url: '/blade-system/menu/grant-tree', + method: 'get', + }); +}; + +export const grant = (roleIds, menuIds, dataScopeIds, apiScopeIds) => { + return request({ + url: '/blade-system/role/grant', + method: 'post', + data: { + roleIds, + menuIds, + dataScopeIds, + apiScopeIds, + }, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-system/role/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const add = row => { + return request({ + url: '/blade-system/role/submit', + method: 'post', + data: row, + }); +}; + +export const update = row => { + return request({ + url: '/blade-system/role/submit', + method: 'post', + data: row, + }); +}; + +export const getRole = roleIds => { + return request({ + url: '/blade-system/menu/role-tree-keys', + method: 'get', + params: { + roleIds, + }, + }); +}; + +export const getRoleTree = tenantId => { + return request({ + url: '/blade-system/role/tree', + method: 'get', + params: { + tenantId, + }, + }); +}; + +export const getRoleTreeById = roleId => { + return request({ + url: '/blade-system/role/tree-by-id', + method: 'get', + params: { + roleId, + }, + }); +}; diff --git a/src/api/system/scope.js b/src/api/system/scope.js new file mode 100644 index 0000000..efc098f --- /dev/null +++ b/src/api/system/scope.js @@ -0,0 +1,97 @@ +import request from '@/axios'; + +export const getListDataScope = (current, size, params) => { + return request({ + url: '/blade-system/data-scope/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const removeDataScope = ids => { + return request({ + url: '/blade-system/data-scope/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const addDataScope = row => { + return request({ + url: '/blade-system/data-scope/submit', + method: 'post', + data: row, + }); +}; + +export const updateDataScope = row => { + return request({ + url: '/blade-system/data-scope/submit', + method: 'post', + data: row, + }); +}; + +export const getMenuDataScope = id => { + return request({ + url: '/blade-system/data-scope/detail', + method: 'get', + params: { + id, + }, + }); +}; + +export const getListApiScope = (current, size, params) => { + return request({ + url: '/blade-system/api-scope/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const removeApiScope = ids => { + return request({ + url: '/blade-system/api-scope/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const addApiScope = row => { + return request({ + url: '/blade-system/api-scope/submit', + method: 'post', + data: row, + }); +}; + +export const updateApiScope = row => { + return request({ + url: '/blade-system/api-scope/submit', + method: 'post', + data: row, + }); +}; + +export const getMenuApiScope = id => { + return request({ + url: '/blade-system/api-scope/detail', + method: 'get', + params: { + id, + }, + }); +}; diff --git a/src/api/system/tenant.js b/src/api/system/tenant.js new file mode 100644 index 0000000..e02d5ec --- /dev/null +++ b/src/api/system/tenant.js @@ -0,0 +1,102 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-system/tenant/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getDetail = id => { + return request({ + url: '/blade-system/tenant/detail', + method: 'get', + params: { + id, + }, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-system/tenant/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const add = row => { + return request({ + url: '/blade-system/tenant/submit', + method: 'post', + data: row, + }); +}; + +export const update = row => { + return request({ + url: '/blade-system/tenant/submit', + method: 'post', + data: row, + }); +}; + +export const setting = (ids, form) => { + return request({ + url: '/blade-system/tenant/setting', + method: 'post', + params: { + ...form, + ids, + }, + }); +}; + +export const datasource = (tenantId, datasourceId) => { + return request({ + url: '/blade-system/tenant/datasource', + method: 'post', + params: { + tenantId, + datasourceId, + }, + }); +}; + +export const info = domain => { + return request({ + url: '/blade-system/tenant/info', + method: 'get', + params: { + domain, + }, + }); +}; + +export const packageInfo = tenantId => { + return request({ + url: '/blade-system/tenant/package-detail', + method: 'get', + params: { + tenantId, + }, + }); +}; + +export const packageSetting = (tenantId, packageId) => { + return request({ + url: '/blade-system/tenant/package-setting', + method: 'post', + params: { + tenantId, + packageId, + }, + }); +}; diff --git a/src/api/system/tenantpackage.js b/src/api/system/tenantpackage.js new file mode 100644 index 0000000..cf6fb1a --- /dev/null +++ b/src/api/system/tenantpackage.js @@ -0,0 +1,49 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-system/tenant-package/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getDetail = id => { + return request({ + url: '/blade-system/tenant-package/detail', + method: 'get', + params: { + id, + }, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-system/tenant-package/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const add = row => { + return request({ + url: '/blade-system/tenant-package/submit', + method: 'post', + data: row, + }); +}; + +export const update = row => { + return request({ + url: '/blade-system/tenant-package/submit', + method: 'post', + data: row, + }); +}; diff --git a/src/api/system/topmenu.js b/src/api/system/topmenu.js new file mode 100644 index 0000000..961fabc --- /dev/null +++ b/src/api/system/topmenu.js @@ -0,0 +1,77 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-system/topmenu/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getDetail = id => { + return request({ + url: '/blade-system/topmenu/detail', + method: 'get', + params: { + id, + }, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-system/topmenu/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const add = row => { + return request({ + url: '/blade-system/topmenu/submit', + method: 'post', + data: row, + }); +}; + +export const update = row => { + return request({ + url: '/blade-system/topmenu/submit', + method: 'post', + data: row, + }); +}; + +export const grantTree = () => { + return request({ + url: '/blade-system/menu/grant-top-tree', + method: 'get', + }); +}; + +export const getTopTree = topMenuIds => { + return request({ + url: '/blade-system/menu/top-tree-keys', + method: 'get', + params: { + topMenuIds, + }, + }); +}; + +export const grant = (topMenuIds, menuIds) => { + return request({ + url: '/blade-system/topmenu/grant', + method: 'post', + data: { + topMenuIds, + menuIds, + }, + }); +}; diff --git a/src/api/system/user.js b/src/api/system/user.js new file mode 100644 index 0000000..a3bac19 --- /dev/null +++ b/src/api/system/user.js @@ -0,0 +1,148 @@ +import request from '@/axios'; + +export const getList = (current, size, params, deptId) => { + return request({ + url: '/blade-system/user/page', + method: 'get', + params: { + ...params, + current, + size, + deptId, + }, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-system/user/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const add = row => { + return request({ + url: '/blade-system/user/submit', + method: 'post', + data: row, + }); +}; + +export const update = row => { + return request({ + url: '/blade-system/user/update', + method: 'post', + data: row, + }); +}; + +export const updatePlatform = (userId, userType, userExt) => { + return request({ + url: '/blade-system/user/update-platform', + method: 'post', + params: { + userId, + userType, + userExt, + }, + }); +}; + +export const getUser = id => { + return request({ + url: '/blade-system/user/detail', + method: 'get', + params: { + id, + }, + }); +}; + +export const getUserPlatform = id => { + return request({ + url: '/blade-system/user/platform-detail', + method: 'get', + params: { + id, + }, + }); +}; + +export const getUserInfo = () => { + return request({ + url: '/blade-system/user/info', + method: 'get', + }); +}; + +export const resetPassword = userIds => { + return request({ + url: '/blade-system/user/reset-password', + method: 'post', + params: { + userIds, + }, + }); +}; + +export const updatePassword = (oldPassword, newPassword, newPassword1) => { + return request({ + url: '/blade-system/user/update-password', + method: 'post', + params: { + oldPassword, + newPassword, + newPassword1, + }, + }); +}; + +export const updateInfo = row => { + return request({ + url: '/blade-system/user/update-info', + method: 'post', + data: row, + }); +}; + +export const grant = (userIds, roleIds) => { + return request({ + url: '/blade-system/user/grant', + method: 'post', + params: { + userIds, + roleIds, + }, + }); +}; + +export const unlock = userIds => { + return request({ + url: '/blade-system/user/unlock', + method: 'post', + params: { + userIds, + }, + }); +}; + +export const editeEmpAuth = params => { + return request({ + url: '/sf/platformEmployee/editeEmpAuth', + method: 'post', + data: params, + }); +}; + +export const empDetail = id => { + return request({ + url: '/sf/platformEmployee/empDetail', + method: 'get', + params: { + userId:id, + }, + }); +}; \ No newline at end of file diff --git a/src/api/systemSet/notice.js b/src/api/systemSet/notice.js new file mode 100644 index 0000000..1f09ece --- /dev/null +++ b/src/api/systemSet/notice.js @@ -0,0 +1,73 @@ +import request from '@/axios'; + +export const getAllList = (params,page) => { + let data = {} + if(page){ + data={ + ...params, + current:page.currentPage, + size:page.pageSize, + } + }else{ + data=params + } + return request({ + url: '/sf/platformAnnouncement/list', + method: 'get', + params: data + }) +} + +export const getList = (page, params) => { + return request({ + url: '/sf/platformAnnouncement/page', + method: 'get', + params: { + ...params, + current:page.currentPage, + size:page.pageSize, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/sf/platformAnnouncement/detail', + method: 'get', + params: { + id + } + }) +} + +export const add = (row) => { + return request({ + url: '/sf/platformAnnouncement/save', + method: 'post', + headers:{ + "Content-Type": "application/x-www-form-urlencoded", + }, + params: row, + }) +} + +export const update = (row) => { + return request({ + url: '/sf/platformAnnouncement/update', + method: 'post', + headers:{ + "Content-Type": "application/x-www-form-urlencoded", + }, + params: row + }) +} + +export const remove = (ids) => { + return request({ + url: '/sf/platformAnnouncement/remove', + method: 'post', + params: { + id:ids, + } + }) +} diff --git a/src/api/systemSet/serverEng.js b/src/api/systemSet/serverEng.js new file mode 100644 index 0000000..72b928d --- /dev/null +++ b/src/api/systemSet/serverEng.js @@ -0,0 +1,81 @@ +import request from '@/axios'; + +export const getAllList = (params,page) => { + let data = {} + if(page){ + data={ + ...params, + current:page.currentPage, + size:page.pageSize, + } + }else{ + data=params + } + return request({ + url: '/sf/operationSiteEmployee/list', + method: 'get', + params: data + }) +} + +export const getList = (page, params) => { + return request({ + url: '/sf/operationSiteEmployee/page', + method: 'get', + params: { + ...params, + current:page.currentPage, + size:page.pageSize, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/sf/operationSiteEmployee/detail', + method: 'get', + params: { + id + } + }) +} + +export const add = (row) => { + return request({ + url: '/sf/operationSiteEmployee/save', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/sf/operationSiteEmployee/update', + method: 'post', + data: row + }) +} + +export const updateStatus = (row) => { + return request({ + url: '/sf/operationSiteEmployee/updateStatus', + method: 'post', + params: { + id: row.id, + status: row.status, + }, + }) +} + +export const remove = (ids) => { + return request({ + url: '/sf/operationSiteEmployee/remove', + method: 'post', + params: { + id:ids, + } + }) +} + + + diff --git a/src/api/systemSet/serverRole.js b/src/api/systemSet/serverRole.js new file mode 100644 index 0000000..ca575f2 --- /dev/null +++ b/src/api/systemSet/serverRole.js @@ -0,0 +1,63 @@ +import request from '@/axios'; + +export const getList = (page, params) => { + return request({ + url: '/sf/operationSiteRole/page', + method: 'get', + params: { + ...params, + current:page.currentPage, + size:page.pageSize, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/sf/operationSiteRole/detail', + method: 'get', + params: { + id + } + }) +} + +export const add = (row) => { + return request({ + url: '/sf/operationSiteRole/save', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/sf/operationSiteRole/update', + method: 'post', + data: row + }) +} + +export const updateStatus = (row) => { + return request({ + url: '/sf/operationSiteRole/updateStatus', + method: 'post', + params: { + id: row.id, + status: row.status, + }, + }) +} + +export const remove = (ids) => { + return request({ + url: '/sf/operationSiteRole/remove', + method: 'post', + params: { + id:ids, + } + }) +} + + + diff --git a/src/api/systemSet/serverUser.js b/src/api/systemSet/serverUser.js new file mode 100644 index 0000000..21a9a10 --- /dev/null +++ b/src/api/systemSet/serverUser.js @@ -0,0 +1,69 @@ +import request from '@/axios'; + +export const getList = (page, params) => { + return request({ + url: '/sf/operationSiteEmployee/page', + method: 'get', + params: { + ...params, + current:page.currentPage, + size:page.pageSize, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/sf/operationSiteEmployee/detail', + method: 'get', + params: { + id + } + }) +} + +export const add = (row) => { + return request({ + url: '/sf/operationSiteEmployee/save', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/sf/operationSiteEmployee/update', + method: 'post', + data: row + }) +} + +export const updateStatus = (row) => { + return request({ + url: '/sf/operationSiteEmployee/updateStatus', + method: 'post', + params: { + id: row.id, + status: row.status, + }, + }) +} + +export const remove = (ids) => { + return request({ + url: '/sf/operationSiteEmployee/remove', + method: 'post', + params: { + id:ids, + } + }) +} + +export const editSiteEmpAuth = (params) => { + return request({ + url: '/sf/operationSiteEmployee/editSiteEmpAuth', + method: 'post', + data: params + }) +} + diff --git a/src/api/systemSet/service.js b/src/api/systemSet/service.js new file mode 100644 index 0000000..d7a1eff --- /dev/null +++ b/src/api/systemSet/service.js @@ -0,0 +1,81 @@ +import request from '@/axios'; + +export const getAllList = (params,page) => { + let data = {} + if(page){ + data={ + ...params, + current:page.currentPage, + size:page.pageSize, + } + }else{ + data=params + } + return request({ + url: '/sf/operationSite/list', + method: 'get', + params: data + }) +} + +export const getList = (page, params) => { + return request({ + url: '/sf/operationSite/page', + method: 'get', + params: { + ...params, + current:page.currentPage, + size:page.pageSize, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/sf/operationSite/detail', + method: 'get', + params: { + id + } + }) +} + +export const add = (row) => { + return request({ + url: '/sf/operationSite/save', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/sf/operationSite/update', + method: 'post', + data: row + }) +} + +export const updateStatus = (row) => { + return request({ + url: '/sf/operationSite/updateStatus', + method: 'post', + params: { + id: row.id, + status: row.status, + }, + }) +} + +export const remove = (ids) => { + return request({ + url: '/sf/operationSite/remove', + method: 'post', + params: { + id:ids, + } + }) +} + + + diff --git a/src/api/systemSet/serviceMeasure.js b/src/api/systemSet/serviceMeasure.js new file mode 100644 index 0000000..53b37f0 --- /dev/null +++ b/src/api/systemSet/serviceMeasure.js @@ -0,0 +1,52 @@ +import request from '@/axios'; + +export const getList = (page, params) => { + return request({ + url: '/sf/operationServiceMeasures/page', + method: 'get', + params: { + ...params, + current:page.currentPage, + size:page.pageSize, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/sf/operationServiceMeasures/detail', + method: 'get', + params: { + id + } + }) +} + +export const add = (row) => { + return request({ + url: '/sf/operationServiceMeasures/save', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/sf/operationServiceMeasures/update', + method: 'post', + data: row + }) +} + +export const remove = (ids) => { + return request({ + url: '/sf/operationServiceMeasures/remove', + method: 'post', + params: { + id:ids, + } + }) +} + + + diff --git a/src/api/systemSet/serviceType.js b/src/api/systemSet/serviceType.js new file mode 100644 index 0000000..a289fcb --- /dev/null +++ b/src/api/systemSet/serviceType.js @@ -0,0 +1,59 @@ +import request from '@/axios'; + +export const getAllList = () => { + return request({ + url: '/sf/operationServiceType/list', + method: 'get', + }) +} + +export const getList = (page, params) => { + return request({ + url: '/sf/operationServiceType/page', + method: 'get', + params: { + ...params, + current:page.currentPage, + size:page.pageSize, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/sf/operationServiceType/detail', + method: 'get', + params: { + id + } + }) +} + +export const add = (row) => { + return request({ + url: '/sf/operationServiceType/save', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/sf/operationServiceType/update', + method: 'post', + data: row + }) +} + +export const remove = (ids) => { + return request({ + url: '/sf/operationServiceType/remove', + method: 'post', + params: { + id:ids, + } + }) +} + + + diff --git a/src/api/systemSet/technicalData.js b/src/api/systemSet/technicalData.js new file mode 100644 index 0000000..f37484d --- /dev/null +++ b/src/api/systemSet/technicalData.js @@ -0,0 +1,67 @@ +import request from '@/axios'; + +export const getAllList = (params,page) => { + let data = {} + if(page){ + data={ + ...params, + current:page.currentPage, + size:page.pageSize, + } + }else{ + data=params + } + return request({ + url: '/sf/operationTechnicalData/list', + method: 'get', + params: data + }) +} + +export const getList = (page, params) => { + return request({ + url: '/sf/operationTechnicalData/page', + method: 'get', + params: { + ...params, + current:page.currentPage, + size:page.pageSize, + } + }) +} + +export const getDetail = (id) => { + return request({ + url: '/sf/operationTechnicalData/detail', + method: 'get', + params: { + id + } + }) +} + +export const add = (row) => { + return request({ + url: '/sf/operationTechnicalData/save', + method: 'post', + data: row + }) +} + +export const update = (row) => { + return request({ + url: '/sf/operationTechnicalData/update', + method: 'post', + data: row + }) +} + +export const remove = (ids) => { + return request({ + url: '/sf/operationTechnicalData/remove', + method: 'post', + params: { + ids:ids, + } + }) +} diff --git a/src/api/tool/code.js b/src/api/tool/code.js new file mode 100644 index 0000000..427864b --- /dev/null +++ b/src/api/tool/code.js @@ -0,0 +1,69 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-develop/code/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const build = ids => { + return request({ + url: '/blade-develop/code/gen-code', + method: 'post', + params: { + ids, + system: 'saber', + }, + }); +}; +export const remove = ids => { + return request({ + url: '/blade-develop/code/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const add = row => { + return request({ + url: '/blade-develop/code/submit', + method: 'post', + data: row, + }); +}; + +export const update = row => { + return request({ + url: '/blade-develop/code/submit', + method: 'post', + data: row, + }); +}; + +export const copy = id => { + return request({ + url: '/blade-develop/code/copy', + method: 'post', + params: { + id, + }, + }); +}; + +export const getCode = id => { + return request({ + url: '/blade-develop/code/detail', + method: 'get', + params: { + id, + }, + }); +}; diff --git a/src/api/tool/datasource.js b/src/api/tool/datasource.js new file mode 100644 index 0000000..b1e0ea8 --- /dev/null +++ b/src/api/tool/datasource.js @@ -0,0 +1,49 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-develop/datasource/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getDetail = id => { + return request({ + url: '/blade-develop/datasource/detail', + method: 'get', + params: { + id, + }, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-develop/datasource/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const add = row => { + return request({ + url: '/blade-develop/datasource/submit', + method: 'post', + data: row, + }); +}; + +export const update = row => { + return request({ + url: '/blade-develop/datasource/submit', + method: 'post', + data: row, + }); +}; diff --git a/src/api/tool/model.js b/src/api/tool/model.js new file mode 100644 index 0000000..65c4284 --- /dev/null +++ b/src/api/tool/model.js @@ -0,0 +1,110 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-develop/model/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getDetail = id => { + return request({ + url: '/blade-develop/model/detail', + method: 'get', + params: { + id, + }, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-develop/model/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const add = row => { + return request({ + url: '/blade-develop/model/submit', + method: 'post', + data: row, + }); +}; + +export const update = row => { + return request({ + url: '/blade-develop/model/submit', + method: 'post', + data: row, + }); +}; + +export const getTableList = datasourceId => { + return request({ + url: '/blade-develop/model/table-list', + method: 'get', + params: { + datasourceId, + }, + }); +}; + +export const getTableInfo = (modelId, datasourceId) => { + return request({ + url: '/blade-develop/model/table-info', + method: 'get', + params: { + modelId, + datasourceId, + }, + }); +}; + +export const getTableInfoByName = (tableName, datasourceId) => { + return request({ + url: '/blade-develop/model/table-info', + method: 'get', + params: { + tableName, + datasourceId, + }, + }); +}; + +export const getModelPrototype = (modelId, datasourceId) => { + return request({ + url: '/blade-develop/model/model-prototype', + method: 'get', + params: { + modelId, + datasourceId, + }, + }); +}; + +export const submitModelPrototype = row => { + return request({ + url: '/blade-develop/model-prototype/submit-list', + method: 'post', + data: row, + }); +}; + +export const prototypeDetail = modelId => { + return request({ + url: '/blade-develop/model-prototype/select', + method: 'get', + params: { + modelId, + }, + }); +}; diff --git a/src/api/user.js b/src/api/user.js new file mode 100644 index 0000000..a8f9113 --- /dev/null +++ b/src/api/user.js @@ -0,0 +1,146 @@ +import request from '@/axios'; + +import website from '@/config/website'; + +export const loginByUsername = (tenantId, deptId, roleId, username, password, type, key, code) => + request({ + url: '/blade-auth/oauth2/token', + method: 'post', + headers: { + 'Tenant-Id': tenantId, + 'Dept-Id': website.switchMode ? deptId : '', + 'Role-Id': website.switchMode ? roleId : '', + 'Captcha-Key': key, + 'Captcha-Code': code, + }, + params: { + tenantId, + username, + password, + grant_type: website.captchaMode ? 'captcha' : 'password', + scope: 'all', + type, + }, + }); + +export const loginBySocial = (tenantId, source, code, state) => + request({ + url: '/blade-auth/oauth2/token', + method: 'post', + headers: { + 'Tenant-Id': tenantId, + }, + params: { + tenantId, + source, + code, + state, + grant_type: 'social', + scope: 'all', + }, + }); + +export const loginBySso = (state, code) => + request({ + url: '/blade-auth/oauth2/token', + method: 'post', + headers: { + 'Tenant-Id': state, + }, + params: { + tenantId: state, + code, + grant_type: 'authorization_code', + scope: 'all', + redirect_uri: website.redirectUri, + }, + }); + +export const refreshToken = (refresh_token, tenantId, deptId, roleId) => + request({ + url: '/blade-auth/oauth2/token', + method: 'post', + headers: { + 'Tenant-Id': tenantId, + 'Dept-Id': website.switchMode ? deptId : '', + 'Role-Id': website.switchMode ? roleId : '', + }, + params: { + tenantId, + refresh_token, + grant_type: 'refresh_token', + scope: 'all', + }, + }); + +export const registerUser = (tenantId, name, account, password, phone, email) => + request({ + url: '/blade-auth/oauth2/token', + method: 'post', + headers: { + 'Tenant-Id': tenantId, + }, + params: { + name, + username: account, + account, + password, + phone, + email, + grant_type: 'register', + scope: 'all', + }, + }); + +export const registerGuest = (form, oauthId) => + request({ + url: '/blade-system/user/register-guest', + method: 'post', + params: { + tenantId: form.tenantId, + name: form.name, + account: form.account, + password: form.password, + oauthId, + }, + }); + +export const getButtons = () => + request({ + url: '/blade-system/menu/buttons', + method: 'get', + }); + +export const getCaptcha = () => + request({ + url: '/blade-auth/oauth/captcha', + method: 'get', + authorization: false, + }); + +export const logout = () => + request({ + url: '/blade-auth/oauth/logout', + method: 'get', + authorization: false, + }); + +export const getUserInfo = () => + request({ + url: '/blade-auth/oauth/user-info', + method: 'get', + }); + +export const sendLogs = list => + request({ + url: '/blade-auth/oauth/logout', + method: 'post', + data: list, + }); + +export const clearCache = () => + request({ + url: '/blade-auth/oauth/clear-cache', + method: 'get', + authorization: false, + }); diff --git a/src/api/work/process.js b/src/api/work/process.js new file mode 100644 index 0000000..4654a64 --- /dev/null +++ b/src/api/work/process.js @@ -0,0 +1,33 @@ +import request from '@/axios'; + +// =====================参数=========================== + +export const historyFlowList = processInstanceId => { + return request({ + url: '/blade-flow/process/history-flow-list', + method: 'get', + params: { + processInstanceId, + }, + }); +}; + +// =====================请假流程=========================== + +export const leaveProcess = data => { + return request({ + url: '/blade-desk/process/leave/start-process', + method: 'post', + data, + }); +}; + +export const leaveDetail = businessId => { + return request({ + url: '/blade-desk/process/leave/detail', + method: 'get', + params: { + businessId, + }, + }); +}; diff --git a/src/api/work/work.js b/src/api/work/work.js new file mode 100644 index 0000000..360e396 --- /dev/null +++ b/src/api/work/work.js @@ -0,0 +1,79 @@ +import request from '@/axios'; + +export const startList = (current, size, params) => { + return request({ + url: '/blade-flow/work/start-list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const claimList = (current, size, params) => { + return request({ + url: '/blade-flow/work/claim-list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const todoList = (current, size, params) => { + return request({ + url: '/blade-flow/work/todo-list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const sendList = (current, size, params) => { + return request({ + url: '/blade-flow/work/send-list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const doneList = (current, size, params) => { + return request({ + url: '/blade-flow/work/done-list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const claimTask = taskId => { + return request({ + url: '/blade-flow/work/claim-task', + method: 'post', + params: { + taskId, + }, + }); +}; + +export const completeTask = data => { + return request({ + url: '/blade-flow/work/complete-task', + method: 'post', + data, + }); +}; diff --git a/src/axios.js b/src/axios.js new file mode 100644 index 0000000..4102390 --- /dev/null +++ b/src/axios.js @@ -0,0 +1,122 @@ +/** + * 全站http配置 + * + * axios参数说明 + * isSerialize是否开启form表单提交 + * isToken是否需要token + */ +import axios from 'axios'; +import store from '@/store/'; +import router from '@/router/'; +import { serialize } from 'utils/util'; +import { getToken } from 'utils/auth'; +import { isURL } from 'utils/validate'; +import { ElMessage } from 'element-plus'; +import website from '@/config/website'; +import NProgress from 'nprogress'; // progress bar +import 'nprogress/nprogress.css'; // progress bar style +import { Base64 } from 'js-base64'; +import { baseUrl } from '@/config/env'; +import crypto from '@/utils/crypto'; + +axios.defaults.timeout = 10000; +//返回其他状态吗 +axios.defaults.validateStatus = function (status) { + return status >= 200 && status <= 500; // 默认的 +}; +//跨域请求,允许保存cookie +axios.defaults.withCredentials = true; +// NProgress Configuration +NProgress.configure({ + showSpinner: false, +}); +//HTTPrequest拦截 +axios.interceptors.request.use( + config => { + // start progress bar + NProgress.start(); + //地址为已经配置状态则不添加前缀 + if (!isURL(config.url) && !config.url.startsWith(baseUrl)) { + config.url = baseUrl + config.url; + } + //安全请求header + config.headers['Blade-Requested-With'] = 'BladeHttpRequest'; + //headers判断是否需要 + const authorization = config.authorization === false; + if (!authorization) { + config.headers['Authorization'] = `Basic ${Base64.encode( + `${website.clientId}:${website.clientSecret}` + )}`; + } + //headers判断请求是否携带token + const meta = config.meta || {}; + const isToken = meta.isToken === false; + //headers传递token是否加密 + const cryptoToken = config.cryptoToken === true; + //判断传递数据是否加密 + const cryptoData = config.cryptoData === true; + const token = getToken(); + if (token && !isToken) { + config.headers[website.tokenHeader] = cryptoToken + ? 'crypto ' + crypto.encryptAES(token, crypto.cryptoKey) + : 'bearer ' + token; + } + // 开启报文加密 + if (cryptoData) { + if (config.params) { + const data = crypto.encryptAES(JSON.stringify(config.params), crypto.aesKey); + config.params = { data }; + } + if (config.data) { + config.text = true; + config.data = crypto.encryptAES(JSON.stringify(config.data), crypto.aesKey); + } + } + //headers中配置text请求 + if (config.text === true) { + config.headers['Content-Type'] = 'text/plain'; + } + //headers中配置serialize为true开启序列化 + if (config.method === 'post' && meta.isSerialize === true) { + config.data = serialize(config.data); + } + return config; + }, + error => { + return Promise.reject(error); + } +); +//HTTPresponse拦截 +axios.interceptors.response.use( + res => { + NProgress.done(); + const status = res.data.code || res.status; + const statusWhiteList = website.statusWhiteList || []; + const message = res.data.msg || res.data.error_description || '系统错误'; + const config = res.config; + const cryptoData = config.cryptoData === true; + //如果在白名单里则自行catch逻辑处理 + if (statusWhiteList.includes(status)) return Promise.reject(res); + //如果是401则跳转到登录页面 + if (status === 401) store.dispatch('FedLogOut').then(() => router.push({ path: '/login' })); + // 如果请求为非200否者默认统一处理 + if (status !== 200) { + ElMessage({ + message: message, + type: 'error', + }); + return Promise.reject(new Error(message)); + } + // 解析加密报文 + if (cryptoData) { + res.data = JSON.parse(crypto.decryptAES(res.data, crypto.aesKey)); + } + return res; + }, + error => { + NProgress.done(); + return Promise.reject(new Error(error)); + } +); + +export default axios; diff --git a/src/components/basic-block/main.vue b/src/components/basic-block/main.vue new file mode 100644 index 0000000..6f69fc1 --- /dev/null +++ b/src/components/basic-block/main.vue @@ -0,0 +1,128 @@ + + + + + diff --git a/src/components/basic-container/main.vue b/src/components/basic-container/main.vue new file mode 100644 index 0000000..e98f520 --- /dev/null +++ b/src/components/basic-container/main.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/src/components/basic-video/main.vue b/src/components/basic-video/main.vue new file mode 100644 index 0000000..6b0089f --- /dev/null +++ b/src/components/basic-video/main.vue @@ -0,0 +1,140 @@ + + + + diff --git a/src/components/basic-video/plugin.js b/src/components/basic-video/plugin.js new file mode 100644 index 0000000..a304bee --- /dev/null +++ b/src/components/basic-video/plugin.js @@ -0,0 +1,88 @@ +export default class RecordVideo { + /** + * 构造函数 + * + * @param {Object} videoObj 视频对象 + */ + constructor(videoObj) { + this.video = videoObj; + this.mediaRecorder = null; + this.chunks = []; + } + + /** + * 初始化 + * + * @return {Object} promise + */ + init() { + // 返回Promise对象 + // resolve 正常处理 + // reject 处理异常情况 + return new Promise((resovle, reject) => { + navigator.mediaDevices + .getUserMedia({ + audio: true, + video: true, + // video: { + // width: this.videoWidth, + // height: this.videoHeight + // } + }) + // 返回一个媒体内容的流 + .then(stream => { + // 检测是否支持 srcObject,该属性在新的浏览器支持 + if ('srcObject' in this.video) { + this.video.srcObject = stream; + } else { + // 兼容旧的浏览器 + this.video.src = window.URL.createObjectURL(stream); + } + + // 当视频的元数据已经加载时触发 + this.video.addEventListener('loadmetadata', () => { + this.video.play(); + }); + this.mediaRecorder = new MediaRecorder(stream); + this.mediaRecorder.addEventListener('dataavailable', e => { + this.chunks.push(e.data); + }); + resovle(); + }) + // 异常抓取,包括用于禁用麦克风、摄像头 + .catch(error => { + reject(error); + }); + }); + } + + /** + * 视频开始录制 + */ + startRecord() { + if (this.mediaRecorder.state === 'inactive') { + this.mediaRecorder.start(); + } + } + + /** + * 视频结束录制 + */ + stopRecord() { + if (this.mediaRecorder.state === 'recording') { + this.mediaRecorder.stop(); + } + } + + /** + * 检测当前浏览器对否支持 + * + * @return {boolean} 当前浏览器是否支持 + */ + isSupport() { + const flag = navigator.mediaDevices && navigator.mediaDevices.getUserMedia; + if (flag) { + return true; + } + } +} diff --git a/src/components/error-page/403.vue b/src/components/error-page/403.vue new file mode 100644 index 0000000..8bbf235 --- /dev/null +++ b/src/components/error-page/403.vue @@ -0,0 +1,23 @@ + + + + diff --git a/src/components/error-page/404.vue b/src/components/error-page/404.vue new file mode 100644 index 0000000..91304f8 --- /dev/null +++ b/src/components/error-page/404.vue @@ -0,0 +1,23 @@ + + + + diff --git a/src/components/error-page/500.vue b/src/components/error-page/500.vue new file mode 100644 index 0000000..60d52b8 --- /dev/null +++ b/src/components/error-page/500.vue @@ -0,0 +1,23 @@ + + + + diff --git a/src/components/error-page/style.scss b/src/components/error-page/style.scss new file mode 100644 index 0000000..fc151dd --- /dev/null +++ b/src/components/error-page/style.scss @@ -0,0 +1,35 @@ +.error-page { + background: #f0f2f5; + margin-top: -30px; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + + .img { + margin-right: 80px; + height: 360px; + width: 100%; + max-width: 430px; + background-repeat: no-repeat; + background-position: 50% 50%; + background-size: contain; + } + + .content { + h1 { + color: #434e59; + font-size: 72px; + font-weight: 600; + line-height: 72px; + margin-bottom: 24px; + } + + .desc { + color: rgba(0, 0, 0, 0.45); + font-size: 20px; + line-height: 28px; + margin-bottom: 16px; + } + } +} diff --git a/src/components/flow-design/main.vue b/src/components/flow-design/main.vue new file mode 100644 index 0000000..3ddee6d --- /dev/null +++ b/src/components/flow-design/main.vue @@ -0,0 +1,125 @@ + + + + + diff --git a/src/components/iframe/main.vue b/src/components/iframe/main.vue new file mode 100644 index 0000000..d11b344 --- /dev/null +++ b/src/components/iframe/main.vue @@ -0,0 +1,82 @@ + + + + diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..eef5e8f --- /dev/null +++ b/src/main.js @@ -0,0 +1,64 @@ +import { createApp } from 'vue'; +import website from './config/website'; +import axios from './axios'; +import router from './router/'; +import store from './store'; +import i18n from './lang/'; +import { language, messages } from './lang/'; +import * as ElementPlusIconsVue from '@element-plus/icons-vue'; +import ElementPlus from 'element-plus'; +import 'element-plus/dist/index.css'; +import Avue from '@smallwei/avue'; +import '@smallwei/avue/lib/index.css'; +import crudCommon from '@/mixins/crud.js'; +import { getScreen } from './utils/util'; +import './permission'; +import error from './error'; +import avueUeditor from 'avue-plugin-ueditor'; +import basicBlock from 'components/basic-block/main.vue'; +import basicContainer from 'components/basic-container/main.vue'; +import thirdRegister from './components/third-register/main.vue'; +import NfDesignBase from '@saber/nf-design-base-elp'; +import flowDesign from './components/flow-design/main.vue'; +import App from './App.vue'; +import 'animate.css'; +import dayjs from 'dayjs'; +import 'styles/common.scss'; +// 业务组件 +import tenantPackage from './views/system/tenantpackage.vue'; +import ECharts from 'vue-echarts'; + +window.$crudCommon = crudCommon; +window.axios = axios; +const app = createApp(App); +for (const [key, component] of Object.entries(ElementPlusIconsVue)) { + app.component(key, component); +} +app.component('basicContainer', basicContainer); +app.component('basicBlock', basicBlock); +app.component('thirdRegister', thirdRegister); +app.component('flowDesign', flowDesign); +app.component('tenantPackage', tenantPackage); + +app.component('v-chart', ECharts); + +app.config.globalProperties.$dayjs = dayjs; +app.config.globalProperties.website = website; +app.config.globalProperties.getScreen = getScreen; +app.config.globalProperties.$axios = window.axios; +app.config.globalProperties.imgUrl = "https://obs-hncs2.cucloud.cn/entry-imgs/"; +app.use(error); +app.use(i18n); +app.use(store); +app.use(router); +app.use(ElementPlus, { + locale: messages[language], +}); +app.use(Avue, { + axios:window.axios, + calcHeight: 10, + locale: messages[language], +}); +app.use(avueUeditor, { axios }) +app.use(NfDesignBase); +app.mount('#app'); diff --git a/src/mixins/crud.js b/src/mixins/crud.js new file mode 100644 index 0000000..f297a12 --- /dev/null +++ b/src/mixins/crud.js @@ -0,0 +1,217 @@ +import { mapGetters } from 'vuex'; + +export default (app, option = {}) => { + let optionObj = import.meta.glob(`../option/**/**`)[`../option/${option.name}.js`]; + let apiObj = import.meta.glob(`../api/**/**`)[`../api/${option.name}.js`]; + let mixins = { + data() { + return { + data: [], + form: {}, + params: {}, + option: {}, + api: {}, + loading: false, + page: {}, + }; + }, + created() { + optionObj().then(mode => (this.option = mode.default)); + apiObj().then(mode => { + this.api = mode; + this.getList(); + }); + }, + computed: { + ...mapGetters(['userInfo', 'permission', 'roles']), + ids() { + const ids = []; + this.selectionList.forEach(ele => { + ids.push(ele[this.rowKey]); + }); + return ids.join(','); + }, + bindVal() { + return { + ref: 'crud', + option: this.option, + data: this.data, + tableLoading: this.loading, + }; + }, + onEvent() { + return { + 'size-change': this.sizeChange, + 'current-change': this.currentChange, + 'row-save': this.rowSave, + 'row-update': this.rowUpdate, + 'row-del': this.rowDel, + 'refresh-change': this.refreshChange, + 'search-reset': this.searchChange, + 'search-change': this.searchChange, + }; + }, + rowKey() { + return option.rowKey || 'id'; + }, + }, + methods: { + getList() { + const callback = () => { + this.loading = true; + this.data = []; + this.api[option.list || 'getList']( + this.page.currentPage, + this.page.pageSize, + this.params + ).then(res => { + this.loading = false; + let data; + if (option.res) { + data = option.res(res.data); + } else { + data = res.data.data; + } + this.page.total = data[option.total || 'total']; + const result = data[option.data || 'records']; + this.data = result; + if (this.listAfter) { + this.listAfter(data); + } + }); + }; + if (this.listBefore) { + this.listBefore(); + } + callback(); + }, + rowSave(row, done, loading) { + const callback = () => { + delete this.form.params; + this.api[option.add || 'add'](this.form) + .then(data => { + this.getList(); + if (this.addAfter) { + this.addAfter(data); + } else { + this.$message.success('新增成功'); + } + done(); + }) + .catch(() => { + loading(); + }); + }; + if (this.addBefore) { + this.addBefore(); + } + callback(); + }, + rowUpdate(row, index, done, loading) { + const callback = () => { + delete this.form.params; + this.api[option.update || 'update'](this.form) + .then(data => { + this.getList(); + if (this.updateAfter) { + this.updateAfter(data); + } else { + this.$message.success('更新成功'); + } + done(); + }) + .catch(() => { + loading(); + }); + }; + if (this.updateBefore) { + this.updateBefore(); + } + callback(); + }, + rowDel(row, index) { + const callback = () => { + this.api[option.del || 'del'](row[this.rowKey], row).then(data => { + this.getList(); + if (this.delAfter) { + this.delAfter(data, row, index); + } else { + this.$message.success('删除成功'); + } + }); + }; + if (this.delBefore) { + this.delBefore(); + callback(); + } else { + this.$confirm('确定将选择数据删除?', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }).then(() => { + callback(); + }); + } + }, + handleDelete() { + if (this.selectionList.length === 0) { + this.$message.warning('请选择至少一条数据'); + return; + } + this.$confirm('确定将选择数据删除?', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }).then(() => { + this.api[option.del || 'remove'](this.ids).then(data => { + this.getList(); + if (this.delMultiAfter) { + this.delMultiAfter(data, this.ids); + } else { + this.$message.success('删除成功'); + } + }); + }); + }, + searchChange(params, done) { + if (done) done(); + this.params = params; + this.page.currentPage = 1; + this.getList(); + }, + dateChange(date) { + if (date) { + this.params.createTime_dategt = date[0]; + this.params.createTime_datelt = date[1]; + } else { + delete this.params.createTime_dategt; + delete this.params.createTime_datelt; + } + this.page.currentPage = 1; + this.getList(); + }, + selectionChange(list) { + this.selectionList = list; + }, + selectionClear() { + this.selectionList = []; + this.$refs.crud.toggleSelection(); + }, + refreshChange() { + this.getList(); + }, + sizeChange(val) { + this.page.currentPage = 1; + this.page.pageSize = val; + this.getList(); + }, + currentChange(val) { + this.page.currentPage = val; + this.getList(); + }, + }, + }; + app.mixins = app.mixins || []; + app.mixins.push(mixins); + return app; +}; diff --git a/src/mixins/index.js b/src/mixins/index.js new file mode 100644 index 0000000..5fb9f8c --- /dev/null +++ b/src/mixins/index.js @@ -0,0 +1,46 @@ +import { validatenull } from '@/utils/validate'; +import { getStore } from '@/utils/store.js'; +import { mapGetters } from 'vuex'; + +export default { + data() { + return { + //刷新token锁 + refreshLock: false, + //刷新token的时间 + refreshTime: '', + }; + }, + created() { + //实时检测刷新token + this.refreshToken(); + }, + methods: { + //实时检测刷新token + refreshToken() { + this.refreshTime = setInterval(() => { + const token = + getStore({ + name: 'token', + debug: true, + }) || {}; + let date1 = this.$dayjs(token.datetime); + let date2 = this.$dayjs(); + const date = date2.diff(date1, 'seconds'); + if (validatenull(date)) return; + if (date >= this.website.tokenTime && !this.refreshLock) { + this.refreshLock = true; + this.$store + .dispatch('RefreshToken') + .then(() => { + this.refreshLock = false; + }) + .catch(err => { + console.log(err); + this.refreshLock = false; + }); + } + }, 1000); + }, + }, +}; diff --git a/src/mockProdServer.js b/src/mockProdServer.js new file mode 100644 index 0000000..d13afa4 --- /dev/null +++ b/src/mockProdServer.js @@ -0,0 +1,9 @@ +import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer'; + +import menuModule from '../mock/menu'; +import userModule from '../mock/user'; +import crudModule from '../mock/crud'; + +export const setupProdMockServer = () => { + createProdMockServer([...menuModule, ...userModule, ...crudModule]); +}; diff --git a/src/option/job/jobinfo.js b/src/option/job/jobinfo.js new file mode 100644 index 0000000..b4de472 --- /dev/null +++ b/src/option/job/jobinfo.js @@ -0,0 +1,515 @@ +export const timeExpressionTypeDic = [ + { + label: 'API', + value: 1, + }, + { + label: 'CRON', + value: 2, + }, + { + label: '固定频率(毫秒)', + value: 3, + }, + { + label: '固定延迟(毫秒)', + value: 4, + }, + { + label: '工作流', + value: 5, + }, +]; + +export const executeTypeDic = [ + { + label: '单机执行', + value: 1, + }, + { + label: '广播执行', + value: 2, + }, + { + label: 'MapReduce', + value: 3, + }, +]; + +export const processorTypeDic = [ + { + label: '内建处理器', + value: 1, + }, + { + label: '外部处理器(动态加载)', + value: 4, + }, +]; + +export const dispatchStrategyDic = [ + { + label: 'HEALTH_FIRST', + value: 1, + }, + { + label: 'RANDOM', + value: 2, + }, +]; + +export const enableDic = [ + { + label: '暂停', + value: 0, + }, + { + label: '启用', + value: 1, + }, +]; + +export const logTypeDic = [ + { + label: 'ONLINE', + value: 1, + }, + { + label: 'LOCAL', + value: 2, + }, + { + label: 'STDOUT', + value: 3, + }, + { + label: 'LOCAL_AND_ONLINE', + value: 4, + }, + { + label: 'NULL', + value: 999, + }, +]; + +export const logLevelDic = [ + { + label: 'DEBUG', + value: 1, + }, + { + label: 'INFO', + value: 2, + }, + { + label: 'WARN', + value: 3, + }, + { + label: 'ERROR', + value: 4, + }, + { + label: 'OFF', + value: 99, + }, +]; + +export default { + height: 'auto', + calcHeight: 30, + tip: false, + searchShow: true, + searchMenuSpan: 6, + border: true, + index: true, + viewBtn: true, + selection: true, + grid: true, + labelWidth: 180, + menuWidth: 350, + dialogWidth: 1200, + dialogClickModal: false, + tabs: true, + column: [ + { + label: '任务应用', + prop: 'jobServerId', + type: 'select', + dicUrl: '/blade-job/job-server/select', + props: { + label: 'jobAppName', + value: 'id', + }, + search: true, + display: false, + }, + { + label: '任务ID', + prop: 'jobId', + type: 'input', + search: true, + width: 80, + display: false, + }, + { + label: '任务名称', + prop: 'jobName', + type: 'input', + search: true, + width: 200, + display: false, + }, + { + label: '定时信息', + labelTip: '时间表达式类型', + prop: 'timeExpressionType', + type: 'select', + dicData: timeExpressionTypeDic, + rules: [ + { + required: true, + message: '请选择定时信息', + trigger: 'blur', + }, + ], + width: 120, + display: false, + }, + { + label: '执行类型', + labelTip: '枚举值', + prop: 'executeType', + type: 'select', + dicData: executeTypeDic, + rules: [ + { + required: true, + message: '请选择执行器类型', + trigger: 'blur', + }, + ], + width: 110, + display: false, + }, + { + label: '处理器类型', + labelTip: '枚举值', + prop: 'processorType', + type: 'select', + dicData: processorTypeDic, + rules: [ + { + required: true, + message: '请选择处理器类型', + trigger: 'blur', + }, + ], + width: 180, + display: false, + }, + { + label: '任务状态', + labelTip: '未启用的任务不会被调度', + prop: 'enable', + type: 'switch', + dicData: enableDic, + slot: true, + width: 100, + display: false, + }, + ], + group: [ + { + label: '基础配置', + prop: 'modelSetting', + icon: 'el-icon-tickets', + column: [ + { + label: '任务应用', + prop: 'jobServerId', + type: 'select', + dicUrl: '/blade-job/job-server/select', + props: { + label: 'jobAppName', + value: 'id', + }, + editDisabled: true, + rules: [ + { + required: true, + message: '请选择任务应用', + trigger: 'blur', + }, + ], + }, + { + label: '任务状态', + labelTip: '未启用的任务不会被调度', + prop: 'enable', + type: 'switch', + value: 1, + rules: [ + { + required: true, + message: '请选择是否开启', + trigger: 'blur', + }, + ], + }, + { + label: '任务名称', + prop: 'jobName', + type: 'input', + rules: [ + { + required: true, + message: '请输入任务名称', + trigger: 'blur', + }, + ], + }, + { + label: '生命周期', + labelTip: '预留,用于指定定时调度任务的生效时间范围)', + prop: 'lifecycle', + type: 'datetimerange', + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + startPlaceholder: '任务开始时间', + endPlaceholder: '任务结束时间', + }, + { + label: '定时类型', + labelTip: '时间表达式类型', + prop: 'timeExpressionType', + type: 'select', + dicData: timeExpressionTypeDic, + value: 2, + rules: [ + { + required: true, + message: '请选择定时信息', + trigger: 'blur', + }, + ], + }, + { + label: '时间表达式', + labelTip: '填写类型由 定时类型 决定,比如 CRON 需要填写 CRON 表达式', + prop: 'timeExpression', + type: 'input', + }, + { + label: '执行类型', + labelTip: '枚举值', + prop: 'executeType', + type: 'select', + dicData: executeTypeDic, + value: 1, + rules: [ + { + required: true, + message: '请选择执行器类型', + trigger: 'blur', + }, + ], + }, + { + label: '运行时配置', + labelTip: '目前支持随机(RANDOM)和健康度优先(HEALTH_FIRST)', + prop: 'dispatchStrategy', + type: 'select', + dicData: dispatchStrategyDic, + value: 1, + rules: [ + { + required: true, + message: '请选择运行时配置', + trigger: 'blur', + }, + ], + }, + { + label: '处理器类型', + labelTip: '枚举值', + prop: 'processorType', + type: 'select', + dicData: processorTypeDic, + value: 1, + rules: [ + { + required: true, + message: '请选择处理器类型', + trigger: 'blur', + }, + ], + }, + { + label: '处理器参数', + labelTip: + '如Java处理器需要填写全限定类名,如:org.springblade.demo.MapReduceProcessorDemo', + prop: 'processorInfo', + type: 'input', + rules: [ + { + required: true, + message: '请输入处理器参数', + trigger: 'blur', + }, + ], + }, + { + label: '任务参数', + labelTip: '方法入参 TaskContext 对象的 json 字段', + prop: 'jobParams', + type: 'input', + span: 24, + }, + { + label: '任务描述', + prop: 'jobDescription', + type: 'textarea', + minRows: 3, + span: 24, + }, + ], + }, + { + label: '高级配置', + prop: 'templateSetting', + icon: 'el-icon-copy-document', + column: [ + { + label: '最大实例数', + labelTip: + '该任务同时执行的数量(任务和实例就像是类和对象的关系,任务被调度执行后被称为实例)', + prop: 'maxInstanceNum', + type: 'number', + value: 0, + }, + { + label: '单机线程并发数', + labelTip: '该实例执行过程中每个 Worker 使用的线程数量', + prop: 'concurrency', + type: 'number', + value: 5, + }, + { + label: '任务实例运行时间限制', + labelTip: '0 代表无任何限制,超时会被打断并判定为执行失败', + prop: 'instanceTimeLimit', + type: 'number', + value: 0, + }, + { + label: '任务实例重试次数', + labelTip: '任务实例重试次数,整个任务失败时重试,代价大,不推荐使用', + prop: 'instanceRetryNum', + type: 'number', + value: 0, + }, + { + label: '任务作业重试次数', + labelTip: 'Task 重试次数,每个子 Task 失败后单独重试,代价小,推荐使用', + prop: 'taskRetryNum', + type: 'number', + value: 0, + }, + { + label: '最低CPU核心', + labelTip: + '最小可用 CPU 核心数,CPU 可用核心数小于该值的 Worker 将不会执行该任务,0 代表无任何限制', + prop: 'minCpuCores', + type: 'number', + value: 0, + }, + { + label: '最低内存(GB)', + labelTip: '可用内存小于该值的Worker 将不会执行该任务,0 代表无任何限制', + prop: 'minMemorySpace', + type: 'number', + value: 0, + }, + { + label: '最低磁盘空间(GB)', + labelTip: '可用磁盘空间小于该值的Worker 将不会执行该任务,0 代表无任何限制', + prop: 'minDiskSpace', + type: 'number', + value: 0, + }, + { + label: '执行机器地址', + labelTip: '设置该参数后只有列表中的机器允许执行该任务,空代表不指定机器', + prop: 'designatedWorkers', + type: 'input', + }, + { + label: '最大执行机器数量', + labelTip: '限定调动执行的机器数量,0代表无限制', + prop: 'maxWorkerCount', + type: 'number', + value: 0, + }, + ], + }, + { + label: '其他配置', + prop: 'codingSetting', + icon: 'el-icon-printer', + column: [ + { + label: '报警人员ID列表', + labelTip: '接收报警的用户ID列表', + prop: 'notifyUserIds', + type: 'input', + }, + { + label: '错误阈值', + labelTip: '错误阈值,0代表不限制', + prop: 'alertThreshold', + type: 'number', + value: 0, + }, + { + label: '统计窗口(s)', + labelTip: '统计的窗口长度(s),0代表不限制', + prop: 'statisticWindowLen', + type: 'number', + value: 0, + }, + { + label: '沉默窗口(s)', + labelTip: '沉默时间窗口(s),0代表不限制', + prop: 'silenceWindowLen', + type: 'number', + value: 0, + }, + { + label: '日志配置', + labelTip: '日志配置', + prop: 'logType', + type: 'select', + value: 1, + dicData: logTypeDic, + }, + { + label: '日志级别', + labelTip: '日志级别', + prop: 'logLevel', + type: 'select', + value: 2, + dicData: logLevelDic, + }, + { + label: '扩展字段', + labelTip: '供开发者使用,用于功能扩展,powerjob 自身不会使用该字段', + prop: 'extra', + type: 'textarea', + minRows: 3, + span: 24, + }, + ], + }, + ], +}; diff --git a/src/option/job/jobserver.js b/src/option/job/jobserver.js new file mode 100644 index 0000000..27914be --- /dev/null +++ b/src/option/job/jobserver.js @@ -0,0 +1,78 @@ +export default { + height: 'auto', + calcHeight: 30, + tip: false, + searchShow: true, + searchMenuSpan: 6, + border: true, + index: true, + viewBtn: true, + selection: true, + grid: true, + labelWidth: 100, + menuWidth: 350, + dialogClickModal: false, + column: [ + { + label: '服务名称', + prop: 'jobServerName', + type: 'input', + span: 24, + search: true, + rules: [ + { + required: true, + message: '请输入服务名称', + trigger: 'blur', + }, + ], + }, + { + label: '服务器地址', + prop: 'jobServerUrl', + type: 'input', + span: 24, + rules: [ + { + required: true, + message: '请输入服务器地址', + trigger: 'blur', + }, + ], + }, + { + label: '应用名称', + prop: 'jobAppName', + type: 'input', + span: 24, + search: true, + rules: [ + { + required: true, + message: '请输入应用名称', + trigger: 'blur', + }, + ], + }, + { + label: '应用密码', + prop: 'jobAppPassword', + type: 'input', + span: 24, + rules: [ + { + required: true, + message: '请输入应用密码', + trigger: 'blur', + }, + ], + }, + { + label: '任务备注', + prop: 'jobRemark', + type: 'textarea', + minRows: 3, + span: 24, + }, + ], +}; diff --git a/src/option/material/material.js b/src/option/material/material.js new file mode 100644 index 0000000..174fe3e --- /dev/null +++ b/src/option/material/material.js @@ -0,0 +1,120 @@ +export default { + height:'auto', + calcHeight: 30, + tip: false, + searchShow: true, + searchMenuSpan: 6, + border: true, + index: true, + viewBtn: true, + selection: true, + menuFixed: true, + menuWidth: 250, + dialogClickModal: false, + delBtn: false, + viewBtn: false, + column: [ + { + label: "物料编码", + prop: "code", + search: true, + editDisabled: true, + type: "input", + }, + { + label: "物料名称", + prop: "name", + search: true, + type: "input", + }, + { + label: "物料类型", + prop: "type", + search: true, + type: "input", + dicUrl: '/blade-system/dict/dictionary?code=wl_type', + search: true, + dataType: "number", + type: 'select', + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + { + label: "物料型号", + prop: "model", + search: true, + type: "input", + }, + { + label: "功率(KW)", + prop: "power", + type: "input", + }, + { + label: "零售价", + prop: "retailPrice", + type: "input", + }, + + { + label: "品牌", + prop: "brand", + dicUrl: '/blade-system/dict/dictionary?code=device_brand', + search: true, + dataType: "number", + type: 'select', + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + { + label: "库存", + prop: "stock", + type: "input", + editDisplay: false, + }, + // { + // label: "库存单位", + // prop: "unit", + // type: "input", + // dicUrl: '/blade-system/dict/dictionary?code=wl_unit', + // type: 'select', + // props: { + // label: 'dictValue', + // value: 'dictKey', + // } + // }, + { + label: "最新修改时间", + prop: "updateTime", + type: "input", + addDisplay: false, + editDisplay: false + }, + { + label: "状态", + prop: "status", + type: "input", + addDisplay: false, + editDisplay: false, + dicUrl: '/blade-system/dict/dictionary?code=wl_status', + search: true, + dataType: "number", + type: 'select', + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + { + label: "物料描述", + span: 24, + hide: true, + prop: "description", + type: "textarea", + }, + ] +} diff --git a/src/option/material/materialEngineer.js b/src/option/material/materialEngineer.js new file mode 100644 index 0000000..69e0838 --- /dev/null +++ b/src/option/material/materialEngineer.js @@ -0,0 +1,111 @@ +export default { + height:'auto', + calcHeight: 30, + tip: false, + searchShow: true, + searchMenuSpan: 6, + border: true, + index: true, + viewBtn: true, + selection: false, + menu: false, + menuFixed: true, + menuWidth: 80, + dialogClickModal: false, + delBtn: false, + viewBtn: false, + addBtn: false, + column: [ + { + label: "运维商", + prop: "operationName", + search: true, + type: "input", + }, + { + label: "工程师", + prop: "engineerName", + search: true, + type: "input", + }, + { + label: "物料编码", + prop: "code", + search: true, + type: "input", + }, + { + label: "物料名称", + prop: "name", + search: true, + type: "input", + }, + { + label: "物料类型", + prop: "type", + search: true, + type: "input", + dicUrl: '/blade-system/dict/dictionary?code=wl_type', + search: true, + dataType: "number", + type: 'select', + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + { + label: "物料型号", + prop: "model", + search: true, + type: "input", + }, + { + label: "功率(KW)", + prop: "power", + type: "input", + }, + { + label: "品牌", + prop: "brand", + dicUrl: '/blade-system/dict/dictionary?code=device_brand', + search: true, + dataType: "number", + type: 'select', + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + { + label: "库存", + prop: "stock", + type: "input", + }, + { + label: "库存单位", + prop: "unit", + type: "input", + dicUrl: '/blade-system/dict/dictionary?code=wl_unit', + type: 'select', + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + { + label: "最新修改时间", + prop: "updateTime", + type: "input", + addDisplay: false, + editDisplay: false + }, + { + label: "物料描述", + span: 24, + hide: true, + prop: "description", + type: "textarea", + }, + ] +} diff --git a/src/option/material/materialEngineerOutbound.js b/src/option/material/materialEngineerOutbound.js new file mode 100644 index 0000000..f366011 --- /dev/null +++ b/src/option/material/materialEngineerOutbound.js @@ -0,0 +1,206 @@ +export default { + height:'auto', + calcHeight: 30, + tip: false, + searchShow: true, + searchMenuSpan: 6, + border: true, + index: true, + viewBtn: true, + selection: true, + dialogClickModal: false, + column: [ + { + label: "主键", + prop: "id", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "公司物料id", + prop: "materialId", + type: "input", + }, + { + label: "所属公司", + prop: "companyId", + type: "input", + }, + { + label: "", + prop: "operationId", + type: "input", + }, + { + label: "运维上名称", + prop: "operationName", + type: "input", + search: true, + }, + { + label: "", + prop: "engineerId", + type: "input", + }, + { + label: "", + prop: "engineerName", + type: "input", + search: true, + }, + { + label: "物料编码", + prop: "code", + type: "input", + search: true, + }, + { + label: "物料名称", + prop: "name", + type: "input", + search: true, + }, + { + label: "物料类型", + prop: "type", + type: "input", + search: true, + }, + { + label: "物料型号", + prop: "model", + type: "input", + }, + { + label: "功率(KW)", + prop: "power", + type: "input", + }, + { + label: "物料描述", + prop: "description", + type: "input", + }, + { + label: "设备sn码", + prop: "brand", + type: "input", + }, + { + label: "设备库存数量", + prop: "stock", + type: "input", + }, + { + label: "质保状态(1、在保 0过保)", + prop: "unit", + type: "input", + }, + { + label: "创建人", + prop: "createUser", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "创建部门", + prop: "createDept", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "创建时间", + prop: "createTime", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "更新人", + prop: "updateUser", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "更新时间", + prop: "updateTime", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "逆变器状态 1 在线 2 离线 3 报警", + prop: "status", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "是否已删除", + prop: "isDeleted", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "明细类型", + prop: "outType", + type: "input", + }, + { + label: "1进 2出", + prop: "outDirect", + type: "input", + }, + { + label: "明细数量", + prop: "outCount", + type: "input", + }, + { + label: "出入库总额", + prop: "outAmount", + type: "input", + }, + { + label: "审核人", + prop: "allowUser", + type: "input", + }, + { + label: "审核时间", + prop: "allowTime", + type: "input", + }, + { + label: "关联单号id", + prop: "applyId", + type: "input", + }, + { + label: "", + prop: "remarks", + type: "input", + }, + ] +} diff --git a/src/option/material/materialOperation.js b/src/option/material/materialOperation.js new file mode 100644 index 0000000..87b8fc1 --- /dev/null +++ b/src/option/material/materialOperation.js @@ -0,0 +1,130 @@ +export default { + height:'auto', + calcHeight: 30, + tip: false, + searchShow: true, + searchMenuSpan: 6, + border: true, + index: true, + viewBtn: true, + selection: false, + menuFixed: true, + menuWidth: 80, + dialogClickModal: false, + delBtn: false, + viewBtn: false, + addBtn: false, + column: [ + { + label: "运维商", + prop: "operationName", + search: true, + type: "input", + }, + { + label: "物料编码", + prop: "code", + search: true, + type: "input", + }, + { + label: "物料名称", + prop: "name", + search: true, + type: "input", + }, + { + label: "物料类型", + prop: "type", + search: true, + type: "input", + dicUrl: '/blade-system/dict/dictionary?code=wl_type', + search: true, + dataType: "number", + type: 'select', + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + { + label: "物料型号", + prop: "model", + search: true, + type: "input", + }, + { + label: "功率(KW)", + prop: "power", + type: "input", + }, + { + label: "成本价", + prop: "costPrice", + type: "input", + }, + { + label: "零售价", + prop: "retailPrice", + type: "input", + }, + + { + label: "品牌", + prop: "brand", + dicUrl: '/blade-system/dict/dictionary?code=device_brand', + search: true, + dataType: "number", + type: 'select', + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + { + label: "库存", + prop: "stock", + type: "input", + }, + { + label: "库存单位", + prop: "unit", + type: "input", + dicUrl: '/blade-system/dict/dictionary?code=wl_unit', + type: 'select', + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + { + label: "最新修改时间", + prop: "updateTime", + type: "input", + addDisplay: false, + editDisplay: false + }, + { + label: "状态", + prop: "status", + type: "input", + addDisplay: false, + editDisplay: false, + dicUrl: '/blade-system/dict/dictionary?code=wl_status', + search: true, + dataType: "number", + type: 'select', + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + { + label: "物料描述", + span: 24, + hide: true, + prop: "description", + type: "textarea", + }, + ] +} diff --git a/src/option/material/materialOperationOutbound.js b/src/option/material/materialOperationOutbound.js new file mode 100644 index 0000000..51fc847 --- /dev/null +++ b/src/option/material/materialOperationOutbound.js @@ -0,0 +1,211 @@ +export default { + height:'auto', + calcHeight: 30, + tip: false, + searchShow: true, + searchMenuSpan: 6, + border: true, + index: true, + viewBtn: true, + selection: true, + dialogClickModal: false, + column: [ + { + label: "主键", + prop: "id", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "公司物料id", + prop: "materialId", + type: "input", + }, + { + label: "所属公司", + prop: "companyId", + type: "input", + }, + { + label: "", + prop: "operationId", + type: "input", + }, + { + label: "运维上名称", + prop: "operationName", + type: "input", + search: true, + }, + { + label: "物料编码", + prop: "code", + type: "input", + search: true, + }, + { + label: "物料名称", + prop: "name", + type: "input", + search: true, + }, + { + label: "物料类型", + prop: "type", + type: "input", + search: true, + }, + { + label: "物料型号", + prop: "model", + type: "input", + }, + { + label: "功率(KW)", + prop: "power", + type: "input", + }, + { + label: "", + prop: "costPrice", + type: "input", + }, + { + label: "零售价", + prop: "retailPrice", + type: "input", + }, + { + label: "物料描述", + prop: "description", + type: "input", + }, + { + label: "设备sn码", + prop: "brand", + type: "input", + search: true, + }, + { + label: "设备库存数量", + prop: "stock", + type: "input", + }, + { + label: "冻结数量", + prop: "freezeAmount", + type: "input", + }, + { + label: "质保状态(1、在保 0过保)", + prop: "unit", + type: "input", + }, + { + label: "创建人", + prop: "createUser", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "创建部门", + prop: "createDept", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "创建时间", + prop: "createTime", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "更新人", + prop: "updateUser", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "更新时间", + prop: "updateTime", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "逆变器状态 1 在线 2 离线 3 报警", + prop: "status", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "是否已删除", + prop: "isDeleted", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "明细类型", + prop: "outType", + type: "input", + }, + { + label: "1进 2出", + prop: "outDirect", + type: "input", + }, + { + label: "明细数量", + prop: "outCount", + type: "input", + }, + { + label: "出入库总额", + prop: "outAmount", + type: "input", + }, + { + label: "审核人", + prop: "allowUser", + type: "input", + }, + { + label: "审核时间", + prop: "allowTime", + type: "input", + }, + { + label: "关联单号id", + prop: "applyId", + type: "input", + }, + { + label: "", + prop: "remarks", + type: "input", + }, + ] +} diff --git a/src/option/material/materialOutbound.js b/src/option/material/materialOutbound.js new file mode 100644 index 0000000..4c2272d --- /dev/null +++ b/src/option/material/materialOutbound.js @@ -0,0 +1,123 @@ +export default { + height:'auto', + calcHeight: 30, + tip: false, + searchShow: true, + searchMenuSpan: 6, + border: true, + index: true, + viewBtn: true, + selection: false, + menu: false, + menuFixed: true, + menuWidth: 150, + dialogClickModal: false, + delBtn: false, + viewBtn: false, + addBtn: false, + column: [ + { + label: "物料编码", + prop: "code", + search: true, + type: "input", + }, + { + label: "物料名称", + prop: "name", + search: true, + type: "input", + }, + { + label: "物料类型", + prop: "type", + search: true, + type: "input", + dicUrl: '/blade-system/dict/dictionary?code=wl_type', + search: true, + dataType: "number", + type: 'select', + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + { + label: "物料型号", + prop: "model", + search: true, + type: "input", + }, + { + label: "明细类型", + prop: "outType", + search: true, + type: "input", + dicUrl: '/blade-system/dict/dictionary?code=wl_out_type', + search: true, + dataType: "number", + type: 'select', + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + { + label: "明细数量", + prop: "outCount", + type: "input", + }, + { + label: "明细金额", + prop: "outAmount", + slot: true, + type: "input", + }, + { + label: "功率(KW)", + prop: "power", + type: "input", + }, + { + label: "零售价", + prop: "retailPrice", + type: "input", + }, + { + label: "品牌", + prop: "brand", + dicUrl: '/blade-system/dict/dictionary?code=device_brand', + search: true, + dataType: "number", + type: 'select', + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + { + label: "物料描述", + prop: "description", + type: "textarea", + }, + { + label: "申请人", + prop: "createUser", + slot: true, + type: "input", + }, + { + label: "审核人", + prop: "allowUser", + slot: true, + type: "input", + }, + { + label: "出入库时间", + prop: "createTime", + type: "input", + addDisplay: false, + editDisplay: false + }, + ] +} diff --git a/src/option/nh/alarmCode.js b/src/option/nh/alarmCode.js new file mode 100644 index 0000000..b356a42 --- /dev/null +++ b/src/option/nh/alarmCode.js @@ -0,0 +1,97 @@ +import search from "@/page/index/search.vue"; + +export default { + height:'auto', + calcHeight: 30, + tip: false, + searchShow: true, + searchMenuSpan: 6, + searchSpan: 4, + border: true, + index: true, + viewBtn: true, + selection: true, + dialogClickModal: false, + menuWidth: 250, + dialogWidth: 800, + gridBtn: false, + columnBtn: false, + searchShowBtn: false, + refreshBtn:false, + column: [ + { + label: '故障品牌', + prop: "brand", + dicUrl: '/blade-system/dict/dictionary?code=device_brand', + search: true, + type: 'select', + span: 24, + props: { + label: 'dictValue', + value: 'dictKey', + }, + rules: [ + { + required: true, + message: '请选择故障品牌', + trigger: 'blur', + }, + ], + }, + { + label: "故障主码", + prop: "code", + type: "input", + search: true, + rules: [ + { + required: true, + message: '请输入故障主码', + trigger: 'blur', + }, + ], + }, + // { + // label: "子代码", + // prop: "subCode", + // type: "input", + // }, + { + label: "故障原因", + prop: "reason", + span: 24, + type: "input", + search: true + }, + { + label: "故障内容", + prop: "content", + type: 'textarea', + span: 24, + minRows: 4 + }, + { + label: '处理建议', + width: 300, + // overHidden:true, + // showOverflowTooltip: true, + prop: 'suggestion', + type: 'textarea', + slot:true, + span: 24, + minRows: 4, + }, + { + label: '是否停用', + prop: "status", + dicUrl: '/blade-system/dict/dictionary?code=yes_no', + // search: true, + dataType: 'number', + type: 'switch', + props: { + label: 'dictValue', + value: 'dictKey', + } + } + ] +} diff --git a/src/option/nh/alarmInfo.js b/src/option/nh/alarmInfo.js new file mode 100644 index 0000000..c7dcde6 --- /dev/null +++ b/src/option/nh/alarmInfo.js @@ -0,0 +1,158 @@ +import search from "@/page/index/search.vue"; + +export default { + height:'auto', + calcHeight: 30, + tip: false, + searchShow: true, + searchMenuSpan: 4, + border: true, + index: false, + viewBtn: true, + selection: true, + menuWidth: 100, + dialogClickModal: false, + searchSpan: 4, + editBtn: false, + viewBtn:false, + delBtn:false, + gridBtn: false, + columnBtn: false, + searchShowBtn: false, + refreshBtn:false, + addBtn:false, + column: [ + { + label: "资方", + prop: "capitalName", + // searchOrder: 90, + search: true, + width: 210, + slot: true + }, + { + label: "业主姓名", + prop: "ownerName", + // searchOrder: 90, + search: true, + width: 90, + slot: true + }, + { + label: "电站编码", + prop: "stationCode", + searchOrder: 90, + search: true, + width: 150, + slot: true + }, + { + label: '告警类型', + prop: "type", + dicUrl: '/blade-system/dict/dictionary?code=alarm_type', + // search: true, + // type: "radio", + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + // { + // label: "故障码", + // prop: "malfunctionCode", + // search: true, + // searchOrder: 80, + // type: "input", + // }, + // { + // label: "故障来源", + // prop: "source", + // type: "input", + // }, + { + label: "告警名称", + prop: "alarmName", + search: true, + searchOrder: 90, + type: "input", + }, + { + label: "设备信息", + prop: "deviceName", + type: "input", + slot: true + }, + { + label: "设备SN", + prop: "sn", + search: true, + searchOrder: 70, + type: "input" + }, + { + label: '设备品牌', + prop: "source", + width: 90, + dicUrl: '/blade-system/dict/dictionary?code=device_brand', + search: true, + dataType: "number", + type: "select", + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + { + label: '状态', + prop: "status", + dicUrl: '/blade-system/dict/dictionary?code=alarm_info_status', + // search: true, + dataType: "number", + // type: "radio", + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + { + label: "告警时间", + prop: "startTime", + search: true, + type: 'date', + searchSpan: 6, + searchRange: true, + searchOrder: 100, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + width: 180, + }, + { + label: '关闭状态', + prop: "closeStatus", + dicUrl: '/blade-system/dict/dictionary?code=alarm_close_status', + // search: true, + dataType: "number", + type: 'select', + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + { + label: "运维单号", + prop: "orderNo", + width: 150, + search: true, + type: "input" + }, + { + label: "运维商", + prop: "omProviderName", + // searchOrder: 90, + search: true, + width: 90, + slot: true + }, + + ] +} diff --git a/src/option/nh/device.js b/src/option/nh/device.js new file mode 100644 index 0000000..a96a71d --- /dev/null +++ b/src/option/nh/device.js @@ -0,0 +1,72 @@ +export default { + height:'auto', + maxHeight: '500', + calcHeight: 30, + tip: false, + searchShow: true, + searchMenuSpan: 4, + searchSpan: 5, + border: true, + index: true, + viewBtn: false, + selection: false, + dialogClickModal: false, + menu: false, + addBtn: false, + // searchShowBtn: false, + refreshBtn: false, + gridBtn: false, + columnBtn: false, + column: [ + { + label: '状态', + prop: "status", + dicUrl: '/blade-system/dict/dictionary?code=device_status', + search: true, + type: 'select', + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + { + label: "设备名称", + prop: "name", + search: true + }, + { + label: "设备S/N", + prop: "sn", + search: true, + slot: true + }, + { + label: '设备类型', + prop: "type", + dicUrl: '/blade-system/dict/dictionary?code=device_type', + search: true, + type: 'select', + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + { + label: "设备条码", + prop: "barCode" + }, + { + label: '设备品牌', + prop: "brand", + dicUrl: '/blade-system/dict/dictionary?code=device_brand', + type: 'select', + span: 24, + props: { + label: 'dictValue', + value: 'dictKey', + }, + } + + + ] +} diff --git a/src/option/nh/inefficientSetting.js b/src/option/nh/inefficientSetting.js new file mode 100644 index 0000000..4b6c19d --- /dev/null +++ b/src/option/nh/inefficientSetting.js @@ -0,0 +1,218 @@ +import search from "@/page/index/search.vue"; + +export default { + height:'auto', + calcHeight: 30, + tip: false, + searchShow: true, + searchMenuSpan: 5, + searchSpan: 4, + menuFixed: true, + border: true, + index: true, + viewBtn: true, + addBtn: false, + selection: true, + dialogClickModal: false, + // menu: false, + // dialogWidth: 600, + gridBtn: false, + columnBtn: false, + searchShowBtn: false, + refreshBtn:false, + column: [ + { + label: "方案类型", + prop: "planType", + search: true, + dataType: 'number', + dicUrl: '/blade-system/dict/dictionary?code=setting_plan_type', + type: 'select', + editDisabled: true, + props: { + label: 'dictValue', + value: 'dictKey', + }, + }, + { + label: "备案方式", + prop: "recordType", + dataType: 'number', + editDisabled: true, + search: true, + dicUrl: '/blade-system/dict/dictionary?code=setting_record_type', + type: 'select', + props: { + label: 'dictValue', + value: 'dictKey', + }, + }, + { + label: "客户类型", + prop: "customerType", + dataType: 'number', + dicUrl: '/blade-system/dict/dictionary?code=setting_customer_type', + type: 'select', + props: { + label: 'dictValue', + value: 'dictKey', + }, + }, + { + label: "省份", + prop: "province", + search: true, + dicUrl: '/blade-system/region/lazy-tree?parentCode=00', + // cascader: ['citys'], + type: 'select', + props: { + label: 'title', + value: 'title', + }, + }, + { + label: "城市", + prop: "citys", + search: true, + slot: true, + dicUrl: `/blade-system/region/selectCityByProvince?provinceName={{province}}`, + type: 'select', + multiple: true, + searchSlot: true, + limit: 3, + props: { + label: 'name', + value: 'name', + }, + }, + { + label: "年份", + prop: "year", + type: 'year', + format: 'YYYY', + valueFormat: 'YYYY', + }, + { + label: "1月", + prop: "guardHourM1", + type: "input", + hide: true, + width:70, + span: 6, + }, + { + label: "2月", + prop: "guardHourM2", + type: "input", + hide: true, + width:70, + span: 6, + }, + { + label: "3月", + prop: "guardHourM3", + type: "input", + hide: true, + width:70, + span: 6, + }, + { + label: "4月", + prop: "guardHourM4", + type: "input", + hide: true, + width:70, + span: 6, + }, + { + label: "5月", + prop: "guardHourM5", + type: "input", + hide: true, + width:70, + span: 6, + }, + { + label: "6月", + prop: "guardHourM6", + type: "input", + hide: true, + width:70, + span: 6, + }, + { + label: "7月", + prop: "guardHourM7", + type: "input", + hide: true, + width:70, + span: 6, + }, + { + label: "8月", + prop: "guardHourM8", + type: "input", + hide: true, + width:70, + span: 6, + }, + { + label: "9月", + prop: "guardHourM9", + type: "input", + hide: true, + width:70, + span: 6, + }, + { + label: "10月", + prop: "guardHourM10", + type: "input", + hide: true, + width:70, + span: 6, + }, + { + label: "11月", + prop: "guardHourM11", + type: "input", + hide: true, + width:70, + span: 6, + }, + { + label: "12月", + prop: "guardHourM12", + type: "input", + hide: true, + width:70, + span: 6, + }, + { + label: "合计", + prop: "guardHourTotal", + type: "input", + hide: true, + addDisplay: false, + editDisplay: false + }, + { + label: "创建时间", + prop: "createTime", + type: "input", + width: 105, + addDisplay: false, + editDisplay: false + }, + { + label: "最新修改时间", + prop: "updateTime", + type: "input", + width: 105, + addDisplay: false, + editDisplay: false + }, + + + ] +} diff --git a/src/option/nh/inverterData.js b/src/option/nh/inverterData.js new file mode 100644 index 0000000..8923a3e --- /dev/null +++ b/src/option/nh/inverterData.js @@ -0,0 +1,123 @@ +export default { + height:'auto', + calcHeight: 30, + tip: false, + searchShow: true, + searchMenuSpan: 6, + border: true, + index: true, + viewBtn: true, + selection: true, + dialogClickModal: false, + column: [ + { + label: "编号", + prop: "id", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "设备ID", + prop: "deviceId", + type: "input", + }, + { + label: "输出功率", + prop: "pac", + type: "input", + }, + { + label: "发电小时数", + prop: "pwHour", + type: "input", + }, + { + label: "实际安装功率", + prop: "realPower", + type: "input", + }, + { + label: "装机容量", + prop: "power", + type: "input", + }, + { + label: "当日发电量", + prop: "etd", + type: "input", + }, + { + label: "当月发电量", + prop: "etm", + type: "input", + }, + { + label: "累计发电量", + prop: "eto", + type: "input", + }, + { + label: "当年发电量", + prop: "ety", + type: "input", + }, + { + label: "直流发电功率", + prop: "dcPac", + type: "input", + }, + { + label: "采集器SN", + prop: "collectorSn", + type: "input", + }, + { + label: "逆变器无功功率", + prop: "reactivePower", + type: "input", + }, + { + label: "逆变器无功功率单位", + prop: "reactivePowerStr", + type: "input", + }, + { + label: "逆变器视在功率", + prop: "apparentPower", + type: "input", + }, + { + label: "逆变器视在功率单位", + prop: "apparentPowerStr", + type: "input", + }, + { + label: "电网频率hz", + prop: "fac", + type: "input", + }, + { + label: "pv直流电压存贮格式如下(220:10|220:10)", + prop: "pvModules", + type: "input", + }, + { + label: "mppt存贮格式如下(220:10|220:10)", + prop: "mpptModules", + type: "input", + }, + { + label: "uvw(220:10:55|220:10:55|220:10:55)", + prop: "uvwModules", + type: "input", + }, + { + label: "温度", + prop: "temperature", + type: "input", + }, + ] +} diff --git a/src/option/nh/monitorEntryDailyStat.js b/src/option/nh/monitorEntryDailyStat.js new file mode 100644 index 0000000..f4a1f3e --- /dev/null +++ b/src/option/nh/monitorEntryDailyStat.js @@ -0,0 +1,306 @@ +export default { + height:'auto', + calcHeight: 30, + tip: false, + searchShow: true, + searchMenuSpan: 6, + border: true, + index: true, + viewBtn: true, + selection: true, + dialogClickModal: false, + column: [ + { + label: "主键", + prop: "id", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "创建时间", + prop: "createTime", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "数据采集时间", + prop: "syncTime", + type: "input", + }, + { + label: "更新时间", + prop: "updateTime", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "0.锦浪 1,艾士唯,2:goodwe", + prop: "sysType", + type: "input", + }, + { + label: "日期", + prop: "statDate", + type: "input", + }, + { + label: "外部电站id", + prop: "outStationId", + type: "input", + }, + { + label: "", + prop: "stationId", + type: "input", + }, + { + label: "0时电量kwh", + prop: "h24", + type: "input", + }, + { + label: "1时电量kwh", + prop: "h01", + type: "input", + }, + { + label: "2时电量kwh", + prop: "h02", + type: "input", + }, + { + label: "3时电量kwh", + prop: "h03", + type: "input", + }, + { + label: "4时电量kwh", + prop: "h04", + type: "input", + }, + { + label: "5时电量kwh", + prop: "h05", + type: "input", + }, + { + label: "6时电量kwh", + prop: "h06", + type: "input", + }, + { + label: "7时电量kwh", + prop: "h07", + type: "input", + }, + { + label: "8时电量kwh", + prop: "h08", + type: "input", + }, + { + label: "9时电量kwh", + prop: "h09", + type: "input", + }, + { + label: "10时电量kwh", + prop: "h10", + type: "input", + }, + { + label: "11时电量kwh", + prop: "h11", + type: "input", + }, + { + label: "12时电量kwh", + prop: "h12", + type: "input", + }, + { + label: "13时电量kwh", + prop: "h13", + type: "input", + }, + { + label: "14时电量kwh", + prop: "h14", + type: "input", + }, + { + label: "15时电量kwh", + prop: "h15", + type: "input", + }, + { + label: "16时电量kwh", + prop: "h16", + type: "input", + }, + { + label: "17时电量kwh", + prop: "h17", + type: "input", + }, + { + label: "18时电量kwh", + prop: "h18", + type: "input", + }, + { + label: "19时电量kwh", + prop: "h19", + type: "input", + }, + { + label: "20时电量kwh", + prop: "h20", + type: "input", + }, + { + label: "21时电量kwh", + prop: "h21", + type: "input", + }, + { + label: "22时电量kwh", + prop: "h22", + type: "input", + }, + { + label: "23时电量kwh", + prop: "h23", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl00", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl01", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl02", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl03", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl04", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl05", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl06", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl07", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl08", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl09", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl10", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl11", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl12", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl13", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl14", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl15", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl16", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl17", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl18", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl19", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl20", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl21", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl22", + type: "input", + }, + { + label: "00交流功率", + prop: "jlgl23", + type: "input", + }, + ] +} diff --git a/src/option/nh/monitorEntryMonthStat.js b/src/option/nh/monitorEntryMonthStat.js new file mode 100644 index 0000000..15f89e3 --- /dev/null +++ b/src/option/nh/monitorEntryMonthStat.js @@ -0,0 +1,61 @@ +export default { + height:'auto', + calcHeight: 30, + tip: false, + searchShow: true, + searchMenuSpan: 6, + border: true, + index: true, + viewBtn: true, + selection: true, + dialogClickModal: false, + column: [ + { + label: "", + prop: "id", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "电站id", + prop: "outStationId", + type: "input", + }, + { + label: "统计日期", + prop: "statDate", + type: "input", + }, + { + label: "", + prop: "createTime", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "", + prop: "updateTime", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "能量 kw", + prop: "energy", + type: "input", + }, + { + label: "", + prop: "stationId", + type: "input", + }, + ] +} diff --git a/src/option/nh/monitorEntryStat.js b/src/option/nh/monitorEntryStat.js new file mode 100644 index 0000000..fee1578 --- /dev/null +++ b/src/option/nh/monitorEntryStat.js @@ -0,0 +1,106 @@ +export default { + height:'auto', + calcHeight: 30, + tip: false, + searchShow: true, + searchMenuSpan: 6, + border: true, + index: true, + viewBtn: true, + selection: true, + dialogClickModal: false, + column: [ + { + label: "", + prop: "id", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "外部系统电站id", + prop: "outStationId", + type: "input", + }, + { + label: "系统电站id", + prop: "stationId", + type: "input", + }, + { + label: "电站名称", + prop: "stationName", + type: "input", + }, + { + label: "装机容量kWp", + prop: "capacity", + type: "input", + }, + { + label: "功率", + prop: "power", + type: "input", + }, + { + label: "0.锦浪 1,爱士惟,2:goodwe,3:古瑞瓦特", + prop: "type", + type: "input", + }, + { + label: "当日能量kw", + prop: "etd", + type: "input", + }, + { + label: "当月能量kw", + prop: "etm", + type: "input", + }, + { + label: "当年能量kw", + prop: "ety", + type: "input", + }, + { + label: "总能量kw", + prop: "eta", + type: "input", + }, + { + label: "满发小时数(应该是当天的满发小时数)", + prop: "fullHour", + type: "input", + }, + { + label: "电站状态:1 = 在线,2 = 离线,3 = 报警", + prop: "state", + type: "input", + }, + { + label: "同步采集时间,并非当前时间,可能是之前的时间", + prop: "syncTime", + type: "input", + }, + { + label: "更新时间", + prop: "updateTime", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "创建时间", + prop: "createTime", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + ] +} diff --git a/src/option/nh/monitorEntryYearStat.js b/src/option/nh/monitorEntryYearStat.js new file mode 100644 index 0000000..980d698 --- /dev/null +++ b/src/option/nh/monitorEntryYearStat.js @@ -0,0 +1,76 @@ +export default { + height:'auto', + calcHeight: 30, + tip: false, + searchShow: true, + searchMenuSpan: 6, + border: true, + index: true, + viewBtn: true, + selection: true, + dialogClickModal: false, + column: [ + { + label: "主键", + prop: "id", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "创建时间", + prop: "createTime", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "同步采集时间", + prop: "syncTime", + type: "input", + }, + { + label: "更新时间", + prop: "updateTime", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "0.锦浪 1,艾士唯,2:goodwe", + prop: "sysType", + type: "input", + }, + { + label: "外部电站id", + prop: "outStationId", + type: "input", + }, + { + label: "年", + prop: "year", + type: "input", + }, + { + label: "月", + prop: "month", + type: "input", + }, + { + label: "能量kw", + prop: "energy", + type: "input", + }, + { + label: "", + prop: "stationId", + type: "input", + }, + ] +} diff --git a/src/option/nh/monitorInverterStat.js b/src/option/nh/monitorInverterStat.js new file mode 100644 index 0000000..1e7b8f4 --- /dev/null +++ b/src/option/nh/monitorInverterStat.js @@ -0,0 +1,196 @@ +export default { + height:'auto', + calcHeight: 30, + tip: false, + searchShow: true, + searchMenuSpan: 6, + border: true, + index: true, + viewBtn: true, + selection: true, + dialogClickModal: false, + column: [ + { + label: "", + prop: "id", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "逆变器sn", + prop: "sn", + type: "input", + }, + { + label: "", + prop: "inverterId", + type: "input", + }, + { + label: "外部逆变器id", + prop: "outInverterId", + type: "input", + }, + { + label: "", + prop: "stationId", + type: "input", + }, + { + label: "外部电站id", + prop: "outStationId", + type: "input", + }, + { + label: "当日发电量", + prop: "etd", + type: "input", + }, + { + label: "当月发电量", + prop: "etm", + type: "input", + }, + { + label: "累计发电量", + prop: "eto", + type: "input", + }, + { + label: "当年发电量", + prop: "ety", + type: "input", + }, + { + label: "创建时间", + prop: "createTime", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "更新时间", + prop: "syncTime", + type: "input", + }, + { + label: "实时功率(交流)", + prop: "pac", + type: "input", + }, + { + label: "发电小时数?(满发?)", + prop: "pwHour", + type: "input", + }, + { + label: "实际安装功率?", + prop: "realPower", + type: "input", + }, + { + label: "装机容量", + prop: "power", + type: "input", + }, + { + label: "1.在线 2.离线,3.报警,4.缓存(这是aiswei独有)", + prop: "state", + type: "input", + }, + { + label: "满发小时数", + prop: "fullHour", + type: "input", + }, + { + label: "累计满发小时数...取不到", + prop: "totalFullHour", + type: "input", + }, + { + label: "质保结束时间", + prop: "updateShelfEndTime", + type: "input", + }, + { + label: "直流功率,单位va", + prop: "dcPac", + type: "input", + }, + { + label: "更新时间", + prop: "updateTime", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "采集器sn", + prop: "collectorSn", + type: "input", + }, + { + label: "型号", + prop: "model", + type: "input", + }, + { + label: "电网频率hz", + prop: "fac", + type: "input", + }, + { + label: "逆变器温度", + prop: "temperature", + type: "input", + }, + { + label: "逆变器名称", + prop: "name", + type: "input", + }, + { + label: "逆变器无功功率", + prop: "reactivePower", + type: "input", + }, + { + label: "逆变器视在功率", + prop: "apparentPower", + type: "input", + }, + { + label: "产品型号", + prop: "productModel", + type: "input", + }, + { + label: "逆变器无功功率单位", + prop: "reactivePowerStr", + type: "input", + }, + { + label: "逆变器视在功率单位", + prop: "apparentPowerStr", + type: "input", + }, + { + label: "满发小时数单位", + prop: "fullHourStr", + type: "input", + }, + { + label: "0:锦狼,1.aiswei 2.goodwe", + prop: "sysType", + type: "input", + }, + ] +} diff --git a/src/option/nh/powerStation.js b/src/option/nh/powerStation.js new file mode 100644 index 0000000..522424d --- /dev/null +++ b/src/option/nh/powerStation.js @@ -0,0 +1,176 @@ +import search from "@/page/index/search.vue"; +import { dataType } from "element-plus/es/components/table-v2/src/common"; + +export default { + height:'auto', + calcHeight: 30, + tip: true, + searchShow: true, + searchMenuSpan: 4, + border: true, + index: false, + viewBtn: true, + selection: true, + searchSpan: 5, + searchLabelWidth: 100, + dialogClickModal: false, + delBtn: false, + editBtn: false, + menuFixed: true, + viewBtn: false, + addBtn: false, + gridBtn: false, + columnBtn: false, + searchShowBtn: false, + refreshBtn:false, + menuWidth: 100, + column: [ + { + label: "主键", + prop: "id", + type: "input", + addDisplay: false, + editDisplay: false, + viewDisplay: false, + hide: true, + }, + { + label: "电站编号", + prop: "stationCode", + type: "input", + slot: true, + searchOrder: 100, + width: 150, + search: true, + }, + { + label: '状态', + prop: "status", + dicUrl: '/blade-system/dict/dictionary?code=power_station_status', + // search: true, + // type: 'select', + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + { + label: '品牌', + prop: "brand", + dicUrl: '/blade-system/dict/dictionary?code=device_brand', + search: true, + dataType: "number", + type: 'select', + props: { + label: 'dictValue', + value: 'dictKey', + } + }, + { + label: "业主名称", + prop: "ownerName", + type: "input", + searchOrder: 80, + search: true, + }, + { + label: "业主电话", + prop: "ownerPhone", + type: "input", + hide: true, + }, + { + label: "省", + prop: "province", + type: "input", + hide: true, + }, + { + label: "市", + prop: "city", + type: "input", + hide: true, + }, + { + label: "区", + prop: "district", + type: "input", + hide: true, + }, + { + label: "详细地址", + prop: "address", + searchOrder: 70, + slot: true, + width: 250, + search: true + }, + { + label: "安装容量(kW)", + prop: "actualCapacity", + align: "center", + width: 90, + type: "input", + }, + { + label: "日电量(kwh)", + prop: "etd", + width: 90, + align: "center", + slot: true, + }, + { + label: "月电量(kwh)", + prop: "etm", + width: 90, + align: "center", + slot: true, + }, + { + label: "年电量(kwh)", + prop: "ety", + width: 90, + align: "center", + slot: true, + }, + { + label: "累计电量(kwh)", + prop: "eta", + width: 90, + align: "center", + slot: true, + }, + { + label: "进件序号", + prop: "applyNo", + type: "input", + searchOrder: 90, + search: true + }, + { + label: "资方", + prop: "capitalName", + searchOrder: 100, + search: true, + }, + { + label: "运维服务商", + prop: "omProviderName", + type: "input", + search: true, + searchOrder: 110, + }, + { + label: "离线时长", + prop: "offlineDuring", + search: true, + slot: true, + }, + { + label: "异常时长", + prop: "errorDuring", + search: true, + slot: true, + }, + ] +} diff --git a/src/option/nh/powerStationInefficient.js b/src/option/nh/powerStationInefficient.js new file mode 100644 index 0000000..227c777 --- /dev/null +++ b/src/option/nh/powerStationInefficient.js @@ -0,0 +1,111 @@ +import search from '@/page/index/search.vue'; + +export default { + height: 'auto', + calcHeight: 30, + tip: false, + searchShow: true, + searchMenuSpan: 6, + border: true, + index: true, + viewBtn: true, + selection: true, + searchLabelWidth: 120, + // searchSpan: 5, + dialogClickModal: false, + menu: false, + addBtn: false, + gridBtn: false, + columnBtn: false, + searchShowBtn: false, + refreshBtn: false, + column: [ + { + label: '资方名称', + prop: 'capitalName', + search: true, + searchOrder: 100, + type: 'input', + }, + { + label: '电站编码', + prop: 'stationCode', + type: 'input', + searchOrder: 90, + search: true, + }, + { + label: '安装方式', + prop: 'installType', + type: 'input', + }, + { + label: '周发电小时(h)', + prop: 'mgHour', + type: 'input', + }, + { + label: '周平均发电小时(h)', + prop: 'avgHour', + type: 'input', + }, + { + label: '保发小时(h)', + prop: 'guardHour', + type: 'input', + }, + { + label: '保发比率', + prop: 'guardRate', + // searchSpan: 18, + search: true, + searchOrder: 80, + searchSlot: true, + slot: true, + type: 'input', + }, + { + label: '全年完成率', + prop: 'finishRate', + slot: true, + type: 'input', + }, + { + label: '安装容量(KW)', + prop: 'capacity', + type: 'input', + }, + { + label: '当月电量(KWh)', + prop: 'otm', + type: 'input', + }, + { + label: '业主名称', + prop: 'ownerName', + type: 'input', + }, + { + label: '安装地址', + prop: 'installAddress', + search: true, + searchOrder: 60, + type: 'input', + }, + { + label: '运维服务商', + prop: 'omProviderName', + search: true, + searchOrder: 50, + type: 'input', + }, + { + label: '统计时间', + prop: 'createTime' + }, + { + label: '统计时间', + prop: 'during', + }, + ], +}; diff --git a/src/option/nh/powerStationInefficientConfirm.js b/src/option/nh/powerStationInefficientConfirm.js new file mode 100644 index 0000000..9c4a28f --- /dev/null +++ b/src/option/nh/powerStationInefficientConfirm.js @@ -0,0 +1,115 @@ +import search from '@/page/index/search.vue'; + +export default { + height: 'auto', + calcHeight: 30, + tip: false, + searchShow: true, + searchMenuSpan: 6, + border: true, + index: true, + viewBtn: true, + selection: true, + searchLabelWidth: 120, + // searchSpan: 5, + dialogClickModal: false, + menu: false, + addBtn: false, + gridBtn: false, + columnBtn: false, + searchShowBtn: false, + refreshBtn: false, + column: [ + { + label: '资方名称', + prop: 'capitalName', + search: true, + searchOrder: 100, + type: 'input', + }, + { + label: '电站编码', + prop: 'stationCode', + type: 'input', + searchOrder: 90, + search: true, + }, + { + label: '安装方式', + prop: 'installType', + type: 'input', + }, + { + label: '周发电小时(h)', + prop: 'mgHour', + type: 'input', + }, + { + label: '周平均发电小时(h)', + prop: 'avgHour', + type: 'input', + }, + { + label: '保发小时(h)', + prop: 'guardHour', + type: 'input', + }, + { + label: '保发比率', + prop: 'guardRate', + // searchSpan: 18, + search: true, + searchOrder: 80, + searchSlot: true, + slot: true, + type: 'input', + }, + { + label: '全年完成率', + prop: 'finishRate', + slot: true, + type: 'input', + }, + { + label: '安装容量(KW)', + prop: 'capacity', + type: 'input', + }, + { + label: '当月电量(KWh)', + prop: 'otm', + type: 'input', + }, + { + label: '业主名称', + prop: 'ownerName', + type: 'input', + }, + { + label: '安装地址', + prop: 'installAddress', + search: true, + searchOrder: 60, + type: 'input', + }, + { + label: '运维服务商', + prop: 'omProviderName', + search: true, + searchOrder: 50, + type: 'input', + }, + { + label: '统计时间', + prop: 'createTime' + }, + { + label: '统计时间', + prop: 'during', + }, + { + label: '备注', + prop: 'remarks', + }, + ], +}; diff --git a/src/option/order/order.js b/src/option/order/order.js new file mode 100644 index 0000000..6dd62c2 --- /dev/null +++ b/src/option/order/order.js @@ -0,0 +1,722 @@ +var vm = null; +export const sendThis = ( _this )=> { + vm = _this; + let orderStatus = vm.orderStatus, deptId=vm.deptId; + var _option = { + height: 'auto', + calcHeight: 32, + selection: true, + index: true, + indexLabel: '序号', + indexWidth: 60, + menu:false, + menuFixed: true, + menuWidth: 200, + addBtn:false, + border: true, + searchMenuSpan:6, + searchMenuPosition: "left", + searchGutter:0, + searchLabelWidth:90, + column: [{ + label: '服务商名称', + prop: 'siteName', + minWidth: 200, + search: (deptId == '3' || deptId == '5') ? false : true, + display:false, + fixed:true, + hide:(deptId == '3' || deptId == '5') ? true : false, + }, + { + label: '工单编号', + prop: 'number', + minWidth: 180, + search: true, + display:false, + fixed:true, + }, + { + label: '工单状态', + prop: 'status', + minWidth: 100, + search: (deptId == '3' || deptId == '5') || orderStatus == '1' || orderStatus == '2' || orderStatus == '4' || orderStatus == '5' ? false : true, + display:false, + type: 'select', + dicUrl: '/blade-system/dict/dictionary?code=order_status', + props: { + label: 'dictValue', + value: 'dictKey', + }, + hide:(deptId == '3' || deptId == '5') || orderStatus == '1' || orderStatus == '2' || orderStatus == '4' || orderStatus == '5' ? true : false, + }, + { + label: '工单状态', + prop: 'siteStatus', + minWidth: 120, + search: ((deptId == '3' || deptId == '5') && orderStatus != '1' && orderStatus != '4' && orderStatus != '5') || orderStatus == '2' ? true : false, + display:false, + type: 'select', + dicUrl: '/blade-system/dict/dictionary?code=site_order_status', + props: { + label: 'dictValue', + value: 'dictKey', + }, + hide:((deptId == '3' || deptId == '5') && orderStatus != '1' && orderStatus != '4' && orderStatus != '5') || orderStatus == '2' ? false : true, + dicFormatter:(res)=>{ + if(orderStatus == '2'){ + let data = res.data.filter(itm=> itm.dictKey == '1' || itm.dictKey == '3' || itm.dictKey == '4' || itm.dictKey == '5' || itm.dictKey == '6'); + return data; + }else{ + return res.data; + } + } + }, + { + label: '过程反馈', + prop: 'latestProcess', + minWidth: 200, + hide:orderStatus == '2' || orderStatus == '4' ? false : true + }, + { + label: '电站编码', + prop: 'powerStationCode', + minWidth: 200, + search: true, + display:false + }, + { + label: '业主姓名', + prop: 'customerName', + minWidth: 100, + search: true, + display:false + }, + { + label: '联系方式', + prop: 'customerMobile', + minWidth: 120, + search: true, + display:false + }, + { + label: '地址', + prop: 'customerAddress', + minWidth: 250, + search: true, + display:false + }, + { + label: '保修类型', + prop: 'warrantyType', + minWidth: 100, + search: true, + display:false, + type: 'select', + dicUrl: '/blade-system/dict/dictionary?code=warranty_type', + props: { + label: 'dictValue', + value: 'dictKey', + }, + }, + { + label: '服务类型', + prop: 'serviceType', + minWidth: 100, + search: true, + display:false, + type: 'select', + dicUrl: '/sf/operationServiceType/list', + props: { + label: 'name', + value: 'id', + }, + }, + { + label: '服务措施', + prop: 'serviceMeasures', + minWidth: 200, + search: true, + display:false, + type: 'select', + dicUrl: '/sf/operationServiceMeasures/list', + props: { + label: 'serviceMeasures', + value: 'id', + }, + dicFormatter:(res)=>{ + return res.data.records + } + }, + { + label: '设备品牌', + prop: 'applianceBrand', + minWidth: 100, + display:false, + }, + { + label: '设备型号', + prop: 'applianceModel', + minWidth: 100, + display:false + }, + { + label: '故障设备', + prop: '', + minWidth: 200, + display:false + }, + { + label: '故障描述', + prop: 'remarks', + minWidth: 200, + display:false + }, + { + label: '信息来源', + prop: 'orderType', + minWidth: 120, + display:false, + type: 'select', + dicUrl: '/blade-system/dict/dictionary?code=order_type', + props: { + label: 'dictValue', + value: 'dictKey', + }, + }, + { + label: '代理商', + prop: '', + minWidth: 200, + display:false + }, + { + label: '服务工程师', + prop: 'employeName', + minWidth: 120, + display:false, + search: orderStatus == '1' ? false : true, + hide: orderStatus == '1' ? true : false + }, + { + label: '创建时间', + prop: 'createTime', + minWidth: 160, + search: true, + display:false, + type: 'date', + format: 'YYYY-MM-DD', + valueFormat: 'YYYY-MM-DD', + searchSpan: 6, + searchRange: true, + }, + { + label: '预约时间', + prop: 'promiseTime', + minWidth: 160, + display:false, + }, + { + label: '时间要求', + prop: 'promiseLimit', + minWidth: 160, + display:false, + type: 'select', + dicUrl: '/blade-system/dict/dictionary?code=time_requirements', + props: { + label: 'dictValue', + value: 'dictKey', + }, + }, + { + label: '派工时间', + prop: 'dispatchTime', + minWidth: 160, + search: (deptId == '3' || deptId == '5') || orderStatus == '1' || orderStatus == '2' ? false : true, + display:false, + type: "date", + format: 'YYYY-MM-DD', + valueFormat: 'YYYY-MM-DD', + searchSpan: 6, + searchRange: true, + hide:(deptId == '3' || deptId == '5') || orderStatus == '1' || orderStatus == '2' ? true : false, + }, + { + label: '派工时间', + prop: 'siteDispatchTime', + minWidth: 160, + search: (deptId == '3' || deptId == '5') && orderStatus != '1' && orderStatus != '2' ? true : false, + display:false, + hide:true, + type: "date", + format: 'YYYY-MM-DD', + valueFormat: 'YYYY-MM-DD', + searchSpan: 6, + searchRange: true, + hide:(deptId == '3' || deptId == '5') && orderStatus != '1' && orderStatus != '2' ? false : true, + }, + { + label: '接单时间', + prop: 'processTime', + minWidth: 160, + display:false, + hide:(deptId == '3' || deptId == '5') || orderStatus == '1' || orderStatus == '2' ? true : false, + }, + { + label: '接单时间', + prop: 'siteProcessTime', + minWidth: 160, + display:false, + hide:(deptId == '3' || deptId == '5') && orderStatus != '1' || orderStatus != '2' ? false : true, + }, + { + label: '完工时间', + prop: 'endTime', + minWidth: 160, + search: orderStatus == '1' || orderStatus == '2' ? false : true, + hide: orderStatus == '1' || orderStatus == '2' ? true : false, + display:false, + type: "date", + format: 'YYYY-MM-DD', + valueFormat: 'YYYY-MM-DD', + searchSpan: 6, + searchRange: true, + }, + { + label:'设备类型', + prop: 'applianceCategory', + type: 'select', + dicUrl: '/blade-system/dict/dictionary?code=device_types', + props: { + label: 'dictValue', + value: 'dictKey', + }, + search: true, + hide:true, + }, + ], + } + vm.option = _option; + + var _formOption = { + labelWidth:100, + menuPosition:'right', + gutter:10, + menuBtn:false, + detail: vm.title == '详情' ? true : false, + group:[{ + label:'业主信息', + arrow: false, + // display: vm.tabActive == 'second' ? false : true, + column: [{ + label: '业主姓名', + prop: 'customerName', + span:8, + rules: [ + { + required: true, + message: '请输入', + trigger: 'blur', + }, + ], + }, + { + label: '联系方式1', + prop: 'customerMobile', + span:8, + maxlength:11, + rules: [ + { + required: true, + message: '请输入', + trigger: 'blur', + }, + ], + }, + { + label: '联系方式2', + prop: 'customerTelephone', + span:8 + }, + { + label: '省', + prop: 'province', + display:false, + }, + { + label: '市', + prop: 'city', + display:false, + }, + { + label: '区', + prop: 'area', + display:false, + }, + { + label: '安装地址', + prop: 'provinceCode', + placeholder:'请选择省', + span:7, + type: 'select', + props: { + label: 'name', + value: 'code', + }, + cascader: ['cityCode'], + dicUrl: '/blade-system/region/select', + rules: [{ + required: true, + message: '请选择', + trigger: 'change', + }], + change:(res)=>{ + vm.formData.provinceCode = res.value; + if(res&&res.item&&res.item.name){ + vm.formData.province = res.item.name + }else{ + // vm.formData.province = '' + } + }, + }, + { + label: '', + prop: 'cityCode', + placeholder:'请选择市', + type: 'select', + props: { + label: 'name', + value: 'code', + }, + cascader: ['areaCode'], + dicFlag: false, + dicUrl: '/blade-system/region/select?code={{provinceCode}}', + span:5, + labelWidth: 0, + rules: [{ + required: true, + message: '请选择', + trigger: 'change', + }], + change:(res)=>{ + vm.formData.cityCode = res.value; + if(res&&res.item&&res.item.name){ + vm.formData.city = res.item.name + }else{ + // vm.formData.city = '' + } + }, + }, + { + label: '', + prop: 'areaCode', + placeholder:'请选择区', + type: 'select', + props: { + label: 'name', + value: 'code', + }, + dicFlag: false, + dicUrl: '/blade-system/region/select?code={{cityCode}}', + span:5, + labelWidth: 0, + rules: [{ + required: true, + message: '请选择', + trigger: 'change', + }], + change:(res)=>{ + vm.formData.areaCode = res.value; + if(res&&res.item&&res.item.name){ + vm.formData.area = res.item.name + }else{ + // vm.formData.area = '' + } + }, + }, + { + label: '', + prop: 'customerAddress', + placeholder:'请输入详细地址', + span:7, + labelWidth: 0, + rules: [{ + required: true, + message: '请输入', + trigger: 'blur', + }], + }, + ] + }, + { + label:'工单信息', + arrow: false, + // display: vm.tabActive == 'second' ? false : true, + column:[ + { + label:'保修类型', + prop: 'warrantyType', + span:8, + type: 'select', + dicUrl: '/blade-system/dict/dictionary?code=warranty_type', + props: { + label: 'dictValue', + value: 'dictKey', + }, + rules: [ + { + required: true, + message: '请选择', + trigger: 'change', + }, + ], + }, + { + label:'服务类型', + prop: 'serviceType', + span:8, + type: 'select', + dicUrl: '/sf/operationServiceType/list', + props: { + label: 'name', + value: 'id', + }, + rules: [ + { + required: true, + message: '请选择', + trigger: 'change', + }, + ], + }, + { + label:'服务措施', + prop: 'serviceMeasures', + span:8, + type: 'select', + dicUrl: '/sf/operationServiceMeasures/list', + props: { + label: 'serviceMeasures', + value: 'id', + }, + dicFormatter:(res)=>{ + return res.data.records + } + }, + ] + }, + { + label:'电站信息', + arrow: false, + // display: vm.tabActive == 'second' ? false : true, + column:[ + { + label:'电站编码', + prop: 'powerStationCode', + span:8, + }, + { + label:'设备类型', + prop: 'applianceCategory', + span:8, + type: 'select', + dicUrl: '/blade-system/dict/dictionary?code=device_types', + props: { + label: 'dictValue', + value: 'dictKey', + }, + rules: [ + { + required: true, + message: '请选择', + trigger: 'change', + }, + ], + }, + { + label:'设备品牌', + prop: 'applianceBrand', + span:8, + type: 'select', + display: vm.title == '详情' ? false : true, + dicUrl: '/sf/operationOrderCallback/getAllBrand', + props: { + label: 'name', + value: 'name', + }, + dicFormatter:(res)=>{ + return res.data + } + }, + { + label:'设备S/N', + prop: 'applianceBarcode', + span:8, + display: vm.title == '详情' ? false : true, + }, + { + label:'代理商', + prop: 'agentName', + span:8, + display: vm.title != '详情' ? false : true, + // type: 'select', + // dicUrl: '/sf/operationSite/list', + // props: { + // label: 'name', + // value: 'id', + // }, + // dicFormatter:(res)=>{ + // return res.data.records + // } + }, + { + label:'报修时间', + prop: 'repairTime', + span:8, + type: "datetime", + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + rules: [ + { + required: true, + message: '请选择', + trigger: 'change', + }, + ], + }, + { + label:'预约时间', + prop: 'promiseTime', + span:8, + type: 'date', + format: 'YYYY-MM-DD', + valueFormat: 'YYYY-MM-DD', + disabledDate (time) { + return time.getTime() < Date.now(); + } + }, + { + label:'时间要求', + prop: 'promiseLimit', + span:8, + type: 'select', + dicUrl: '/blade-system/dict/dictionary?code=time_requirements', + props: { + label: 'dictValue', + value: 'dictKey', + }, + }, + // { + // label:'订单来源', + // prop: 'orderType', + // span:8, + // type: 'select', + // dicUrl: '/blade-system/dict/dictionary?code=order_type', + // props: { + // label: 'dictValue', + // value: 'dictKey', + // }, + // rules: [ + // { + // required: true, + // message: '请选择', + // trigger: 'change', + // }, + // ], + // }, + { + label:'故障描述', + prop: 'remarks', + span:24, + type: 'textarea', + rules: [ + { + required: true, + message: '请输入', + trigger: 'blur', + }, + ], + }, + { + label: '故障图片', + prop: 'bdImgs', + span:24, + type: 'upload', + listType: 'picture-card', + multiple:true, + limit:3, + dataType: 'string', + action: '/blade-resource/oss/endpoint/put-file?code=aliyun', + propsHttp: { + res: 'data', + url: 'link', + }, + tip: '最多上传3张图片', + }, + ] + }, + { + label:'服务进程', + arrow: false, + display: vm.title != '详情' || (deptId == '3' || deptId == '5') ? false : true, + column:[ + { + slot:true, + labelWidth:0, + prop: 'serviceProcess', + span:24 + } + ] + }, + { + label:'服务信息', + arrow: false, + display: vm.title != '详情' ? false : true, + column:[ + { + label: '服务工程师', + prop: 'employeName', + span:8 + }, + { + label: '服务状态', + prop: 'siteStatus', + span:16, + type: 'select', + dicUrl: '/blade-system/dict/dictionary?code=site_order_status', + props: { + label: 'dictValue', + value: 'dictKey', + }, + }, + { + label: '过程反馈', + prop: 'feedback', + span:24, + type: 'textarea', + bind: 'feedbackEntity.feedback', + }, + { + label: '反馈图片', + // prop: 'feedbackImg', + prop: 'feedImgs', + span:24, + type: 'upload', + listType: 'picture-card', + // bind: 'feedbackEntity.feedbackImg' + // multiple:true, + // limit:3, + // dataType: 'string', + // action: '/blade-resource/oss/endpoint/put-file?code=aliyun', + // propsHttp: { + // res: 'data', + // url: 'link', + // }, + // tip: '最多上传3张图片', + }, + ] + }, + ] + } + vm.formOption = _formOption; +} + diff --git a/src/option/system/dict.js b/src/option/system/dict.js new file mode 100644 index 0000000..aac2d8a --- /dev/null +++ b/src/option/system/dict.js @@ -0,0 +1,210 @@ +export const optionParent = { + height: 'auto', + calcHeight: 32, + tip: false, + searchShow: true, + searchMenuSpan: 10, + border: true, + index: true, + selection: true, + viewBtn: true, + menuWidth: 250, + dialogWidth: 880, + dialogClickModal: false, + column: [ + { + label: '字典编号', + prop: 'code', + search: true, + slot: true, + span: 24, + rules: [ + { + required: true, + message: '请输入字典编号', + trigger: 'blur', + }, + ], + }, + { + label: '字典名称', + prop: 'dictValue', + search: true, + align: 'center', + rules: [ + { + required: true, + message: '请输入字典名称', + trigger: 'blur', + }, + ], + }, + { + label: '字典排序', + prop: 'sort', + type: 'number', + align: 'right', + width: 100, + rules: [ + { + required: true, + message: '请输入字典排序', + trigger: 'blur', + }, + ], + }, + { + label: '封存', + prop: 'isSealed', + type: 'switch', + align: 'center', + width: 100, + dicData: [ + { + label: '否', + value: 0, + }, + { + label: '是', + value: 1, + }, + ], + value: 0, + slot: true, + rules: [ + { + required: true, + message: '请选择封存', + trigger: 'blur', + }, + ], + }, + { + label: '字典备注', + prop: 'remark', + hide: true, + }, + ], +}; + +export const optionChild = { + height: 'auto', + calcHeight: 95, + tip: false, + searchShow: true, + searchMenuSpan: 10, + tree: true, + border: true, + index: true, + selection: true, + viewBtn: true, + menuWidth: 300, + dialogWidth: 880, + dialogClickModal: false, + column: [ + { + label: '字典编号', + prop: 'code', + addDisabled: true, + editDisabled: true, + search: true, + span: 24, + rules: [ + { + required: true, + message: '请输入字典编号', + trigger: 'blur', + }, + ], + }, + { + label: '字典名称', + prop: 'dictValue', + search: true, + align: 'center', + rules: [ + { + required: true, + message: '请输入字典名称', + trigger: 'blur', + }, + ], + }, + { + label: '上级字典', + prop: 'parentId', + type: 'tree', + dicData: [], + hide: true, + props: { + label: 'title', + }, + addDisabled: true, + editDisabled: true, + rules: [ + { + required: false, + message: '请选择上级字典', + trigger: 'click', + }, + ], + }, + { + label: '字典键值', + prop: 'dictKey', + width: 85, + rules: [ + { + required: true, + message: '请输入字典键值', + trigger: 'blur', + }, + ], + }, + { + label: '字典排序', + prop: 'sort', + type: 'number', + align: 'right', + hide: true, + rules: [ + { + required: true, + message: '请输入字典排序', + trigger: 'blur', + }, + ], + }, + { + label: '封存', + prop: 'isSealed', + type: 'switch', + align: 'center', + width: 80, + dicData: [ + { + label: '否', + value: 0, + }, + { + label: '是', + value: 1, + }, + ], + value: 0, + slot: true, + rules: [ + { + required: true, + message: '请选择封存', + trigger: 'blur', + }, + ], + }, + { + label: '字典备注', + prop: 'remark', + hide: true, + }, + ], +}; diff --git a/src/option/system/dictbiz.js b/src/option/system/dictbiz.js new file mode 100644 index 0000000..18a884b --- /dev/null +++ b/src/option/system/dictbiz.js @@ -0,0 +1,211 @@ +export const optionParent = { + height: 'auto', + calcHeight: 32, + tip: false, + searchShow: true, + searchMenuSpan: 10, + border: true, + index: true, + selection: true, + viewBtn: true, + menuWidth: 250, + dialogWidth: 880, + dialogClickModal: false, + column: [ + { + label: '字典编号', + prop: 'code', + search: true, + slot: true, + span: 24, + rules: [ + { + required: true, + message: '请输入字典编号', + trigger: 'blur', + }, + ], + }, + { + label: '字典名称', + prop: 'dictValue', + search: true, + align: 'center', + rules: [ + { + required: true, + message: '请输入字典名称', + trigger: 'blur', + }, + ], + }, + { + label: '字典排序', + prop: 'sort', + type: 'number', + align: 'right', + width: 100, + hide: true, + rules: [ + { + required: true, + message: '请输入字典排序', + trigger: 'blur', + }, + ], + }, + { + label: '封存', + prop: 'isSealed', + type: 'switch', + align: 'center', + width: 100, + dicData: [ + { + label: '否', + value: 0, + }, + { + label: '是', + value: 1, + }, + ], + value: 0, + slot: true, + rules: [ + { + required: true, + message: '请选择封存', + trigger: 'blur', + }, + ], + }, + { + label: '字典备注', + prop: 'remark', + hide: true, + }, + ], +}; + +export const optionChild = { + height: 'auto', + calcHeight: 95, + tip: false, + searchShow: true, + searchMenuSpan: 10, + tree: true, + border: true, + index: true, + selection: true, + viewBtn: true, + menuWidth: 300, + dialogWidth: 880, + dialogClickModal: false, + column: [ + { + label: '字典编号', + prop: 'code', + addDisabled: true, + editDisabled: true, + search: true, + span: 24, + rules: [ + { + required: true, + message: '请输入字典编号', + trigger: 'blur', + }, + ], + }, + { + label: '字典名称', + prop: 'dictValue', + search: true, + align: 'center', + rules: [ + { + required: true, + message: '请输入字典名称', + trigger: 'blur', + }, + ], + }, + { + label: '上级字典', + prop: 'parentId', + type: 'tree', + dicData: [], + hide: true, + props: { + label: 'title', + }, + addDisabled: true, + editDisabled: true, + rules: [ + { + required: false, + message: '请选择上级字典', + trigger: 'click', + }, + ], + }, + { + label: '字典键值', + prop: 'dictKey', + width: 85, + rules: [ + { + required: true, + message: '请输入字典键值', + trigger: 'blur', + }, + ], + }, + { + label: '字典排序', + prop: 'sort', + type: 'number', + align: 'right', + hide: true, + rules: [ + { + required: true, + message: '请输入字典排序', + trigger: 'blur', + }, + ], + }, + { + label: '封存', + prop: 'isSealed', + type: 'switch', + align: 'center', + width: 80, + dicData: [ + { + label: '否', + value: 0, + }, + { + label: '是', + value: 1, + }, + ], + value: 0, + slot: true, + rules: [ + { + required: true, + message: '请选择封存', + trigger: 'blur', + }, + ], + }, + { + label: '字典备注', + prop: 'remark', + hide: true, + }, + ], +}; diff --git a/src/option/systemSet/serverEng.js b/src/option/systemSet/serverEng.js new file mode 100644 index 0000000..0497d78 --- /dev/null +++ b/src/option/systemSet/serverEng.js @@ -0,0 +1,129 @@ +var vm = null; +export const sendThis = ( _this )=> { + vm = _this; +} +export var option = { + height: 'auto', + calcHeight: 32, + selection: false, + index: true, + indexLabel: '序号', + indexWidth: 60, + menu:true, + menuFixed: true, + menuWidth: 300, + border: true, + searchMenuSpan:6, + viewBtn: false, + searchMenuPosition: "left", + searchGutter:20, + labelWidth: 98, + dialogWidth: '700', + gutter:10, + column: [{ + label: '姓名', + prop: 'name', + minWidth: 120, + search: true, + searchLabelWidth: 88, + rules: [{ + required: true, + message: '请输入', + trigger: 'blur', + }], + }, + { + label: '手机号', + prop: 'mobile', + minWidth: 120, + rules: [{ + required: true, + message: '请输入', + trigger: 'blur', + }], + }, + { + label: '登录账号', + prop: 'loginName', + autocomplete:'new-password', + rules: [{ + required: true, + message: '请输入', + trigger: 'blur', + }], + }, + { + label: '登录密码', + prop: 'password', + autocomplete:'new-password', + type:'password', + hide:true, + editDisplay: false, + viewDisplay: false, + rules: [{ + required: true, + message: '请输入', + trigger: 'blur', + }], + }, + { + label: '登录密码', + prop: 'password', + type:'password', + autocomplete:'new-password', + hide:true, + addDisplay: false, + viewDisplay: false, + rules: [{ + required: false, + message: '请输入', + trigger: 'blur', + }], + }, + { + label: '入职时间', + prop: 'hiredate', + minWidth: 100, + type: 'date', + gridRow: true, + format: 'YYYY-MM-DD', + valueFormat: 'YYYY-MM-DD', + rules: [{ + required: false, + message: '请选择', + trigger: 'click', + }], + }, + { + label: '状态', + prop: 'isDeleted', + minWidth: 90, + search: true, + type: 'radio', + span: 24, + value:0, + dicData: [{ + label: '启用', + value: 0 + }, + // { + // label: '删除', + // value: '1', + // },{ + // label: '审核', + // value: '2', + // }, + { + label: '禁用', + value: 3, + }, + ] + }, + { + label: '创建时间', + prop: 'createTime', + minWidth: 120, + display:false + }, + ], +} diff --git a/src/option/systemSet/serverRole.js b/src/option/systemSet/serverRole.js new file mode 100644 index 0000000..fb57acd --- /dev/null +++ b/src/option/systemSet/serverRole.js @@ -0,0 +1,43 @@ +var vm = null; +export const sendThis = ( _this )=> { + vm = _this; +} +export var option = { + height: 'auto', + calcHeight: 32, + selection: false, + index: true, + indexLabel: '序号', + indexWidth: 60, + menu:true, + menuFixed: true, + menuWidth: 300, + border: true, + searchMenuSpan:6, + viewBtn: false, + searchMenuPosition: "left", + searchGutter:20, + labelWidth: 98, + dialogWidth: '700', + gutter:10, + column: [{ + label: '角色名称', + prop: 'name', + minWidth: 120, + search: true, + searchLabelWidth: 88, + rules: [{ + required: true, + message: '请输入', + trigger: 'blur', + }], + },{ + label: '员工数量', + prop: 'empCount', + minWidth: 120, + search: false, + display:false, + searchLabelWidth: 88, + }, + ], +} diff --git a/src/option/systemSet/serverUser.js b/src/option/systemSet/serverUser.js new file mode 100644 index 0000000..1b0f652 --- /dev/null +++ b/src/option/systemSet/serverUser.js @@ -0,0 +1,146 @@ +var vm = null; +export const sendThis = ( _this )=> { + vm = _this; +} +export var option = { + height: 'auto', + calcHeight: 32, + selection: false, + index: true, + indexLabel: '序号', + indexWidth: 60, + menu:true, + menuFixed: true, + menuWidth: 300, + border: true, + searchMenuSpan:6, + viewBtn: false, + searchMenuPosition: "left", + searchGutter:20, + labelWidth: 98, + dialogWidth: '700', + gutter:10, + column: [{ + label: '姓名', + prop: 'name', + minWidth: 120, + search: true, + searchLabelWidth: 88, + rules: [{ + required: true, + message: '请输入', + trigger: 'blur', + }], + }, + { + label: '手机号', + prop: 'mobile', + minWidth: 120, + rules: [{ + required: true, + message: '请输入', + trigger: 'blur', + }], + }, + { + label: '登录账号', + prop: 'loginName', + autocomplete:'new-password', + rules: [{ + required: true, + message: '请输入', + trigger: 'blur', + }], + }, + { + label: '登录密码', + prop: 'password', + type:'password', + autocomplete:'new-password', + hide:true, + editDisplay: false, + viewDisplay: false, + rules: [{ + required: true, + message: '请输入', + trigger: 'blur', + }], + }, + { + label: '登录密码', + prop: 'password', + type:'password', + autocomplete:'new-password', + hide:true, + addDisplay: false, + viewDisplay: false, + rules: [{ + required: false, + message: '请输入', + trigger: 'blur', + }], + }, + { + label: '入职时间', + prop: 'hiredate', + minWidth: 100, + type: 'date', + gridRow: true, + format: 'YYYY-MM-DD', + valueFormat: 'YYYY-MM-DD', + rules: [{ + required: false, + message: '请选择', + trigger: 'click', + }], + }, + { + label: '角色', + prop: 'role', + minWidth: 100, + type: 'select', + props: { + label: 'name', + value: 'id', + }, + dicUrl: "/sf/operationSiteRole/list?type=1", + search: true, + rules: [{ + required: true, + message: '请选择', + trigger: 'change', + }], + }, + { + label: '状态', + prop: 'isDeleted', + minWidth: 90, + search: true, + type: 'radio', + span: 24, + value:0, + dicData: [{ + label: '启用', + value: 0 + }, + // { + // label: '删除', + // value: '1', + // },{ + // label: '审核', + // value: '2', + // }, + { + label: '禁用', + value: 3, + }, + ] + }, + { + label: '创建时间', + prop: 'createTime', + minWidth: 120, + display:false + }, + ], +} diff --git a/src/option/systemSet/service.js b/src/option/systemSet/service.js new file mode 100644 index 0000000..9e1aa4d --- /dev/null +++ b/src/option/systemSet/service.js @@ -0,0 +1,267 @@ +var vm = null; +export const sendThis = ( _this,title )=> { + vm = _this; + let _option = { + height: 'auto', + calcHeight: 32, + selection: true, + index: true, + indexLabel: '序号', + indexWidth: 60, + menu:false, + menuFixed: true, + menuWidth: 200, + border: true, + searchMenuSpan:6, + searchMenuPosition: "left", + searchGutter:20, + labelWidth: 98, + dialogWidth: '65%', + gutter:10, + column: [{ + label: '服务商名称', + prop: 'name', + minWidth: 150, + search: true, + searchLabelWidth: 88, + span:24, + fixed:"left", + rules: [{ + required: true, + message: '请输入', + trigger: 'blur', + }], + }, + { + label: '联系人', + prop: 'contacts', + minWidth: 100, + search: true, + rules: [{ + required: true, + message: '请输入', + trigger: 'blur', + }], + }, + { + label: '联系方式', + prop: 'mobile', + minWidth: 120, + search: true, + maxlength:11, + rules: [{ + required: true, + message: '请输入', + trigger: 'blur', + }], + }, + { + label: '地址', + prop: 'address', + minWidth: 200, + search: true, + display:false, + }, + { + label: '省', + prop: 'province', + hide:true, + display:false, + }, + { + label: '市', + prop: 'city', + hide:true, + display:false, + }, + { + label: '区', + prop: 'area', + hide:true, + display:false, + }, + { + label: '地址', + prop: 'provinceCode', + placeholder:'请选择省', + type: 'select', + props: { + label: 'name', + value: 'code', + }, + cascader: ['cityCode'], + dicUrl: '/blade-system/region/select', + slot: true, + hide:true, + span:7, + rules: [{ + required: true, + message: '请选择', + trigger: 'change', + }], + change:(res)=>{ + vm.formData.provinceCode = res.value; + if(res&&res.item&&res.item.name){ + vm.formData.province = res.item.name + } + }, + }, + { + label: '', + prop: 'cityCode', + placeholder:'请选择市', + type: 'select', + props: { + label: 'name', + value: 'code', + }, + cascader: ['areaCode'], + dicFlag: false, + dicUrl: '/blade-system/region/select?code={{provinceCode}}', + slot: true, + hide:true, + span:5, + labelWidth: 0, + rules: [{ + required: true, + message: '请选择', + trigger: 'change', + }], + change:(res)=>{ + vm.formData.cityCode = res.value; + if(res&&res.item&&res.item.name){ + vm.formData.city = res.item.name + } + }, + }, + { + label: '', + prop: 'areaCode', + placeholder:'请选择区', + type: 'select', + props: { + label: 'name', + value: 'code', + }, + dicFlag: false, + dicUrl: '/blade-system/region/select?code={{cityCode}}', + slot: true, + hide:true, + span:5, + labelWidth: 0, + rules: [{ + required: true, + message: '请选择', + trigger: 'change', + }], + change:(res)=>{ + vm.formData.areaCode = res.value; + if(res&&res.item&&res.item.name){ + vm.formData.area = res.item.name + } + }, + }, + { + label: '', + prop: 'address', + placeholder:'请输入详细地址', + minWidth:200, + span:7, + labelWidth: 0, + rules: [{ + required: true, + message: '请输入', + trigger: 'blur', + }], + hide:true, + }, + { + label: '登录账号', + prop: 'loginName', + autocomplete:'new-password', + hide:true, + rules: [{ + required: true, + message: '请输入', + trigger: 'blur', + }], + }, + { + label: '登录密码', + prop: 'password', + type:'password', + autocomplete:'new-password', + hide:true, + rules: [{ + required: title&&title=='edit' ? false : true, + message: '请输入', + trigger: 'blur', + }], + }, + { + label: '状态', + prop: 'status', + minWidth: 90, + type: 'radio', + value:'0', + span:24, + dicData: [{ + label: '启用', + value: '0' + }, + // { + // label: '删除', + // value: '1', + // }, { + // label: '未授权', + // value: '2', + // }, + { + label: '禁用', + value: '3', + }, + // { + // label: '暂未合作', + // value: '4', + // }, + ] + }, + { + label: '添加时间', + prop: 'createTime', + minWidth: 120, + display:false + }, + { + label: '员工数量', + prop: 'amount', + minWidth: 100, + display:false + }, + { + label: '工程师数量', + prop: 'empamount', + minWidth: 100, + display:false + }, + { + label: '相关资质', + prop: 'licenseImg', + hide:true, + span:24, + type: 'upload', + listType: 'picture-card', + multiple:true, + limit:3, + dataType: 'string', + action: '/blade-resource/oss/endpoint/put-file?code=aliyun', + propsHttp: { + res: 'data', + url: 'link', + }, + tip: '最多上传3张图片', + }, + ], + } + vm.option = _option; +} diff --git a/src/option/systemSet/serviceMeasure.js b/src/option/systemSet/serviceMeasure.js new file mode 100644 index 0000000..09489fb --- /dev/null +++ b/src/option/systemSet/serviceMeasure.js @@ -0,0 +1,49 @@ +var vm = null; +export const sendThis = ( _this )=> { + vm = _this; +} +export var option = { + height: 'auto', + calcHeight: 32, + selection: true, + index: true, + indexLabel: '序号', + indexWidth: 60, + menu:false, + menuFixed: true, + menuWidth: 200, + addBtn:false, + border: true, + searchMenuSpan:6, + searchMenuPosition: "left", + searchGutter:0, + column: [{ + label: '服务类型', + prop: 'serviceType', + minWidth: 200, + search: true, + display:false + }, + { + label: '服务类型', + prop: 'serviceTypeId', + minWidth: 200, + display:false, + hide:true, + }, + { + label: '服务措施', + prop: 'serviceMeasures', + minWidth: 200, + search: true, + display:false + }, + { + label: '创建时间', + prop: 'createTime', + minWidth: 120, + display:false + }, + + ], +} diff --git a/src/option/systemSet/serviceType.js b/src/option/systemSet/serviceType.js new file mode 100644 index 0000000..f09e194 --- /dev/null +++ b/src/option/systemSet/serviceType.js @@ -0,0 +1,48 @@ +var vm = null; +export const sendThis = ( _this )=> { + vm = _this; +} +export var option = { + height: 'auto', + calcHeight: 32, + selection: true, + index: true, + indexLabel: '序号', + indexWidth: 60, + menu:false, + menuFixed: true, + menuWidth: 200, + addBtn:false, + border: true, + searchMenuSpan:6, + searchMenuPosition: "left", + searchGutter:0, + column: [{ + label: '服务类型', + prop: 'name', + minWidth: 200, + search: true, + display:false + }, + { + label: '代码值', + prop: 'code', + minWidth: 150, + search: true, + display:false + }, + { + label: '资方', + prop: 'partnerId', + minWidth: 200, + display:false + }, + { + label: '创建时间', + prop: 'createTime', + minWidth: 120, + display:false + }, + + ], +} diff --git a/src/option/user/info.js b/src/option/user/info.js new file mode 100644 index 0000000..f9bf5c5 --- /dev/null +++ b/src/option/user/info.js @@ -0,0 +1,77 @@ +export default { + tabs: true, + tabsActive: 1, + group: [ + { + label: '个人信息', + prop: 'info', + column: [ + { + label: '头像', + type: 'upload', + listType: 'picture-img', + propsHttp: { + res: 'data', + url: 'link', + }, + action: '/blade-resource/oss/endpoint/put-file', + tip: '只能上传jpg/png用户头像,且不超过500kb', + span: 12, + row: true, + prop: 'avatar', + }, + { + label: '姓名', + span: 12, + row: true, + prop: 'realName', + }, + { + label: '用户名', + span: 12, + row: true, + prop: 'name', + }, + { + label: '手机号', + span: 12, + row: true, + prop: 'phone', + }, + { + label: '邮箱', + prop: 'email', + span: 12, + row: true, + }, + ], + }, + { + label: '修改密码', + prop: 'password', + column: [ + { + label: '原密码', + span: 12, + row: true, + type: 'password', + prop: 'oldPassword', + }, + { + label: '新密码', + span: 12, + row: true, + type: 'password', + prop: 'newPassword', + }, + { + label: '确认密码', + span: 12, + row: true, + type: 'password', + prop: 'newPassword1', + }, + ], + }, + ], +}; diff --git a/src/page/index/index.vue b/src/page/index/index.vue new file mode 100644 index 0000000..622a40d --- /dev/null +++ b/src/page/index/index.vue @@ -0,0 +1,106 @@ + + + diff --git a/src/page/index/layout.vue b/src/page/index/layout.vue new file mode 100644 index 0000000..0439730 --- /dev/null +++ b/src/page/index/layout.vue @@ -0,0 +1,7 @@ + diff --git a/src/page/index/logo.vue b/src/page/index/logo.vue new file mode 100644 index 0000000..dbbf49f --- /dev/null +++ b/src/page/index/logo.vue @@ -0,0 +1,35 @@ + + + diff --git a/src/page/index/search.vue b/src/page/index/search.vue new file mode 100644 index 0000000..b5b5d6a --- /dev/null +++ b/src/page/index/search.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/src/page/index/setting.vue b/src/page/index/setting.vue new file mode 100644 index 0000000..04ae321 --- /dev/null +++ b/src/page/index/setting.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/page/index/sidebar/index.vue b/src/page/index/sidebar/index.vue new file mode 100644 index 0000000..557cb99 --- /dev/null +++ b/src/page/index/sidebar/index.vue @@ -0,0 +1,41 @@ + + + + diff --git a/src/page/index/sidebar/sidebarItem.vue b/src/page/index/sidebar/sidebarItem.vue new file mode 100644 index 0000000..1442c69 --- /dev/null +++ b/src/page/index/sidebar/sidebarItem.vue @@ -0,0 +1,92 @@ + + diff --git a/src/page/index/tags.vue b/src/page/index/tags.vue new file mode 100644 index 0000000..84361fb --- /dev/null +++ b/src/page/index/tags.vue @@ -0,0 +1,188 @@ + + diff --git a/src/page/index/top/index.vue b/src/page/index/top/index.vue new file mode 100644 index 0000000..eaf85c1 --- /dev/null +++ b/src/page/index/top/index.vue @@ -0,0 +1,120 @@ + + + + diff --git a/src/page/index/top/top-full.vue b/src/page/index/top/top-full.vue new file mode 100644 index 0000000..099d698 --- /dev/null +++ b/src/page/index/top/top-full.vue @@ -0,0 +1,24 @@ + + diff --git a/src/page/index/top/top-lang.vue b/src/page/index/top/top-lang.vue new file mode 100644 index 0000000..8e45557 --- /dev/null +++ b/src/page/index/top/top-lang.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/src/page/index/top/top-lock.vue b/src/page/index/top/top-lock.vue new file mode 100644 index 0000000..cd70b5c --- /dev/null +++ b/src/page/index/top/top-lock.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/src/page/index/top/top-logs.vue b/src/page/index/top/top-logs.vue new file mode 100644 index 0000000..1c22381 --- /dev/null +++ b/src/page/index/top/top-logs.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/src/page/index/top/top-menu.vue b/src/page/index/top/top-menu.vue new file mode 100644 index 0000000..bd351a6 --- /dev/null +++ b/src/page/index/top/top-menu.vue @@ -0,0 +1,58 @@ + + + diff --git a/src/page/index/top/top-search.vue b/src/page/index/top/top-search.vue new file mode 100644 index 0000000..a3da15d --- /dev/null +++ b/src/page/index/top/top-search.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/src/page/index/top/top-theme.vue b/src/page/index/top/top-theme.vue new file mode 100644 index 0000000..289d143 --- /dev/null +++ b/src/page/index/top/top-theme.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/src/page/index/wechat.vue b/src/page/index/wechat.vue new file mode 100644 index 0000000..6a1a08d --- /dev/null +++ b/src/page/index/wechat.vue @@ -0,0 +1,59 @@ + + diff --git a/src/page/lock/index.vue b/src/page/lock/index.vue new file mode 100644 index 0000000..b4e0aa0 --- /dev/null +++ b/src/page/lock/index.vue @@ -0,0 +1,104 @@ + + + + diff --git a/src/page/login/authredirect.vue b/src/page/login/authredirect.vue new file mode 100644 index 0000000..67a8588 --- /dev/null +++ b/src/page/login/authredirect.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/page/login/codelogin.vue b/src/page/login/codelogin.vue new file mode 100644 index 0000000..e59215e --- /dev/null +++ b/src/page/login/codelogin.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/src/page/login/facelogin.vue b/src/page/login/facelogin.vue new file mode 100644 index 0000000..e1da201 --- /dev/null +++ b/src/page/login/facelogin.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/src/page/login/index.vue b/src/page/login/index.vue new file mode 100644 index 0000000..e490038 --- /dev/null +++ b/src/page/login/index.vue @@ -0,0 +1,151 @@ + + + + diff --git a/src/page/login/thirdlogin.vue b/src/page/login/thirdlogin.vue new file mode 100644 index 0000000..fa64d7d --- /dev/null +++ b/src/page/login/thirdlogin.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/page/login/userlogin.vue b/src/page/login/userlogin.vue new file mode 100644 index 0000000..e1f9b35 --- /dev/null +++ b/src/page/login/userlogin.vue @@ -0,0 +1,419 @@ + + + + + diff --git a/src/permission.js b/src/permission.js new file mode 100644 index 0000000..cabf2b8 --- /dev/null +++ b/src/permission.js @@ -0,0 +1,58 @@ +import router from './router/'; +import store from './store'; +import { getToken } from '@/utils/auth'; +import NProgress from 'nprogress'; // progress bar +import 'nprogress/nprogress.css'; // progress bar style +NProgress.configure({ showSpinner: false }); +const lockPage = '/lock'; //锁屏页 +router.beforeEach((to, from, next) => { + const meta = to.meta || {}; + const isMenu = meta.menu === undefined ? to.query.menu : meta.menu; + store.commit('SET_IS_MENU', isMenu === undefined); + if (getToken()) { + if (store.getters.isLock && to.path !== lockPage) { + //如果系统激活锁屏,全部跳转到锁屏页 + next({ path: lockPage }); + } else if (to.path === '/login') { + //如果登录成功访问登录页跳转到主页 + next({ path: '/' }); + } else { + if (store.getters.token.length === 0) { + store.dispatch('FedLogOut').then(() => { + next({ path: '/login' }); + }); + } else { + const meta = to.meta || {}; + const query = to.query || {}; + if (meta.target) { + window.open(query.url.replace(/#/g, '&')); + return; + } else if (meta.isTab !== false) { + store.commit('ADD_TAG', { + name: query.name || to.name, + path: to.path, + fullPath: to.path, + params: to.params, + query: to.query, + meta: meta, + }); + } + next(); + } + } + } else { + //判断是否需要认证,没有登录访问去登录页 + if (meta.isAuth === false) { + next(); + } else { + next('/login'); + } + } +}); + +router.afterEach(to => { + NProgress.done(); + let title = router.$avueRouter.generateTitle(to, { label: 'name' }); + router.$avueRouter.setTitle(title); + store.commit('SET_IS_SEARCH', false); +}); diff --git a/src/router/avue-router.js b/src/router/avue-router.js new file mode 100644 index 0000000..7c8674d --- /dev/null +++ b/src/router/avue-router.js @@ -0,0 +1,162 @@ +import website from '@/config/website'; + +const modules = import.meta.glob('../**/**/*.vue'); + +function isURL(s) { + return /^http[s]?:\/\/.*/.test(s); +} + +let RouterPlugin = function () { + this.$router = null; + this.$store = null; +}; +RouterPlugin.install = function (option = {}) { + this.$router = option.router; + this.$store = option.store; + let i18n = option.i18n.global; + this.$router.$avueRouter = { + safe: this, + // 设置标题 + setTitle: title => { + const defaultTitle = i18n.t('title'); + title = title ? `${title} | ${defaultTitle}` : defaultTitle; + document.title = defaultTitle; + }, + closeTag: value => { + let tag = value || this.$store.getters.tag; + if (typeof value === 'string') { + tag = this.$store.getters.tagList.find(ele => ele.fullPath === value); + } + this.$store.commit('DEL_TAG', tag); + }, + generateTitle: (item, props = {}) => { + let query = item[props.query || 'query'] || {}; + let title = query.name || item[props.label || 'label']; + let meta = item[props.meta || 'meta'] || {}; + let key = meta.i18n; + if (key) { + const hasKey = i18n.te('route.' + key); + if (hasKey) return i18n.t('route.' + key); + } + return title; + }, + //动态路由 + formatRoutes: function (aMenu = [], first) { + const aRouter = []; + const propsDefault = website.menu; + if (aMenu && aMenu.length === 0) return; + for (let i = 0; i < aMenu.length; i++) { + const oMenu = aMenu[i]; + let path = oMenu[propsDefault.path], + isComponent = true, + component = oMenu.component, + name = oMenu[propsDefault.label], + icon = oMenu[propsDefault.icon], + children = oMenu[propsDefault.children], + query = oMenu[propsDefault.query], + meta = oMenu[propsDefault.meta]; + if (option.keepAlive) { + meta.keepAlive = option.keepAlive; + } + const isChild = !!(children && children.length !== 0); + const oRouter = { + path: path, + component: (() => { + // 判断是否为首路由 + if (first) { + return modules[ + option.store.getters.isMacOs + ? '../page/index/layout.vue' + : '../page/index/index.vue' + ]; + // 判断是否为多层路由 + } else if (isChild && !first) { + return modules['../page/index/layout.vue']; + // 判断是否为最终的页面视图 + } else { + let result = modules[`../${component}.vue`]; + if (result) result().then(mod => (mod.default.name = path)); + else { + isComponent = false; + } + return result; + } + })(), + name, + icon, + meta, + query, + redirect: (() => { + if (!isChild && first) return `${path}`; + else return ''; + })(), + // 处理是否为一级路由 + children: !isChild + ? (() => { + if (first) { + oMenu[propsDefault.path] = `${path}`; + let result = modules[`../${component}.vue`]; + if (result) result().then(mod => (mod.default.name = path)); + else { + isComponent = false; + } + return [ + { + component: result, + icon: icon, + name: name, + meta: meta, + query: query, + path: '', + }, + ]; + } + return []; + })() + : (() => { + return this.formatRoutes(children, false); + })(), + }; + if (!isURL(path) && isComponent) aRouter.push(oRouter); + } + if (first) { + aRouter.forEach(ele => this.safe.$router.addRoute(ele)); + } else { + return aRouter; + } + }, + }; +}; +export const formatPath = (ele, first) => { + const propsDefault = website.menu; + const icon = ele[propsDefault.icon]; + ele[propsDefault.icon] = !icon ? propsDefault.iconDefault : icon; + ele.meta = { keepAlive: ele.isOpen === 2 }; + const iframeComponent = 'components/iframe/main'; + const iframeSrc = href => { + return href.replace(/&/g, '#'); + }; + const isChild = !!(ele[propsDefault.children] && ele[propsDefault.children].length !== 0); + if (!isChild && first) { + ele.component = 'views' + ele[propsDefault.path]; + if (isURL(ele[propsDefault.href])) { + let href = ele[propsDefault.href]; + ele.component = iframeComponent; + ele[propsDefault.query] = { url: iframeSrc(href) }; + } + } else { + ele[propsDefault.children] && + ele[propsDefault.children].forEach(child => { + child.component = 'views' + child[propsDefault.path]; + child.meta = { keepAlive: child.isOpen === 2 }; + if (isURL(child[propsDefault.href])) { + let href = child[propsDefault.href]; + child[propsDefault.path] = ele[propsDefault.path] + '/' + child.code; + child.component = iframeComponent; + child[propsDefault.query] = { url: iframeSrc(href) }; + } + formatPath(child); + }); + } +}; +export default RouterPlugin; diff --git a/src/router/index.js b/src/router/index.js new file mode 100644 index 0000000..edef259 --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,32 @@ +import { createRouter, createWebHistory } from 'vue-router'; +import PageRouter from './page/'; +import ViewsRouter from './views/'; +import AvueRouter from './avue-router'; +import i18n from '@/lang'; +import Store from '@/store/'; +//创建路由 +const Router = createRouter({ + base: import.meta.env.VITE_APP_BASE, + history: createWebHistory(import.meta.env.VITE_APP_BASE), + routes: [...PageRouter, ...ViewsRouter], +}); +AvueRouter.install({ + store: Store, + router: Router, + i18n: i18n, +}); + +Router.$avueRouter.formatRoutes(Store.getters.menuAll, true); + +export function resetRouter() { + // 重置路由 比如用于身份验证失败,需要重新登录时 先清空当前的路有权限 + const newRouter = createRouter(); + Router.matcher = newRouter.matcher; // reset router + AvueRouter.install(Vue, { + router: Router, + store: Store, + i18n: i18n, + }); +} + +export default Router; diff --git a/src/router/page/index.js b/src/router/page/index.js new file mode 100644 index 0000000..3a148f7 --- /dev/null +++ b/src/router/page/index.js @@ -0,0 +1,72 @@ +import Store from '@/store/'; + +export default [ + { + path: '/login', + name: '登录页', + component: () => + Store.getters.isMacOs ? import('@/mac/login.vue') : import('@/page/login/index.vue'), + meta: { + keepAlive: true, + isTab: false, + isAuth: false, + }, + }, + { + path: '/oauth/redirect/:source', + name: '第三方登录', + component: () => + Store.getters.isMacOs ? import('@/mac/login.vue') : import('@/page/login/index.vue'), + meta: { + keepAlive: true, + isTab: false, + isAuth: false, + }, + }, + { + path: '/lock', + name: '锁屏页', + component: () => + Store.getters.isMacOs ? import('@/mac/lock.vue') : import('@/page/lock/index.vue'), + meta: { + keepAlive: true, + isTab: false, + isAuth: false, + }, + }, + { + path: '/404', + component: () => import(/* webpackChunkName: "page" */ '@/components/error-page/404.vue'), + name: '404', + meta: { + keepAlive: true, + isTab: false, + isAuth: false, + }, + }, + { + path: '/403', + component: () => import(/* webpackChunkName: "page" */ '@/components/error-page/403.vue'), + name: '403', + meta: { + keepAlive: true, + isTab: false, + isAuth: false, + }, + }, + { + path: '/500', + component: () => import(/* webpackChunkName: "page" */ '@/components/error-page/500.vue'), + name: '500', + meta: { + keepAlive: true, + isTab: false, + isAuth: false, + }, + }, + { + path: '/', + name: '主页', + redirect: '/wel', + }, +]; diff --git a/src/router/views/index.js b/src/router/views/index.js new file mode 100644 index 0000000..845804e --- /dev/null +++ b/src/router/views/index.js @@ -0,0 +1,122 @@ +import Layout from '@/page/index/index.vue'; +import Store from '@/store/'; + +export default [ + { + path: '/wel', + component: () => + Store.getters.isMacOs ? import('@/mac/index.vue') : import('@/page/index/index.vue'), + redirect: '/wel/index', + children: [ + { + path: 'index', + name: '首页', + meta: { + i18n: 'dashboard', + }, + component: () => import(/* webpackChunkName: "views" */ '@/views/wel/dashboard.vue'), + }, + { + path: 'dashboard', + name: '控制台', + meta: { + i18n: 'dashboard', + menu: false, + }, + component: () => import(/* webpackChunkName: "views" */ '@/views/wel/dashboard.vue'), + }, + ], + }, + { + path: '/test', + component: Layout, + redirect: '/test/index', + children: [ + { + path: 'index', + name: '测试页', + meta: { + i18n: 'test', + }, + component: () => import(/* webpackChunkName: "views" */ '@/views/util/test.vue'), + }, + ], + }, + { + path: '/dict-horizontal', + component: Layout, + redirect: '/dict-horizontal/index', + children: [ + { + path: 'index', + name: '字典管理', + meta: { + i18n: 'dict', + }, + component: () => + import(/* webpackChunkName: "views" */ '@/views/util/demo/dict-horizontal.vue'), + }, + ], + }, + { + path: '/dict-vertical', + component: Layout, + redirect: '/dict-vertical/index', + children: [ + { + path: 'index', + name: '字典管理', + meta: { + i18n: 'dict', + }, + component: () => + import(/* webpackChunkName: "views" */ '@/views/util/demo/dict-vertical.vue'), + }, + ], + }, + { + path: '/info', + component: Layout, + redirect: '/info/index', + children: [ + { + path: 'index', + name: '个人信息', + meta: { + i18n: 'info', + }, + component: () => import(/* webpackChunkName: "views" */ '@/views/system/userinfo.vue'), + }, + ], + }, + { + path: '/nh/powerStationDetail', + component: Layout, + redirect: '/nh/powerStationDetail/index', + children: [ + { + path: 'index', + name: '电站详情', + meta: { + i18n: 'info', + }, + component: () => import(/* webpackChunkName: "views" */ '@/views/nh/powerStationDetail.vue'), + }, + ], + }, + { + path: '/nh/mapProvice', + component: Layout, + redirect: '/nh/mapProvice/index', + children: [ + { + path: 'index', + name: '省区图', + meta: { + i18n: 'info', + }, + component: () => import(/* webpackChunkName: "views" */ '@/views/nh/map/mapProvice.vue'), + }, + ], + }, +]; diff --git a/src/store/getters.js b/src/store/getters.js new file mode 100644 index 0000000..884a275 --- /dev/null +++ b/src/store/getters.js @@ -0,0 +1,39 @@ +const getters = { + tag: state => state.tags.tag, + language: state => state.common.language, + setting: state => state.common.setting, + userInfo: state => state.user.userInfo, + themeName: state => state.common.themeName, + isMacOs: (state, getters) => getters.themeName === 'mac-os', + isRefresh: state => state.common.isRefresh, + isSearch: state => state.common.isSearch, + isHorizontal: state => state.common.setting.sidebar === 'horizontal', + isCollapse: state => state.common.isCollapse, + isLock: state => state.common.isLock, + isFullScren: state => state.common.isFullScren, + isMenu: state => state.common.isMenu, + lockPasswd: state => state.common.lockPasswd, + tagList: state => state.tags.tagList, + tagsKeep: (state, getters) => { + let list = getters.tagList + .filter(ele => { + // return (ele.meta || {}).keepAlive; + return true; + }) + .map(ele => ele.fullPath); + console.log(list) + return ["/nh/powerStation"]; + }, + tagWel: state => state.tags.tagWel, + token: state => state.user.token, + roles: state => state.user.roles, + permission: state => state.user.permission, + menuId: state => state.user.menuId, + menu: state => state.user.menu, + menuAll: state => state.user.menuAll, + logsList: state => state.logs.logsList, + logsLen: state => state.logs.logsList.length || 0, + logsFlag: (state, getters) => getters.logsLen === 0, + flowRoutes: state => state.dict.flowRoutes, +}; +export default getters; diff --git a/src/store/index.js b/src/store/index.js new file mode 100644 index 0000000..a764d4b --- /dev/null +++ b/src/store/index.js @@ -0,0 +1,20 @@ +import { createStore } from 'vuex'; +import user from './modules/user'; +import common from './modules/common'; +import tags from './modules/tags'; +import logs from './modules/logs'; +import dict from './modules/dict'; +import getters from './getters'; + +const store = createStore({ + modules: { + user, + common, + logs, + tags, + dict, + }, + getters, +}); + +export default store; diff --git a/src/store/modules/common.js b/src/store/modules/common.js new file mode 100644 index 0000000..554ad3a --- /dev/null +++ b/src/store/modules/common.js @@ -0,0 +1,78 @@ +import { setStore, getStore, removeStore } from 'utils/store'; +import website from '@/config/website'; + +const common = { + state: { + language: getStore({ name: 'language' }) || 'zh-cn', + isCollapse: false, + isFullScren: false, + isMenu: true, + isSearch: false, + isRefresh: true, + isLock: getStore({ name: 'isLock' }), + themeName: getStore({ name: 'themeName' }) || 'theme-hey', + lockPasswd: getStore({ name: 'lockPasswd' }) || '', + website: website, + setting: website.setting, + }, + mutations: { + SET_LANGUAGE: (state, language) => { + state.language = language; + setStore({ + name: 'language', + content: state.language, + }); + }, + SET_COLLAPSE: state => { + state.isCollapse = !state.isCollapse; + }, + SET_IS_MENU: (state, menu) => { + state.isMenu = menu; + }, + SET_IS_REFRESH: (state, refresh) => { + state.isRefresh = refresh; + }, + SET_IS_SEARCH: (state, search) => { + state.isSearch = search; + }, + SET_FULLSCREN: state => { + state.isFullScren = !state.isFullScren; + }, + SET_LOCK: state => { + state.isLock = true; + setStore({ + name: 'isLock', + content: state.isLock, + type: 'session', + }); + }, + SET_THEME_NAME: (state, themeName) => { + state.themeName = themeName; + setStore({ + name: 'themeName', + content: state.themeName, + }); + }, + SET_LOCK_PASSWD: (state, lockPasswd) => { + state.lockPasswd = lockPasswd; + setStore({ + name: 'lockPasswd', + content: state.lockPasswd, + type: 'session', + }); + }, + CLEAR_LOCK: state => { + state.isLock = false; + state.lockPasswd = ''; + removeStore({ + name: 'lockPasswd', + type: 'session', + }); + removeStore({ + name: 'isLock', + type: 'session', + }); + }, + }, +}; +export default common; diff --git a/src/store/modules/dict.js b/src/store/modules/dict.js new file mode 100644 index 0000000..69894ed --- /dev/null +++ b/src/store/modules/dict.js @@ -0,0 +1,36 @@ +import { getStore, setStore } from '@/utils/store'; + +import { getDictionary } from '@/api/system/dict'; + +const dict = { + state: { + flowRoutes: getStore({ name: 'flowRoutes' }) || {}, + }, + actions: { + FlowRoutes({ commit }) { + return new Promise((resolve, reject) => { + getDictionary({ code: 'flow' }) + .then(res => { + commit('SET_FLOW_ROUTES', res.data.data); + resolve(); + }) + .catch(error => { + reject(error); + }); + }); + }, + }, + mutations: { + SET_FLOW_ROUTES: (state, data) => { + state.flowRoutes = data.map(item => { + return { + routeKey: `${item.code}_${item.dictKey}`, + routeValue: item.remark, + }; + }); + setStore({ name: 'flowRoutes', content: state.flowRoutes }); + }, + }, +}; + +export default dict; diff --git a/src/store/modules/logs.js b/src/store/modules/logs.js new file mode 100644 index 0000000..b9d7d86 --- /dev/null +++ b/src/store/modules/logs.js @@ -0,0 +1,49 @@ +import { setStore, getStore } from 'utils/store'; +import dayjs from 'dayjs'; +import { sendLogs } from '@/api/user'; + +const logs = { + state: { + logsList: getStore({ name: 'logsList' }) || [], + }, + actions: { + //发送错误日志 + SendLogs({ state, commit }) { + return new Promise((resolve, reject) => { + sendLogs(state.logsList) + .then(() => { + commit('CLEAR_LOGS'); + resolve(); + }) + .catch(error => { + reject(error); + }); + }); + }, + }, + mutations: { + ADD_LOGS: (state, { type, message, stack, info }) => { + state.logsList.push( + Object.assign( + { + url: window.location.href, + time: dayjs().format('YYYY-MM-DD HH:mm:ss'), + }, + { + type, + message, + stack, + info: info.toString(), + } + ) + ); + setStore({ name: 'logsList', content: state.logsList }); + }, + CLEAR_LOGS: state => { + state.logsList = []; + setStore({ name: 'logsList', content: state.logsList }); + }, + }, +}; + +export default logs; diff --git a/src/store/modules/tags.js b/src/store/modules/tags.js new file mode 100644 index 0000000..1ec92a0 --- /dev/null +++ b/src/store/modules/tags.js @@ -0,0 +1,38 @@ +import { setStore, getStore } from 'utils/store'; +import website from '@/config/website'; + +const tagWel = website.fistPage; +const navs = { + state: { + tagList: getStore({ name: 'tagList' }) || [], + tag: getStore({ name: 'tag' }) || {}, + tagWel: tagWel, + }, + mutations: { + ADD_TAG: (state, action) => { + if (typeof action.name == 'function') action.name = action.name(action.query); + state.tag = action; + setStore({ name: 'tag', content: state.tag }); + if (state.tagList.some(ele => ele.fullPath == action.fullPath)) return; + state.tagList.push(action); + setStore({ name: 'tagList', content: state.tagList }); + }, + DEL_TAG: (state, action) => { + state.tagList = state.tagList.filter(item => { + return item.fullPath !== action.fullPath; + }); + setStore({ name: 'tagList', content: state.tagList }); + }, + DEL_ALL_TAG: (state, tagList = []) => { + state.tagList = tagList; + setStore({ name: 'tagList', content: state.tagList }); + }, + DEL_TAG_OTHER: state => { + state.tagList = state.tagList.filter(item => { + return [state.tag.fullPath, website.fistPage.path].includes(item.fullPath); + }); + setStore({ name: 'tagList', content: state.tagList }); + }, + }, +}; +export default navs; diff --git a/src/store/modules/user.js b/src/store/modules/user.js new file mode 100644 index 0000000..b16fc45 --- /dev/null +++ b/src/store/modules/user.js @@ -0,0 +1,320 @@ +import { setToken, setRefreshToken, removeToken, removeRefreshToken } from '@/utils/auth'; +import { setStore, getStore } from '@/utils/store'; +import { validatenull } from '@/utils/validate'; +import { deepClone } from '@/utils/util'; +import { + loginByUsername, + loginBySocial, + loginBySso, + getUserInfo, + logout, + refreshToken, + getButtons, + registerUser, +} from '@/api/user'; +import { getRoutes, getTopMenu } from '@/api/system/menu'; +import { formatPath } from '@/router/avue-router'; +import { ElMessage } from 'element-plus'; +import md5 from 'js-md5'; + +const user = { + state: { + tenantId: getStore({ name: 'tenantId' }) || '', + userInfo: getStore({ name: 'userInfo' }) || [], + permission: getStore({ name: 'permission' }) || {}, + roles: [], + menuId: {}, + menu: getStore({ name: 'menu' }) || [], + menuAll: getStore({ name: 'menuAll' }) || [], + token: getStore({ name: 'token' }) || '', + refreshToken: getStore({ name: 'refreshToken' }) || '', + }, + actions: { + //根据用户名登录 + LoginByUsername({ commit }, userInfo = {}) { + return new Promise((resolve, reject) => { + loginByUsername( + userInfo.tenantId, + userInfo.deptId, + userInfo.roleId, + userInfo.username, + md5(userInfo.password), + userInfo.type, + userInfo.key, + userInfo.code + ) + .then(res => { + const data = res.data; + if (data.error_description) { + ElMessage({ + message: data.error_description, + type: 'error', + }); + } else { + commit('SET_TOKEN', data.access_token); + commit('SET_REFRESH_TOKEN', data.refresh_token); + commit('SET_TENANT_ID', data.tenant_id); + commit('SET_USER_INFO', data); + commit('DEL_ALL_TAG'); + commit('CLEAR_LOCK'); + } + resolve(); + }) + .catch(err => { + reject(err); + }); + }); + }, + //根据第三方信息登录 + LoginBySocial({ commit }, userInfo) { + return new Promise(resolve => { + loginBySocial(userInfo.tenantId, userInfo.source, userInfo.code, userInfo.state).then( + res => { + const data = res.data; + if (data.error_description) { + ElMessage({ + message: data.error_description, + type: 'error', + }); + } else { + commit('SET_TOKEN', data.access_token); + commit('SET_REFRESH_TOKEN', data.refresh_token); + commit('SET_USER_INFO', data); + commit('SET_TENANT_ID', data.tenant_id); + commit('DEL_ALL_TAG'); + commit('CLEAR_LOCK'); + } + resolve(); + } + ); + }); + }, + //根据单点信息登录 + LoginBySso({ commit }, userInfo) { + return new Promise(resolve => { + loginBySso(userInfo.state, userInfo.code).then(res => { + const data = res.data; + if (data.error_description) { + ElMessage({ + message: data.error_description, + type: 'error', + }); + } else { + commit('SET_TOKEN', data.access_token); + commit('SET_REFRESH_TOKEN', data.refresh_token); + commit('SET_USER_INFO', data); + commit('SET_TENANT_ID', data.tenant_id); + commit('DEL_ALL_TAG'); + commit('CLEAR_LOCK'); + } + resolve(); + }); + }); + }, + RegisterUser({ commit }, userInfo = {}) { + return new Promise((resolve, reject) => { + registerUser( + userInfo.tenantId, + userInfo.name, + userInfo.account, + md5(userInfo.password), + userInfo.phone, + userInfo.email + ).then(res => { + const data = res.data; + if (data.error_description) { + ElMessage({ + message: data.error_description, + type: 'error', + }); + reject(data.error_description); + } else { + commit('SET_TOKEN', data.access_token); + commit('SET_REFRESH_TOKEN', data.refresh_token); + commit('SET_USER_INFO', data); + commit('SET_TENANT_ID', data.tenant_id); + commit('DEL_ALL_TAG'); + commit('CLEAR_LOCK'); + } + resolve(); + }); + }); + }, + GetUserInfo({ commit }) { + return new Promise((resolve, reject) => { + getUserInfo() + .then(res => { + const data = res.data.data; + commit('SET_ROLES', data.roles); + resolve(data); + }) + .catch(err => { + reject(err); + }); + }); + }, + //刷新token + RefreshToken({ state, commit }, userInfo) { + return new Promise((resolve, reject) => { + refreshToken( + state.refreshToken, + state.tenantId, + !validatenull(userInfo) ? userInfo.deptId : state.userInfo.dept_id, + !validatenull(userInfo) ? userInfo.roleId : state.userInfo.role_id + ) + .then(res => { + const data = res.data; + commit('SET_TOKEN', data.access_token); + commit('SET_REFRESH_TOKEN', data.refresh_token); + commit('SET_USER_INFO', data); + resolve(); + }) + .catch(error => { + reject(error); + }); + }); + }, + // 登出 + LogOut({ commit }) { + return new Promise((resolve, reject) => { + logout() + .then(() => { + commit('SET_TOKEN', ''); + commit('SET_MENU_ALL_NULL', []); + commit('SET_MENU', []); + commit('SET_ROLES', []); + commit('DEL_ALL_TAG', []); + commit('CLEAR_LOCK'); + removeToken(); + removeRefreshToken(); + removeToken(); + resolve(); + }) + .catch(error => { + reject(error); + }); + }); + }, + //注销session + FedLogOut({ commit }) { + return new Promise(resolve => { + commit('SET_TOKEN', ''); + commit('SET_MENU_ALL_NULL', []); + commit('SET_MENU', []); + commit('SET_ROLES', []); + commit('DEL_ALL_TAG', []); + commit('CLEAR_LOCK'); + removeToken(); + removeRefreshToken(); + removeToken(); + resolve(); + }); + }, + GetTopMenu() { + return new Promise(resolve => { + getTopMenu().then(res => { + const data = res.data.data || []; + resolve(data); + }); + }); + }, + GetMenu({ commit, dispatch }, tenantId) { + return new Promise(resolve => { + getRoutes(tenantId).then(res => { + const data = res.data.data; + let menu = deepClone(data); + menu.forEach(ele => formatPath(ele, true)); + console.log(menu); + commit('SET_MENU', menu); + commit('SET_MENU_ALL', menu); + dispatch('GetButtons'); + resolve(menu); + }); + }); + }, + GetButtons({ commit }) { + return new Promise(resolve => { + getButtons().then(res => { + const data = res.data.data; + commit('SET_PERMISSION', data); + resolve(); + }); + }); + }, + }, + mutations: { + SET_TOKEN: (state, token) => { + setToken(token); + state.token = token; + setStore({ name: 'token', content: state.token }); + }, + SET_REFRESH_TOKEN: (state, refreshToken) => { + setRefreshToken(refreshToken); + state.refreshToken = refreshToken; + setStore({ name: 'refreshToken', content: state.refreshToken }); + }, + SET_MENU_ID(state, menuId) { + state.menuId = menuId; + }, + SET_TENANT_ID: (state, tenantId) => { + state.tenantId = tenantId; + setStore({ name: 'tenantId', content: state.tenantId }); + }, + SET_USER_INFO: (state, userInfo) => { + if (validatenull(userInfo.avatar)) { + userInfo.avatar = '/img/bg/img-logo.png'; + } + state.userInfo = userInfo; + setStore({ name: 'userInfo', content: state.userInfo }); + }, + SET_MENU_ALL: (state, menuAll) => { + let menu = state.menuAll; + menuAll.forEach(ele => { + let index = menu.findIndex(item => item.path === ele.path); + if (index === -1) { + menu.push(ele); + } else { + menu[index] = ele; + } + }); + state.menuAll = menu; + setStore({ name: 'menuAll', content: state.menuAll }); + }, + SET_MENU_ALL_NULL: state => { + state.menuAll = []; + setStore({ name: 'menuAll', content: state.menuAll }); + }, + SET_MENU: (state, menu) => { + state.menu = menu; + setStore({ name: 'menu', content: state.menu }); + }, + SET_ROLES: (state, roles) => { + state.roles = roles; + }, + SET_PERMISSION: (state, permission) => { + let result = []; + + function getCode(list) { + list.forEach(ele => { + if (typeof ele === 'object') { + const children = ele.children; + const code = ele.code; + if (children) { + getCode(children); + } else { + result.push(code); + } + } + }); + } + + getCode(permission); + state.permission = {}; + result.forEach(ele => { + state.permission[ele] = true; + }); + setStore({ name: 'permission', content: state.permission, type: 'session' }); + }, + }, +}; +export default user; diff --git a/src/styles/common.scss b/src/styles/common.scss new file mode 100644 index 0000000..75458d0 --- /dev/null +++ b/src/styles/common.scss @@ -0,0 +1,132 @@ +// 全局变量 +@import './variables.scss'; + +a { + text-decoration: none; + color: #333; +} + +* { + outline: none; +} + +.avue-sidebar, +.avue-top, +.avue-logo, +.avue-layout +.login-logo, +.avue-main { + transition: all .3s; +} + +.avue-layout { + display: flex; + height: 100%; + overflow: hidden; + + &--horizontal { + flex-direction: column; + + .avue-sidebar { + width: 100%; + height: $top_height; + display: flex; + + .avue-menu, .el-menu-item, .el-sub-menu__title { + height: $top_height; + line-height: $top_height; + } + + .is-active:before { + display: none; + } + } + + .avue-logo { + width: $sidebar_width + } + } +} + +.avue-contail { + width: 100%; + height: 100%; + background: #f0f2f5; + background-size: 100%; + background-repeat: no-repeat; +} + +.avue--collapse { + .avue-sidebar, + .avue-logo { + width: $sidebar_collapse; + } +} + +.avue-main { + position: relative; + display: flex; + flex-direction: column; + height: 100%; + flex: 1; + box-sizing: border-box; + overflow: hidden; + background: #f0f2f5; +} + +#avue-view { + flex: 1; + overflow-y: auto; + overflow-x: hidden; + margin-bottom: 10px; +} + +.avue-view { + width: 100%; + box-sizing: border-box; +} + +.avue-footer { + width: 100%; + position: absolute; + bottom: 0; + text-align: center; + + .copyright { + color: #666; + font-size: 12px; + } +} + +.mac_bg { + background-image: url("/img/bg.jpg"); + background-color: #000; + position: fixed; + left: 0; + right: 0; + top: 0; + bottom: 0; +} + +// ele样式覆盖 +@import './element-ui.scss'; +// 顶部右侧显示 +@import './top.scss'; +// 导航标签 +@import './tags.scss'; +// 工具类函数 +@import './mixin.scss'; +// 侧面导航栏 +@import './sidebar.scss'; +//主题 +@import './theme/index.scss'; +//通用配置 +@import './normalize.scss'; +//图标配置 +@import './iconfont.scss'; +//登录样式 +@import "./login.scss"; +//适配 +@import './media.scss'; +//滚动条样式 +@include scrollBar; diff --git a/src/styles/element-ui.scss b/src/styles/element-ui.scss new file mode 100644 index 0000000..db1cf47 --- /dev/null +++ b/src/styles/element-ui.scss @@ -0,0 +1,62 @@ +.el-card.is-always-shadow { + box-shadow: none; + // border: none !important; +} + +.el-menu { + border-right: none; +} + +.el-message__icon, +.el-message__content { + display: inline-block; +} + +.el-date-editor .el-range-input, +.el-date-editor .el-range-separator { + height: auto; + overflow: hidden; +} + +.el-dialog__wrapper { + z-index: 2048; +} + + +.el-col { + margin-bottom: 8px; +} + +.el-main { + padding: 0 !important; +} + +.el-dropdown-menu__item--divided:before, .el-menu, .el-menu--horizontal > .el-menu-item:not(.is-disabled):focus, .el-menu--horizontal > .el-menu-item:not(.is-disabled):hover, .el-menu--horizontal > .el-sub-menu .el-sub-menu__title:hover { + background-color: transparent; +} + + +.el-dropdown-menu__item--divided:before, .el-menu, .el-menu--horizontal > .el-menu-item:not(.is-disabled):focus, .el-menu--horizontal > .el-menu-item:not(.is-disabled):hover, .el-menu--horizontal > .el-sub-menu .el-sub-menu__title:hover { + background-color: transparent !important; +} + +.el-collapse-item__header { + height: auto; + overflow: hidden; +} + +.el-button.is-text:not(.is-disabled):active { + background-color: transparent; +} + +.el-button.is-text:not(.is-disabled):focus, .el-button.is-text:not(.is-disabled):hover { + background-color: transparent; +} + +.avue-icon i, .avue-icon svg { + line-height: 20px; +} + +.avue--detail .el-form-item { + background-color: #fafafa; +} diff --git a/src/styles/iconfont.scss b/src/styles/iconfont.scss new file mode 100644 index 0000000..b05181d --- /dev/null +++ b/src/styles/iconfont.scss @@ -0,0 +1,24 @@ + +[class^="icon-"] { + font-family: "iconfont" !important; + font-size: 18px !important; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.el-menu-item [class^=icon-] { + margin-right: 5px; + width: 24px; + text-align: center; + font-size: 18px; + vertical-align: middle; +} + +.el-sub-menu [class^=icon-] { + vertical-align: middle; + margin-right: 5px; + width: 24px; + text-align: center; + font-size: 18px; +} diff --git a/src/styles/login.scss b/src/styles/login.scss new file mode 100644 index 0000000..d2c2d58 --- /dev/null +++ b/src/styles/login.scss @@ -0,0 +1,215 @@ +.login-container { + display: flex; + align-items: center; + position: relative; + width: 100%; + height: 100%; + margin: 0 auto; + background-image: url("/images/login/bg.png"); + background-size: 100% 100%; +} + +.login-weaper { + margin: 0 auto; + width: 1000px; + box-shadow: -4px 5px 10px rgba(0, 0, 0, 0.4); + .el-input-group__append { + border: none; + } +} + +.login-left, +.login-border { + position: relative; + min-height: 500px; + align-items: center; + display: flex; +} + +.login-left { + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; + justify-content: center; + flex-direction: column; + // background-color: #8b9aac; + background-image: url("/images/login/pic1.png"); + background-size: 100% 100%; + color: #fff; + float: left; + width: 50%; + position: relative; + display: block; +} + +.login-left .img { + width: 140px; +} + +.login-time { + position: absolute; + left: 25px; + top: 25px; + width: 100%; + color: #fff; + font-weight: 200; + opacity: 0.9; + font-size: 18px; + overflow: hidden; +} + +.login-left .title { + text-align: center; + color: #333; + font-weight: bold; + font-size: 30px; + letter-spacing: 2px; + margin-top: 100px; +} + +.login-border { + border-left: none; + border-top-right-radius: 5px; + border-bottom-right-radius: 5px; + color: #fff; + background-color: #fff; + width: 50%; + float: left; + box-sizing: border-box; +} + +.login-main { + margin: 0 auto; + width: 65%; + box-sizing: border-box; +} + +.login-main > h3 { + margin-bottom: 20px; +} + +.login-main > p { + color: #76838f; +} + +.login-title { + color: #333; + margin-bottom: 40px; + margin-top: 60px; + font-weight: 600; + font-size: 20px; + text-align: center; + letter-spacing: 4px; +} + +.login-menu { + margin-top: 40px; + width: 100%; + text-align: center; + + a { + color: #999; + font-size: 12px; + margin: 0px 8px; + } +} + +.login-submit { + width: 100%; + height: 45px; + border: 0; + // background: none; + font-size: 18px; + letter-spacing: 2px; + font-weight: 300; + // color: #409EFF; + cursor: pointer; + margin-top: 30px; + font-family: "neo"; + transition: 0.25s; + background-image: linear-gradient(270deg, #409EFF 0%, #409EFF 100%); + &.bg1{ + background-image: linear-gradient(270deg, #ab0100 0%, #eb3015 100%); + } + &.bg2{ + background-image: linear-gradient(270deg, #333333 0%, #333333 100%); + } + &.bg3{ + background-image: linear-gradient(270deg, #00967b 0%, #126594 100%); + } + &.bg4{ + background-image: linear-gradient(270deg, #0e63bd 0%, #0454ab 100%); + } +} + +.register-submit { + width: 36%; + height: 45px; + border: 1px solid #EF2F63FF; + background: none; + font-size: 18px; + letter-spacing: 2px; + font-weight: 300; + color: #EF2F63FF; + cursor: pointer; + margin-top: 30px; + font-family: "neo"; + transition: 0.25s; +} + +.login-form { + margin: 10px 0; + + i { + color: #333; + } + + .el-form-item__content { + width: 100%; + } + + .el-form-item { + margin-bottom: 12px; + } + + .el-input { + .el-input__wrapper { + padding-bottom: 10px; + text-indent: 5px; + background: transparent; + box-shadow: none; + border-radius: 0; + color: #333; + border-bottom: 1px solid rgb(235, 237, 242); + } + + .el-input__prefix { + i { + padding: 0 5px; + font-size: 16px !important; + } + } + } +} + +.login-code { + display: flex; + align-items: center; + justify-content: space-around; + margin: 0 0 0 10px; +} + +.login-code-img { + margin-top: 2px; + width: 100px; + height: 38px; + background-color: #fdfdfd; + border: 1px solid #f0f0f0; + color: #333; + font-size: 14px; + font-weight: bold; + letter-spacing: 5px; + line-height: 38px; + text-indent: 5px; + text-align: center; + cursor: pointer !important; +} diff --git a/src/styles/media.scss b/src/styles/media.scss new file mode 100644 index 0000000..fac489c --- /dev/null +++ b/src/styles/media.scss @@ -0,0 +1,66 @@ +@media screen and (max-width: 992px) { + .avue-sidebar { + position: fixed; + top: 0; + left: -265px; + z-index: 1024; + } + .avue--collapse { + .avue-sidebar { + left: 0; + width: $sidebar_width; + } + + .avue-logo { + width: $sidebar_width; + } + + .avue-main { + margin-left: $sidebar_width; + } + } + // ele的自适应 + .el-dialog, + .el-message-box { + width: 98%; + } + //登录页面 + .login-left { + width: 100%; + min-height: auto; + + .title { + margin-top: 20px; + font-size: 20px; + text-shadow: #000 1px 0 0, #000 0 1px 0, #000 -1px 0 0, #000 0 -1px 0; + } + + .img { + width: 50px; + } + } + .login-logo { + padding-top: 30px; + margin-left: -30px; + } + .login-border { + border-radius: 5px; + padding: 20px; + margin: 0 auto; + width: 100%; + } + .login-main { + width: 100%; + background-color: #fff; + padding: 10px 20px; + box-shadow: none + } + .login-container { + &::before { + margin-left: 0 + } + } + .top-bar__item { + display: none; + } +} diff --git a/src/styles/mixin.scss b/src/styles/mixin.scss new file mode 100644 index 0000000..4b750fd --- /dev/null +++ b/src/styles/mixin.scss @@ -0,0 +1,70 @@ +@mixin clearfix { + &:after { + content: ""; + display: table; + clear: both; + } +} + +@mixin scrollBar { + ::-webkit-scrollbar-track-piece { + background-color: transparent; + } + ::-webkit-scrollbar { + width: 7px; + height: 7px; + background-color: transparent; + } + ::-webkit-scrollbar-thumb { + border-radius: 5px; + background-color: hsla(220, 4%, 58%, .3); + } +} + +@mixin radius($width, $size, $color) { + width: $width; + height: $width; + line-height: $width; + border-radius: $width; + text-align: center; + border-width: $size; + border-style: solid; + border-color: $color; +} + +@mixin relative { + position: relative; + width: 100%; + height: 100%; +} + +@mixin pct($pct) { + width: #{$pct}; + position: relative; + margin: 0 auto; +} + +@mixin triangle($width, $height, $color, $direction) { + $width: $width/2; + $color-border-style: $height solid $color; + $transparent-border-style: $width solid transparent; + height: 0; + width: 0; + @if $direction==up { + border-bottom: $color-border-style; + border-left: $transparent-border-style; + border-right: $transparent-border-style; + } @else if $direction==right { + border-left: $color-border-style; + border-top: $transparent-border-style; + border-bottom: $transparent-border-style; + } @else if $direction==down { + border-top: $color-border-style; + border-left: $transparent-border-style; + border-right: $transparent-border-style; + } @else if $direction==left { + border-right: $color-border-style; + border-top: $transparent-border-style; + border-bottom: $transparent-border-style; + } +} diff --git a/src/styles/normalize.scss b/src/styles/normalize.scss new file mode 100644 index 0000000..50c4f3a --- /dev/null +++ b/src/styles/normalize.scss @@ -0,0 +1,501 @@ +/*! normalize.css v2.1.2 | MIT License | git.io/normalize */ +/* +/*! 我就是自己看看,然后翻译下下,让大家看看 */ + +/* ========================================================================== + HTML5 display definitions + + HTML5 新增元素定义 + + ========================================================================== */ + +/** + * Correct `block` display not defined in IE 8/9. + * + * 修正IE 8/9 中未定义的块级元素。 + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +/** + * Correct `inline-block` display not defined in IE 8/9. + * + * 修正在 IE 8/9 中未定义的 'inline-block' 元素。 + */ + +audio, +canvas, +video { + display: inline-block; +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + * + * 阻止现在浏览器显示未定义 control 播放控件的 'audio' 声音元素。 + * 删除 IOS 5 设备中显示的多余的高度。 + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address styling not present in IE 8/9. + * + * 处理 IE 8/9 中不存在的样式。 + */ + +[hidden] { + display: none; +} + +/* ========================================================================== + Base + + 基本设置 + ========================================================================== */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + * + * 1. 设置默认字体类型为 sans-serif. + * 2. 当用户放大或缩小页面时不改变字体大小。 + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + * + * 删除默认边距。 + */ + +body { + margin: 0; +} + +/* ========================================================================== + Links + + 链接 + ========================================================================== */ + +/** + * Address `outline` inconsistency between Chrome and other browsers. + * + * 处理 Chrome 与其它浏览器中关于 'outline' 的不一致性。 + */ + +a:focus { + outline: thin dotted; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + * + * 为所有浏览器改善当激活或悬停在元素上时元素内容的可读性。 + */ + +a:active, +a:hover { + outline: 0; +} + +/* ========================================================================== + Typography + + 排版 + ========================================================================== */ + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari 5, and Chrome. + * + * 处理多变的 'h1' 字体大小及其在 Firefox 4+, Safari 5, 及 Chrome时浏览器中的 + * 'section' 与 'article' 元素中的边距。 + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9, Safari 5, and Chrome. + * + * 处理在 IE 8/9, Safari 5, 及 Chrome 没有的样式。 + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. + * + * 处理 Firefox 4+, Safari 5, 及 Chrome 中默认的 'bolder' 样式为 'bold'. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari 5 and Chrome. + * + * 处理在 Safari 5 和 Chrome 没有的样式。 + */ + +dfn { + font-style: italic; +} + +/** + * Address differences between Firefox and other browsers. + * + * 处理 Firefox 与其它浏览器的差异。 + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Address styling not present in IE 8/9. + * + * 处理在 IE 8/9 中没有的样式。 + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Correct font family set oddly in Safari 5 and Chrome. + * + * 修正确 Safari 5 和 Chrome 中古怪的默认字体。 + */ + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + font-size: 1em; +} + +/** + * Improve readability of pre-formatted text in all browsers. + * + * 为所有浏览器改善预格式化文本的可读性。 + */ + +pre { + white-space: pre-wrap; +} + +/** + * Set consistent quote types. + * + * 设置一致的引用格式。 + */ + +q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} + +/** + * Address inconsistent and variable font size in all browsers. + * + * 处理所有浏览器中字体大小的不一致性[译者注:原文直译为:处理所有 + * 浏览器中的不一致和多变的字体大小]。 + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + * + * 阻止所有浏览器中 'sub' 和 'sup' 元素影响 'line-height'. + * [译者注:就是不让上标与下标影响行高。] + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* ========================================================================== + Embedded content + + 嵌入的内容 + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9. + * + * 删除 IE 8/9 中当内容位于 'a' 中出现的边框。 + */ + +img { + border: 0; +} + +/** + * Correct overflow displayed oddly in IE 9. + * + * 修正 IE 9 中显示古怪的溢出内容。 + */ + +svg:not(:root) { + overflow: hidden; +} + +/* ========================================================================== + Figures + + Figure 图像/图表/代码等 + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari 5. + * + * 处理在 IE 8/9 和 Safari 5 没有的边距。 + */ + +figure { + margin: 0; +} + +/* ========================================================================== + Forms + ========================================================================== */ + +/** + * Define consistent border, margin, and padding. + * + * 定义一致的边框、外边距及内边距。 + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + * 1. 修正在 IE 8/9 中没有继承的 'color'. + * + * [译者注:说是修正颜色嘛,可下面没有关于颜色的呀,这也行?求大神解释!] + * 2. 去掉内边距,避免当用户清空表单组时认为出错了。 + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * 1. Correct font family not being inherited in all browsers. + * 2. Correct font size not being inherited in all browsers. + * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. + * + * 1. 修正所有浏览器中未被继承的字体类型。 + * 2. 修正所有浏览器中未被继承的字体大小。 + * 3. 处理 Firefox 4+, Safari 5, 及 Chrome 中默认设置不同的外边距。 + */ + +button, +input, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + * + * 处理 Firefox 4+ 中的客户端样式表里使用 '!important' 设置的 'line-height'. + */ + +button, +input { + line-height: normal; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. + * Correct `select` style inheritance in Firefox 4+ and Opera. + * + * 处理 'button' 和 'select' 的 'text-transform' 继承的不一致性。 + * 所有其它表单控件元素不继承 'text-transform' 的值。 + * 修正 Chrome, Safari 5+, 及 IE 8+ 中 'button' 的继承样式。 + * 修正 Firefox 4+ 和 Opera 中 'select' 的继承样式。 + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + * + * 1. 避免 Android 4.0.* 中 WebKit 的一个bug, 防止 'audio' 与 'video' 的播放控件失效。 + * 2. 修正 iOS 中不可点击的 'input' 样式。 + * 3. 改善图片类型的 'input' 等光标样式的可用性与一致性。 + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + * + * 重置不可用元素的默认光标样式。 + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * 1. Address box sizing set to `content-box` in IE 8/9. + * 2. Remove excess padding in IE 8/9. + * + * 1. 处理 IE 8/9 中设置为 'content-box' 的盒子模型。 + * 2. 删除 IE 8/9 中多余的内边距。 + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome + * (include `-moz` to future-proof). + * + * 1. 处理 Safari 5 和 Chrome 中默认设置为 'appearance' 的 'searchfield'. + * 2. 处理 Safari 5 和 Chrome 中默认设置为 'box-sizing' 的 'border-box' + * (包括不会过时的 '-moz'). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari 5 and Chrome + * on OS X. + * + * 删除 Safari 5 和 OS X 上的 Chrome 中的输入框上的内边距和搜索取消按钮。 + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Remove inner padding and border in Firefox 4+. + * + * 删除 Firefox 4+ button 与 input 上的内边距。 + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * 1. Remove default vertical scrollbar in IE 8/9. + * 2. Improve readability and alignment in all browsers. + * + * 1. 删除 IE8/9 中默认的垂直滚动条。 + * 2. 改善所有浏览器中的可读性并使文本垂直对齐。 + */ + +textarea { + overflow: auto; /* 1 */ + vertical-align: top; /* 2 */ +} + +/* ========================================================================== + Tables + + 表格 + ========================================================================== */ + +/** + * Remove most spacing between table cells. + * + * 删除表格里单元格间的间距。 + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/src/styles/sidebar.scss b/src/styles/sidebar.scss new file mode 100644 index 0000000..89e0c0b --- /dev/null +++ b/src/styles/sidebar.scss @@ -0,0 +1,75 @@ + +.avue-sidebar { + width: $sidebar_width; + height: 100%; + user-select: none; + position: relative; + height: 100%; + position: relative; + background-color: #031527; + transition: width .2s; + box-sizing: border-box; + box-shadow: 2px 0 6px rgba(0, 21, 41, .35); + + .el-scrollbar__wrap { + overflow-x: hidden; + } + + .avue-menu { + height: calc(100% - #{$top_height}); + } + + &--tip { + width: 90%; + height: 140px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 5px; + position: absolute; + top: 5px; + left: 5%; + color: #ccc; + z-index: 2; + text-align: center; + font-size: 14px; + background-color: rgba(0, 0, 0, .4); + } + + .el-menu-item, .el-sub-menu__title { + i { + margin-right: 5px; + } + + i, span { + color: hsla(0, 0%, 100%, .7); + } + + &:hover { + background: transparent; + + i, span { + color: #fff; + } + } + + &.is-active { + &:before { + content: ''; + top: 0; + left: 0; + bottom: 0; + width: 4px; + background: #409eff; + position: absolute; + } + + background-color: rgba(0, 0, 0, .8); + + i, span { + color: #fff; + } + } + } + +} diff --git a/src/styles/tags.scss b/src/styles/tags.scss new file mode 100644 index 0000000..1082bf9 --- /dev/null +++ b/src/styles/tags.scss @@ -0,0 +1,101 @@ + +.avue-tags { + user-select: none; + position: relative; + padding: 0 10px; + margin-bottom: 10px; + box-sizing: border-box; + border-top: 1px solid #f6f6f6; + background-color: #fff; + box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .05); + + .el-tabs--card > .el-tabs__header { + margin: 0; + } + + .el-tabs--card > .el-tabs__header .el-tabs__nav, + .el-tabs--card > .el-tabs__header .el-tabs__item, + .el-tabs--card > .el-tabs__header { + border: none; + } + + .el-tabs--card > .el-tabs__header .el-tabs__item:first-child { + border-left-width: 1px + } + + .el-tabs--card > .el-tabs__header .el-tabs__item { + margin: 0 3px; + height: 40px; + line-height: 40px; + font-size: 13px; + font-weight: normal; + color: #ccc; + + &.is-active { + color: #409EFF; + border-bottom: 3px solid #409EFF; + } + } + + .el-tabs__nav-prev, + .el-tabs__nav-next { + width: 20px; + line-height: 40px; + font-size: 18px; + text-align: center; + } + + &__box { + position: relative; + box-sizing: border-box; + padding-right: 106px; + width: 100%; + + .el-tabs__item { + &:first-child { + .is-icon-close { + display: none; + } + } + } + } + + &__contentmenu { + position: fixed; + width: 120px; + background-color: #fff; + z-index: 1024; + border-radius: 5px; + box-shadow: 1px 2px 10px #ccc; + + .item { + cursor: pointer; + font-size: 14px; + padding: 8px 20px 8px 15px; + color: #606266; + + &:first-child { + border-top-left-radius: 5px; + border-top-right-radius: 5px; + } + + &:last-child { + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; + } + + &:hover { + background-color: #409EFF; + color: #fff; + } + } + } + + &__menu { + position: absolute !important; + top: 3px; + right: 0; + padding: 1px 0 0 15px; + box-sizing: border-box; + } +} diff --git a/src/styles/theme/beautiful.scss b/src/styles/theme/beautiful.scss new file mode 100644 index 0000000..dae418f --- /dev/null +++ b/src/styles/theme/beautiful.scss @@ -0,0 +1,55 @@ +.theme-beautiful { + .avue-sidebar { + background: linear-gradient(90deg, #006cff, #399efd) !important; + + .el-menu-item, .el-sub-menu__title { + background: linear-gradient(90deg, #006cff, #399efd) !important; + } + + .el-menu-item, .el-sub-menu__title { + i, span { + color: #fff + } + + .is-active { + background: #399efd !important; + } + + &:hover, &.is-active { + background: #399efd !important; + + i, span { + background: #399efd !important; + } + } + } + } + + .avue-logo { + background: linear-gradient(90deg, #006cff, #399efd) !important; + } + + .avue-tags { + .el-tabs__item { + font-size: 14px !important; + color: #303133 !important; + font-weight: 500 !important; + border: 1px solid #dcdfe6 !important; + border-radius: 3px; + height: 35px !important; + line-height: 35px !important; + margin: 5px 3px 8px 3px !important; + + &:hover { + color: #409EFF !important; + border-color: #409EFF !important; + } + } + + .is-active { + color: #409EFF !important; + border-color: #409EFF !important; + } + } + +} diff --git a/src/styles/theme/bule.scss b/src/styles/theme/bule.scss new file mode 100644 index 0000000..0c59765 --- /dev/null +++ b/src/styles/theme/bule.scss @@ -0,0 +1,53 @@ +.theme-bule { + + .avue-top, .avue-logo { + background: #004ca7; + } + + .avue-sidebar { + background: #004ca7; + + .el-menu-item.is-active, .el-sub-menu__title.is-active { + background-color: rgba(0, 0, 0, 0.2); + } + } + + .el-dropdown { + color: #fff; + } + + .avue-logo { + .avue-logo_title { + color: #fff; + } + } + + .avue-breadcrumb { + i { + color: #fff; + } + } + + .top-bar__item { + i { + color: #fff; + } + } + + .avue-top { + + .el-menu-item { + i, + span { + color: #fff; + } + + &:hover { + i, + span { + color: #fff; + } + } + } + } +} diff --git a/src/styles/theme/cool.scss b/src/styles/theme/cool.scss new file mode 100644 index 0000000..0d4969f --- /dev/null +++ b/src/styles/theme/cool.scss @@ -0,0 +1,175 @@ +.theme-cool { + .el-menu--popup { + .el-menu-item { + background-color: #fff; + + i, span { + color: #666; + } + + &:hover { + i, span { + color: #333; + } + } + + &.is-active { + background-color: #409EFF; + + &:before { + content: ''; + top: 0; + left: 0; + bottom: 0; + width: 4px; + background: #409eff; + position: absolute; + } + + i, span { + color: #fff; + } + } + } + } + + .avue-top { + background: linear-gradient(120deg, #25aff3, #008ad3); + } + + .avue-tags { + padding: 0 3px; + margin: 8px 0; + box-shadow: none; + background-color: transparent; + + .el-tabs__header .el-tabs__item { + padding: 0 10px !important; + background-color: #fff; + margin-right: 5px; + color: #909399; + border-radius: 3px; + height: 30px; + font-size: 12px; + line-height: 30px; + + &.is-active { + border: none; + color: #008ad3; + } + } + } + + .avue-logo { + background: #fff; + box-shadow: none; + } + + .avue-sidebar--tip { + background-color: transparent; + color: #333; + } + + .el-dropdown { + color: #fff; + } + + .avue-logo_title { + font-weight: 400; + color: #008ad3; + } + + .logo_title, + .avue-breadcrumb { + color: #fff; + + i { + color: #fff; + } + } + + .avue-top { + .el-menu-item { + i, + span { + color: #fff; + } + + &:hover { + i, + span { + color: #fff; + } + } + } + } + + .avue-sidebar { + box-shadow: 2px 0 6px rgba(0, 21, 41, 0.15); + background-color: #fff; + + .el-menu-item, .el-sub-menu__title { + font-size: 13px; + + i, span { + color: #000; + } + + &:hover { + background: transparent; + + i, span { + color: #000; + } + } + + &.is-active { + background-color: #e5f1fb; + + &::before { + width: 0; + } + + i, span { + color: #25aff3; + } + } + } + } + + .top-search { + .el-input__inner { + color: #333; + } + + input::-webkit-input-placeholder, + textarea::-webkit-input-placeholder { + /* WebKit browsers */ + color: #fff; + } + + input:-moz-placeholder, + textarea:-moz-placeholder { + /* Mozilla Firefox 4 to 18 */ + color: #fff; + } + + input::-moz-placeholder, + textarea::-moz-placeholder { + /* Mozilla Firefox 19+ */ + color: #fff; + } + + input:-ms-input-placeholder, + textarea:-ms-input-placeholder { + /* Internet Explorer 10+ */ + color: #fff; + } + } + + .top-bar__item { + i { + color: #fff; + } + } +} diff --git a/src/styles/theme/d2.scss b/src/styles/theme/d2.scss new file mode 100644 index 0000000..a944497 --- /dev/null +++ b/src/styles/theme/d2.scss @@ -0,0 +1,68 @@ +.theme-d2 { + .avue-logo { + color: #409EFF; + background-color: #ebf1f6; + box-shadow: none; + + .avue-logo_title { + font-size: 20px; + font-weight: 400; + } + } + + .avue-top { + background-color: #ebf1f6; + box-shadow: none; + } + + .avue-main { + padding: 0 5px; + } + + .avue-tags { + margin-left: 6px; + padding: 0; + border: 1px solid #e4e7ed; + border-radius: 3px; + background-color: #ebf1f6; + box-shadow: none; + + .el-tabs__item { + border-left: 1px solid #cfd7e5 !important; + margin: 0 !important; + background-color: rgba(0, 0, 0, .03) !important; + color: #606266 !important; + font-size: 14px !important; + font-weight: 500 !important; + + &:first-child { + border-left: none !important; + } + } + + .is-active { + border-bottom: 1px solid #fff !important; + background-color: #fff !important; + color: #409EFF !important; + } + } + + .avue-sidebar { + background-color: #ebf1f6; + box-shadow: none; + + .el-menu-item, .el-sub-menu__title { + i, span { + color: #606266 + } + + &:hover, &.is-active { + background: hsla(0, 0%, 100%, .5); + + i, span { + color: #409EFF; + } + } + } + } +} diff --git a/src/styles/theme/dark.scss b/src/styles/theme/dark.scss new file mode 100644 index 0000000..53d64f9 --- /dev/null +++ b/src/styles/theme/dark.scss @@ -0,0 +1,70 @@ +.theme-dark { + .avue-logo { + color: #fff; + background-color: #2c3643; + box-shadow: none; + + .avue-logo_title { + font-size: 20px; + font-weight: 400; + } + } + + .avue-top { + background-color: #2c3643; + box-shadow: none; + color: #ccc; + + i, span { + color: #ccc; + } + } + + .avue-main { + padding: 0 5px; + } + + .avue-tags { + padding-left: 0; + background-color: #2c3643; + border-color: transparent; + + .el-tabs__item { + margin: 0 !important; + background-color: #262d37; + + &.is-active { + color: #262d37 !important; + background-color: #fff !important; + border-color: #262d37 !important; + } + } + } + + .avue-main { + background-color: #2c3643; + } + + .avue-sidebar { + background-color: #2c3643; + box-shadow: none; + + .el-menu-item, .el-sub-menu__title { + i, span { + color: #ccc; + } + + &:hover, &.is-active { + background: #262d37; + + i, span { + color: #fff; + } + + &:before { + background-color: #000; + } + } + } + } +} diff --git a/src/styles/theme/hey.scss b/src/styles/theme/hey.scss new file mode 100644 index 0000000..6c379a0 --- /dev/null +++ b/src/styles/theme/hey.scss @@ -0,0 +1,56 @@ +.theme-hey { + .avue-sidebar { + background-color: #fff; + box-shadow: 0 1px 4px rgba(0, 21, 41, .08); + + .el-menu-item, .el-sub-menu__title { + i, span { + color: rgba(49, 58, 70, .8); + } + + &:hover { + background: transparent; + + i, span { + color: #409eff; + } + } + + &.is-active { + &:before { + left: auto; + right: 0; + } + + background-color: #f0f6ff; + + i, span { + color: #409eff; + } + } + } + } + + .avue-logo { + background-color: #fff; + box-shadow: none; + + .avue-logo_title { + color: #409eff; + font-size: 20px; + } + } + + .avue-tags { + background: #f3f6f8; + + .el-tabs__item { + color: rgba(0, 0, 0, .65) !important; + } + + .is-active { + background-color: #fff; + border-bottom: none !important; + } + } +} diff --git a/src/styles/theme/index.scss b/src/styles/theme/index.scss new file mode 100644 index 0000000..99cb53a --- /dev/null +++ b/src/styles/theme/index.scss @@ -0,0 +1,32 @@ +// white +@import './white.scss'; + +// star +@import './star.scss'; + +// vip +@import './vip.scss'; + +// d2 +@import './d2.scss'; + +// bule +@import './bule.scss'; + +//iview +@import './iview.scss'; + +//heyui +@import './hey.scss'; + +//dark +@import './dark.scss'; + +//lte +@import 'lte'; + +//cool +@import './cool.scss'; + +//beautiful +@import './beautiful.scss'; diff --git a/src/styles/theme/iview.scss b/src/styles/theme/iview.scss new file mode 100644 index 0000000..cab3498 --- /dev/null +++ b/src/styles/theme/iview.scss @@ -0,0 +1,87 @@ +.theme-iview { + .avue-logo { + background: #001529; + box-shadow: none; + text-align: center; + + .avue-logo_title { + padding: 5px 8px 8px 8px; + border-top-left-radius: 5px; + border-top-right-radius: 5px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; + font-size: 20px; + color: #fff; + font-weight: 500; + display: inline; + background-color: #409EFF; + } + } + + .avue-tags { + padding: 3px 5px 5px 0; + background: #f0f0f0; + box-shadow: inset 0 0 3px 2px hsla(0, 0%, 39.2%, .1); + + .is-active { + &:before { + background: #409EFF !important; + } + } + + .el-tabs__item { + padding: 0 15px !important; + position: relative; + height: 32px !important; + line-height: 32px !important; + border: 1px solid #e8eaec !important; + color: #515a6e !important; + background: #fff !important; + border-radius: 3px; + + &:before { + content: ''; + display: inline-block; + width: 12px; + height: 12px; + margin-right: 10px; + border-radius: 50%; + background: #e8eaec; + } + } + } + + .avue-sidebar { + background: #001529; + + .el-menu-item { + &.is-active { + background-color: #000c17; + + &:before { + display: none; + } + + i, span { + color: #409EFF; + } + } + } + + .el-sub-menu { + .el-menu-item { + &.is-active { + background-color: #409EFF; + + &:before { + display: none; + } + + i, span { + color: #fff; + } + } + } + } + } +} diff --git a/src/styles/theme/lte.scss b/src/styles/theme/lte.scss new file mode 100644 index 0000000..f42e9ea --- /dev/null +++ b/src/styles/theme/lte.scss @@ -0,0 +1,44 @@ +.theme-lte { + .avue-logo { + background-color: #409EFF; + + .avue-logo_title { + font-weight: 500; + font-size: 20px; + color: #fff; + } + } + + .avue-tags { + .el-tabs__item { + font-size: 12px !important; + font-weight: 500 !important; + } + } + + .avue-sidebar { + background-color: #263238; + + .el-menu-item, .el-sub-menu__title { + i, span { + color: #8a979e; + } + + &:hover { + background-color: #2b373d; + } + + &.is-active { + &:before { + display: none; + } + + background-color: #2b373d; + + i, span { + color: #fff; + } + } + } + } +} diff --git a/src/styles/theme/star.scss b/src/styles/theme/star.scss new file mode 100644 index 0000000..36d0817 --- /dev/null +++ b/src/styles/theme/star.scss @@ -0,0 +1,116 @@ +.theme-star { + .avue-main { + background: transparent; + } + + .avue-contail { + background-image: url("/img/star-squashed.jpg"); + background-size: 100% 100%; + } + + .avue-logo { + color: #fff; + } + + .avue-top, + .avue-logo, + .tags-container { + background-color: transparent; + } + + .el-card, .error-page { + opacity: .9; + } + + .avue-tabs { + padding: 0 20px; + } + + .avue-tags { + background-color: transparent; + border-top: none; + } + + .avue-top { + .avue-breadcrumb { + color: #fff; + } + + .el-menu-item { + i, span { + color: #fff; + } + + &.is-active { + background-color: rgba(0, 0, 0, .4) + } + } + + .el-dropdown { + color: #fff; + } + } + + .avue-sidebar { + box-shadow: 2px 0 6px rgba(0, 21, 41, 0.15); + background-color: transparent; + + .el-menu-item, .el-sub-menu__title { + i, span { + color: #fff + } + + &:hover { + background: transparent; + + i, span { + color: #409EFF; + } + } + + &.is-active { + background-color: rgba(0, 0, 0, .4); + + i, span { + color: #fff; + } + } + } + } + + .top-search { + .el-input__inner { + color: #333; + } + + input::-webkit-input-placeholder, + textarea::-webkit-input-placeholder { + /* WebKit browsers */ + color: #fff; + } + + input:-moz-placeholder, + textarea:-moz-placeholder { + /* Mozilla Firefox 4 to 18 */ + color: #fff; + } + + input::-moz-placeholder, + textarea::-moz-placeholder { + /* Mozilla Firefox 19+ */ + color: #fff; + } + + input:-ms-input-placeholder, + textarea:-ms-input-placeholder { + /* Internet Explorer 10+ */ + color: #fff; + } + } + + .top-bar__item { + i { + color: #fff; + } + } +} diff --git a/src/styles/theme/vip.scss b/src/styles/theme/vip.scss new file mode 100644 index 0000000..a395ef5 --- /dev/null +++ b/src/styles/theme/vip.scss @@ -0,0 +1,109 @@ +.theme-vip { + $color: rgba(246, 202, 157, .7); + $is_active_color: #f6ca9d; + + .avue-top { + background-color: #20222a; + } + + .el-dropdown { + color: $color; + } + + .avue-logo { + .avue-logo_title { + background-image: -webkit-gradient(linear, left top, left bottom, from($color), to($is_active_color)); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + font-weight: 400; + } + } + + .avue-breadcrumb { + i { + color: $color; + } + } + + .avue-sidebar { + .el-menu-item { + &.is-active { + &:before { + background: $color; + } + + i, span { + color: $is_active_color; + } + } + } + } + + .avue-tags { + .el-tabs__item { + color: rgba(0, 0, 0, 0.4) !important; + + &.is-active { + color: $is_active_color !important; + border-color: $is_active_color !important; + } + + &:before { + background: $is_active_color; + } + } + } + + .top-search { + .el-input__inner { + color: $color; + } + + input::-webkit-input-placeholder, + textarea::-webkit-input-placeholder { + /* WebKit browsers */ + color: $color; + } + + input:-moz-placeholder, + textarea:-moz-placeholder { + /* Mozilla Firefox 4 to 18 */ + color: $color; + } + + input::-moz-placeholder, + textarea::-moz-placeholder { + /* Mozilla Firefox 19+ */ + color: $color; + } + + input:-ms-input-placeholder, + textarea:-ms-input-placeholder { + /* Internet Explorer 10+ */ + color: $color; + } + } + + .top-bar__item { + i { + color: $color; + } + } + + .avue-top { + + .el-menu-item { + i, + span { + color: $color; + } + + &:hover { + i, + span { + color: $is_active_color; + } + } + } + } +} diff --git a/src/styles/theme/white.scss b/src/styles/theme/white.scss new file mode 100644 index 0000000..1b16bd3 --- /dev/null +++ b/src/styles/theme/white.scss @@ -0,0 +1,143 @@ +.theme-white { + .el-menu--popup { + .el-menu-item { + background-color: #fff; + + i, span { + color: #666; + } + + &:hover { + i, span { + color: #333; + } + } + + &.is-active { + background-color: #409EFF; + + &:before { + content: ''; + top: 0; + left: 0; + bottom: 0; + width: 4px; + background: #409eff; + position: absolute; + } + + i, span { + color: #fff; + } + } + } + } + + .avue-top, + .avue-logo, + .tags-container { + background-color: #409EFF; + } + + .avue-sidebar--tip { + background-color: transparent; + color: #333; + } + + .el-dropdown { + color: #fff; + } + + .avue-logo_title { + font-weight: 400; + color: #fff; + } + + .logo_title, + .avue-breadcrumb { + color: #fff; + + i { + color: #fff; + } + } + + .avue-top { + .el-menu-item { + i, + span { + color: #fff; + } + + &:hover { + i, + span { + color: #fff; + } + } + } + } + + .avue-sidebar { + box-shadow: 2px 0 6px rgba(0, 21, 41, 0.15); + background-color: #fff; + + .el-menu-item, .el-sub-menu__title { + i, span { + color: #666 + } + + &:hover { + background: transparent; + + i, span { + color: #333; + } + } + + &.is-active { + background-color: #409EFF; + + i, span { + color: #fff; + } + } + } + } + + .top-search { + .el-input__inner { + color: #333; + } + + input::-webkit-input-placeholder, + textarea::-webkit-input-placeholder { + /* WebKit browsers */ + color: #fff; + } + + input:-moz-placeholder, + textarea:-moz-placeholder { + /* Mozilla Firefox 4 to 18 */ + color: #fff; + } + + input::-moz-placeholder, + textarea::-moz-placeholder { + /* Mozilla Firefox 19+ */ + color: #fff; + } + + input:-ms-input-placeholder, + textarea:-ms-input-placeholder { + /* Internet Explorer 10+ */ + color: #fff; + } + } + + .top-bar__item { + i { + color: #fff; + } + } +} diff --git a/src/styles/top.scss b/src/styles/top.scss new file mode 100644 index 0000000..5481f33 --- /dev/null +++ b/src/styles/top.scss @@ -0,0 +1,140 @@ +.avue-top { + position: relative; + background-color: #fff; + box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.15); + color: rgba(0, 0, 0, .65); + font-size: 28px; + height: $top_height; + line-height: $top_height; + box-sizing: border-box; + white-space: nowrap; + + .el-menu-item { + i, span { + font-size: 13px; + } + } +} + +.avue-breadcrumb { + height: 100%; + + i { + font-size: 30px !important; + } + + &--active { + transform: rotate(90deg); + } +} + +.top-user { + margin-left: 20px; + display: flex; + align-items: center; +} + +.top-menu { + .el-menu-item { + padding: 0 10px; + border: none; + } +} + +.top-search { + line-height: $top_height; + position: absolute !important; + right: 200px; + top: 0; + width: 300px; + + .el-input__wrapper { + font-size: 13px; + border: none; + box-shadow: none; + background-color: transparent; + } +} + +.top-bar__img { + margin: 0 5px; + padding: 2px; + width: 30px; + height: 30px; + border-radius: 100%; + box-sizing: border-box; + border: 1px solid #eee; + vertical-align: middle; +} + +.top-bar__left, +.top-bar__right { + height: $top_height; + position: absolute; + margin-top: 2px; + top: 0; + + i { + line-height: $top_height; + } +} + +.top-bar__left { + left: 10px; +} + +.top-bar__right { + right: 10px; + display: flex; + align-items: center; +} + +.top-bar__item { + position: relative; + display: inline-block; + height: $top_height; + margin: 0 7px; + font-size: 16px; + + .el-badge__content.is-fixed { + top: 12px; + right: 5px; + } +} + +.top-bar__title { + height: 100%; + padding-left: 50px; + box-sizing: border-box; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-size: inherit; + font-weight: 400; +} + +.avue-logo { + height: $top_height; + line-height: $top_height; + background-color: #031527; + font-size: 20px; + overflow: hidden; + box-sizing: border-box; + box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.15); + color: #fff; + + &_title { + display: block; + text-align: center; + font-weight: bold; + font-size: 20px; + } + + &_subtitle { + display: block; + text-align: center; + font-size: 18px; + font-weight: bold; + color: #fff; + } +} diff --git a/src/styles/variables.scss b/src/styles/variables.scss new file mode 100644 index 0000000..ef29df7 --- /dev/null +++ b/src/styles/variables.scss @@ -0,0 +1,3 @@ +$sidebar_width: 230px; +$sidebar_collapse: 60px; +$top_height: 50px; diff --git a/src/utils/auth.js b/src/utils/auth.js new file mode 100644 index 0000000..123d7e5 --- /dev/null +++ b/src/utils/auth.js @@ -0,0 +1,32 @@ +import Cookies from 'js-cookie'; + +const TokenKey = 'saber3-access-token'; +const RefreshTokenKey = 'saber3-refresh-token'; +const SessionId = 'JSESSIONID'; +const UserId = 'b-user-id'; + +export function getToken() { + return Cookies.get(TokenKey); +} + +export function setToken(token) { + return Cookies.set(TokenKey, token); +} + +export function getRefreshToken() { + return Cookies.get(RefreshTokenKey); +} + +export function setRefreshToken(token) { + return Cookies.set(RefreshTokenKey, token); +} + +export function removeToken() { + Cookies.remove(SessionId); + Cookies.remove(UserId); + return Cookies.remove(TokenKey); +} + +export function removeRefreshToken() { + return Cookies.remove(RefreshTokenKey); +} diff --git a/src/utils/crypto.js b/src/utils/crypto.js new file mode 100644 index 0000000..8388d44 --- /dev/null +++ b/src/utils/crypto.js @@ -0,0 +1,94 @@ +import CryptoJS from 'crypto-js'; + +export default class crypto { + /** + * token加密key 使用@org.springblade.test.CryptoKeyGenerator获取,需和后端配置保持一致 + * @type {string} + */ + static cryptoKey = 'sja69KSDtTtoDPSCVzrYpesw2LoKFBeI'; + /** + * 报文加密key 使用@org.springblade.test.CryptoKeyGenerator获取,需和后端配置保持一致 + * @type {string} + */ + static aesKey = 'tvX0ubkg2X0g1IhT47JEDestjHhnTvb2'; + /** + * 报文加密key 使用@org.springblade.test.CryptoKeyGenerator获取,需和后端配置保持一致 + * @type {string} + */ + static desKey = '6FHTnmx2ElUHhEzK'; + + /** + * aes 加密方法 + * @param data + * @returns {*} + */ + static encrypt(data) { + return this.encryptAES(data, this.aesKey); + } + + /** + * aes 解密方法 + * @param data + * @returns {*} + */ + static decrypt(data) { + return this.decryptAES(data, this.aesKey); + } + + /** + * aes 加密方法,同java:AesUtil.encryptToBase64(text, aesKey); + */ + static encryptAES(data, key) { + const dataBytes = CryptoJS.enc.Utf8.parse(data); + const keyBytes = CryptoJS.enc.Utf8.parse(key); + const encrypted = CryptoJS.AES.encrypt(dataBytes, keyBytes, { + iv: keyBytes, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Pkcs7, + }); + return CryptoJS.enc.Base64.stringify(encrypted.ciphertext); + } + + /** + * aes 解密方法,同java:AesUtil.decryptFormBase64ToString(encrypt, aesKey); + */ + static decryptAES(data, key) { + const keyBytes = CryptoJS.enc.Utf8.parse(key); + const decrypted = CryptoJS.AES.decrypt(data, keyBytes, { + iv: keyBytes, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Pkcs7, + }); + return CryptoJS.enc.Utf8.stringify(decrypted); + } + + /** + * des 加密方法,同java:DesUtil.encryptToBase64(text, desKey) + */ + static encryptDES(data, key) { + const keyHex = CryptoJS.enc.Utf8.parse(key); + const encrypted = CryptoJS.DES.encrypt(data, keyHex, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7, + }); + return encrypted.toString(); + } + + /** + * des 解密方法,同java:DesUtil.decryptFormBase64(encryptBase64, desKey); + */ + static decryptDES(data, key) { + const keyHex = CryptoJS.enc.Utf8.parse(key); + const decrypted = CryptoJS.DES.decrypt( + { + ciphertext: CryptoJS.enc.Base64.parse(data), + }, + keyHex, + { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7, + } + ); + return decrypted.toString(CryptoJS.enc.Utf8); + } +} diff --git a/src/utils/date.js b/src/utils/date.js new file mode 100644 index 0000000..47e5c0e --- /dev/null +++ b/src/utils/date.js @@ -0,0 +1,78 @@ +export const calcDate = (date1, date2) => { + let date3 = date2 - date1; + + let days = Math.floor(date3 / (24 * 3600 * 1000)); + + let leave1 = date3 % (24 * 3600 * 1000); //计算天数后剩余的毫秒数 + let hours = Math.floor(leave1 / (3600 * 1000)); + + let leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数 + let minutes = Math.floor(leave2 / (60 * 1000)); + + let leave3 = leave2 % (60 * 1000); //计算分钟数后剩余的毫秒数 + let seconds = Math.round(date3 / 1000); + return { + leave1, + leave2, + leave3, + days: days, + hours: hours, + minutes: minutes, + seconds: seconds, + }; +}; + +export function formatDate(cellValue,type) { + if (cellValue == null || cellValue == "") return ""; + var date = new Date(cellValue) + var year = date.getFullYear() + var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1 + var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() + var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours() + var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() + var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() + if(type=='day'){ + return year + '-' + month + '-' + day + }else if(type=='month'){ + return year + '-' + month + }else if(type=='year'){ + return String(year) + }else{ + return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds + } +} + +/** + * 日期格式化 + */ +export function dateFormat(date, format) { + format = format || 'yyyy-MM-dd hh:mm:ss'; + if (date !== 'Invalid Date') { + let o = { + 'M+': date.getMonth() + 1, //month + 'd+': date.getDate(), //day + 'h+': date.getHours(), //hour + 'm+': date.getMinutes(), //minute + 's+': date.getSeconds(), //second + 'q+': Math.floor((date.getMonth() + 3) / 3), //quarter + S: date.getMilliseconds(), //millisecond + }; + if (/(y+)/.test(format)) + format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)); + for (let k in o) + if (new RegExp('(' + k + ')').test(format)) + format = format.replace( + RegExp.$1, + RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length) + ); + return format; + } + return ''; +} + +/** + * 当前时间戳 + */ +export function dateNow() { + return dateFormat(new Date(), 'yyyyMMddhhmmss'); +} diff --git a/src/utils/flow.js b/src/utils/flow.js new file mode 100644 index 0000000..7c9e918 --- /dev/null +++ b/src/utils/flow.js @@ -0,0 +1,20 @@ +/** + * 工作流统一分类格式 + * @param category 分类字典号 + * @returns {string} + */ +export function flowCategory(category) { + return `flow_${category}`; +} + +/** + * 根据key获取流程路由 + * @param routes + * @param key + */ +export function flowRoute(routes, key) { + const data = routes.filter(d => { + return d.routeKey === key; + }); + return data.length === 0 ? [] : data[0].routeValue; +} diff --git a/src/utils/func.js b/src/utils/func.js new file mode 100644 index 0000000..350e2ff --- /dev/null +++ b/src/utils/func.js @@ -0,0 +1,350 @@ +/** + * 通用工具类 + */ +export default class func { + /** + * 不为空 + * @param val + * @returns {boolean} + */ + static notEmpty(val) { + return !this.isEmpty(val); + } + + /** + * 是否为定义 + * @param val + * @returns {boolean} + */ + static isUndefined(val) { + return val === null || typeof val === 'undefined'; + } + + /** + * 为空 + * @param val + * @returns {boolean} + */ + static isEmpty(val) { + if ( + val === null || + typeof val === 'undefined' || + (typeof val === 'string' && val === '' && val !== 'undefined') + ) { + return true; + } + return false; + } + + /** + * 强转int型 + * @param val + * @param defaultValue + * @returns {number} + */ + static toInt(val, defaultValue) { + if (this.isEmpty(val)) { + return defaultValue === undefined ? -1 : defaultValue; + } + const num = parseInt(val, 0); + return Number.isNaN(num) ? (defaultValue === undefined ? -1 : defaultValue) : num; + } + + /** + * Json强转为Form类型 + * @param obj + * @returns {FormData} + */ + static toFormData(obj) { + const data = new FormData(); + Object.keys(obj).forEach(key => { + data.append(key, Array.isArray(obj[key]) ? obj[key].join(',') : obj[key]); + }); + return data; + } + + /** + * date类转为字符串格式 + * @param date + * @param format + * @returns {null} + */ + static format(date, format = 'YYYY-MM-DD HH:mm:ss') { + return date ? date.format(format) : null; + } + + /** + * data类格式化 + * @param timestamp + * @returns {string} + */ + static formatDateTime(timestamp) { + return this.formatDate(new Date(timestamp)); + } + + /** + * data类格式化 + * @param date + * @returns {string} + */ + static formatDate(date) { + const pad = (num) => (num < 10 ? '0' + num : num); + + const year = date.getFullYear(); + const month = pad(date.getMonth() + 1); // 月份从0开始,所以+1 + const day = pad(date.getDate()); + const hour = pad(date.getHours()); + const minute = pad(date.getMinutes()); + const second = pad(date.getSeconds()); + + return `${year}-${month}-${day} ${hour}:${minute}:${second}`; + } + + /** + * 格式化时区解决时间差问题 + * @param datetime + * @returns {string} + */ + static toLocalISOString(datetime) { + let timezoneOffset = datetime.getTimezoneOffset() * 60000; // 获取当前时区与UTC的时间差(以毫秒为单位) + let localDatetime = new Date(datetime - timezoneOffset); // 调整时间,得到当前时区时间 + return localDatetime.toISOString(); + } + + /** + * 根据逗号联合 + * @param arr + * @returns {string} + */ + static join(arr) { + return Array.isArray(arr) ? arr.join(',') : arr; + } + + /** + * 根据逗号分隔 + * @param str + * @returns {string} + */ + static split(str) { + return str ? String(str).split(',') : ''; + } + + /** + * 转换空字符串 + * @param str + * @returns {string|*} + */ + static toStr(str) { + if (typeof str === 'undefined' || str === null) { + return ''; + } + return str; + } + + /** + * 判断是否为数组 + * @param param + * @returns {boolean} + */ + static isArrayAndNotEmpty(param) { + return Array.isArray(param) && param.length > 0; + } + + /** + * 格式化URL + * @param url + * @returns {*|string} + */ + static formatUrl(url) { + if (!url) return url; + if (url.startsWith('http://') || url.startsWith('https://')) { + return url; + } else { + return `http://${url}`; + } + } + + /** + * bytes转换为kb单位 + * @param bytes + * @returns {string} + */ + static bytesToKB(bytes) { + const kb = bytes / 1024; + return kb.toFixed(2); + } + + /** + * json数组转换成key value字符串 + * @param jsonArray "[{enumKey: 'key', enumValue: 'value'}]" + * @returns {*} + */ + static jsonArrayToKeyValue(jsonArray) { + if (this.isEmpty(jsonArray)) { + return ''; + } + return jsonArray.map(item => `${item.enumKey}:${item.enumValue}`).join(';'); + } + + /** + * key value字符串转换成json数组 + * @param keyValue key:value;key:value + * @returns {*[]} + */ + static keyValueToJsonArray(keyValue) { + if (this.isEmpty(keyValue)) { + return []; + } + return keyValue.split(';').map((kv, index) => { + const [key, value] = kv.split(':'); + return { + id: index, + enumKey: key, + enumValue: value + }; + }); + } + + /** + * 生成随机字符串 + * @param length 长度 + * @returns {string} + */ + static strGenerate(length) { + const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + const maxLength = 256; + if (length > maxLength) { + throw new Error(`长度最大值不能超过 ${maxLength}`); + } + + return Array.from({length}, () => characters.charAt(Math.floor(Math.random() * characters.length))).join(''); + } + + /** + * 生成UUID + * @returns {string} + */ + static generateUUID() { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { + const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8); + return v.toString(16); + }); + } + + /** + * 将列表数据放大多少倍 + * @returns {string} + */ + static zoomListNum(list,scale) { + let result = []; + list.forEach(item=>{ + result.push(parseFloat(item*scale).toFixed(3)); + }) + return result; + } + + /** + * 将列表数据放大多少倍 + * @returns {string} + */ + static zoomNum(num,scale,fix) { + if(num==-1){ + return "-"; + } + if(!num){ + return 0; + } + if(!fix){ + fix = 3; + } + return (parseFloat(num*scale).toFixed(fix)); + } + + static getAdCode(proviceName){ + var adcodes = [{"adcode":100000,"name":"全国"},{"adcode":110000,"name":"北京市"},{"adcode":120000,"name":"天津市"},{"adcode":130000,"name":"河北省"},{"adcode":140000,"name":"山西省"},{"adcode":150000,"name":"内蒙古自治区"},{"adcode":210000,"name":"辽宁省"},{"adcode":220000,"name":"吉林省"},{"adcode":230000,"name":"黑龙江省"},{"adcode":310000,"name":"上海市"},{"adcode":320000,"name":"江苏省"},{"adcode":330000,"name":"浙江省"},{"adcode":340000,"name":"安徽省"},{"adcode":350000,"name":"福建省"},{"adcode":360000,"name":"江西省"},{"adcode":370000,"name":"山东省"},{"adcode":410000,"name":"河南省"},{"adcode":420000,"name":"湖北省"},{"adcode":430000,"name":"湖南省"},{"adcode":440000,"name":"广东省"},{"adcode":450000,"name":"广西壮族自治区"},{"adcode":460000,"name":"海南省"},{"adcode":500000,"name":"重庆市"},{"adcode":510000,"name":"四川省"},{"adcode":520000,"name":"贵州省"},{"adcode":530000,"name":"云南省"},{"adcode":540000,"name":"西藏自治区"},{"adcode":610000,"name":"陕西省"},{"adcode":620000,"name":"甘肃省"},{"adcode":630000,"name":"青海省"},{"adcode":640000,"name":"宁夏回族自治区"},{"adcode":650000,"name":"新疆维吾尔自治区"},{"adcode":710000, "name": "台湾省"},{"adcode":810000,"name":"香港特别行政区"},{"adcode":820000,"name":"澳门特别行政区"}] + let result = "未查询到"; + console.log(proviceName) + adcodes.forEach(item=>{ + + if(proviceName == item.name){ + console.log(item) + result = item.adcode; + } + }) + return result; + } + + /** + * 通过省获取省会的坐标地址 + * @param proviceName + * @returns {坐标} + */ + static getProvicePosition(proviceName) { + + if(proviceName.indexOf("省") !== -1){ + proviceName = proviceName.replace("省",""); + } + + var capitalCitiesCoordinates = { + "北京": { "latitude": 39.904987, "longitude": 116.405289 }, + "安徽": { "latitude": 31.861191, "longitude": 117.283043 }, + "重庆": { "latitude": 29.533155, "longitude": 106.504959 }, + "福建": { "latitude": 26.075302, "longitude": 119.306236 }, + "甘肃": { "latitude": 36.061380, "longitude": 103.834170 }, + "广东": { "latitude": 23.125177, "longitude": 113.28064 }, + "广西": { "latitude": 22.82402, "longitude": 108.320007 }, + "贵州": { "latitude": 26.578342, "longitude": 106.713478 }, + "海南": { "latitude": 20.044220, "longitude": 110.199890 }, + "河北": { "latitude": 38.045475, "longitude": 114.502464 }, + "河南": { "latitude": 34.757977, "longitude": 113.665413 }, + "黑龙江": { "latitude": 45.756966, "longitude": 126.642464 }, + "湖北": { "latitude": 30.584354, "longitude": 114.298569 }, + "湖南": { "latitude": 28.19409, "longitude": 112.982277 }, + "江苏": { "latitude": 32.041546, "longitude": 118.76741 }, + "江西": { "latitude": 28.676493, "longitude": 115.892151 }, + "辽宁": { "latitude": 41.796768, "longitude": 123.429092 }, + "内蒙古": { "latitude": 40.841490, "longitude": 111.751990 }, + "宁夏": { "latitude": 38.486440, "longitude": 106.232480 }, + "青海": { "latitude": 36.617290, "longitude": 101.777820 }, + "山东": { "latitude": 36.675808, "longitude": 117.000923 }, + "山西": { "latitude": 37.857014, "longitude": 112.549248 }, + "陕西": { "latitude": 34.263161, "longitude": 108.948021 }, + "上海": { "latitude": 31.231707, "longitude": 121.472641 }, + "四川": { "latitude": 30.659462, "longitude": 104.065735 }, + "天津": { "latitude": 39.125595, "longitude": 117.190186 }, + "西藏": { "latitude": 29.644150, "longitude": 91.11450 }, + "新疆": { "latitude": 43.826630, "longitude": 87.616880 }, + "云南": { "latitude": 25.040609, "longitude": 102.71225 }, + "浙江": { "latitude": 30.287458, "longitude": 120.15358 }, + // 港澳台特别行政区 + "香港": { "latitude": 22.275340, "longitude": 114.165460 }, + "澳门": { "latitude": 22.198750, "longitude": 113.549130 }, + "台北": { "latitude": 25.030724, "longitude": 121.520076 }, + "广西壮族自治区": {"longitude": "108.320007","latitude": "22.82402"}, + "内蒙古自治区": { + "longitude": "111.75199", + "latitude": "40.84149" + }, + "西藏自治区": { + "longitude": "91.132212", + "latitude": "29.660361" + }, + "新疆维吾尔自治区": { + "longitude": "87.617729", + "latitude": "43.826839" + }, + "宁夏回族自治区": { + "longitude": "106.278361", + "latitude": "38.46747" + } + }; + + let result = capitalCitiesCoordinates[proviceName]; + if(!result){ + result = {"longitude": "0","latitude": "0"}; + } + + return result; + } + +} diff --git a/src/utils/store.js b/src/utils/store.js new file mode 100644 index 0000000..d007dc9 --- /dev/null +++ b/src/utils/store.js @@ -0,0 +1,103 @@ +import { validatenull } from 'utils/validate'; +import website from '@/config/website'; + +const keyName = website.key + '-'; +/** + * 存储localStorage + */ +export const setStore = (params = {}) => { + let { name, content, type } = params; + name = keyName + name; + let obj = { + dataType: typeof content, + content: content, + type: type, + datetime: new Date().getTime(), + }; + if (type) window.sessionStorage.setItem(name, JSON.stringify(obj)); + else window.localStorage.setItem(name, JSON.stringify(obj)); +}; +/** + * 获取localStorage + */ + +export const getStore = (params = {}) => { + let { name, debug } = params; + name = keyName + name; + let obj = {}, + content; + obj = window.sessionStorage.getItem(name); + if (validatenull(obj)) obj = window.localStorage.getItem(name); + if (validatenull(obj)) return; + try { + obj = JSON.parse(obj); + } catch { + return obj; + } + if (debug) { + return obj; + } + if (obj.dataType == 'string') { + content = obj.content; + } else if (obj.dataType == 'number') { + content = Number(obj.content); + } else if (obj.dataType == 'boolean') { + content = eval(obj.content); + } else if (obj.dataType == 'object') { + content = obj.content; + } + return content; +}; +/** + * 删除localStorage + */ +export const removeStore = (params = {}) => { + let { name, type } = params; + name = keyName + name; + if (type) { + window.sessionStorage.removeItem(name); + } else { + window.localStorage.removeItem(name); + } +}; + +/** + * 获取全部localStorage + */ +export const getAllStore = (params = {}) => { + let list = []; + let { type } = params; + if (type) { + for (let i = 0; i <= window.sessionStorage.length; i++) { + list.push({ + name: window.sessionStorage.key(i), + content: getStore({ + name: window.sessionStorage.key(i), + type: 'session', + }), + }); + } + } else { + for (let i = 0; i <= window.localStorage.length; i++) { + list.push({ + name: window.localStorage.key(i), + content: getStore({ + name: window.localStorage.key(i), + }), + }); + } + } + return list; +}; + +/** + * 清空全部localStorage + */ +export const clearStore = (params = {}) => { + let { type } = params; + if (type) { + window.sessionStorage.clear(); + } else { + window.localStorage.clear(); + } +}; diff --git a/src/utils/util.js b/src/utils/util.js new file mode 100644 index 0000000..0cdfc47 --- /dev/null +++ b/src/utils/util.js @@ -0,0 +1,413 @@ +import { validatenull } from './validate'; +import sha256 from 'crypto-js/sha256'; +import Base64 from 'crypto-js/enc-base64'; +//表单序列化 +export const serialize = data => { + let list = []; + Object.keys(data).forEach(ele => { + list.push(`${ele}=${data[ele]}`); + }); + return list.join('&'); +}; +export const getObjType = obj => { + var toString = Object.prototype.toString; + var map = { + '[object Boolean]': 'boolean', + '[object Number]': 'number', + '[object String]': 'string', + '[object Function]': 'function', + '[object Array]': 'array', + '[object Date]': 'date', + '[object RegExp]': 'regExp', + '[object Undefined]': 'undefined', + '[object Null]': 'null', + '[object Object]': 'object', + }; + if (obj instanceof Element) { + return 'element'; + } + return map[toString.call(obj)]; +}; +/** + * 对象深拷贝 + */ +export const deepClone = data => { + var type = getObjType(data); + var obj; + if (type === 'array') { + obj = []; + } else if (type === 'object') { + obj = {}; + } else { + //不再具有下一层次 + return data; + } + if (type === 'array') { + for (var i = 0, len = data.length; i < len; i++) { + obj.push(deepClone(data[i])); + } + } else if (type === 'object') { + for (var key in data) { + obj[key] = deepClone(data[key]); + } + } + return obj; +}; +/** + * 设置灰度模式 + */ +export const toggleGrayMode = status => { + if (status) { + document.body.className = document.body.className + ' grayMode'; + } else { + document.body.className = document.body.className.replace(' grayMode', ''); + } +}; +/** + * 设置主题 + */ +export const setTheme = name => { + document.body.className = name; +}; + +/** + * 加密处理 + */ +export const encryption = params => { + let { data = {}, type, param, key } = params; + let result = JSON.parse(JSON.stringify(data)); + if (type == 'Base64') { + param.forEach(ele => { + result[ele] = Base64.stringify(result[ele]); + }); + } else if (type == 'Aes') { + param.forEach(ele => { + result[ele] = sha256(result[ele], key); + }); + } + return result; +}; + +/** + * 浏览器判断是否全屏 + */ +export const fullscreenToggel = () => { + if (fullscreenEnable()) { + exitFullScreen(); + } else { + reqFullScreen(); + } +}; +/** + * esc监听全屏 + */ +export const listenfullscreen = callback => { + function listen() { + callback(); + } + + document.addEventListener('fullscreenchange', function () { + listen(); + }); + document.addEventListener('mozfullscreenchange', function () { + listen(); + }); + document.addEventListener('webkitfullscreenchange', function () { + listen(); + }); + document.addEventListener('msfullscreenchange', function () { + listen(); + }); +}; +/** + * 浏览器判断是否全屏 + */ +export const fullscreenEnable = () => { + var isFullscreen = + document.isFullScreen || document.mozIsFullScreen || document.webkitIsFullScreen; + return isFullscreen; +}; + +/** + * 浏览器全屏 + */ +export const reqFullScreen = () => { + if (document.documentElement.requestFullScreen) { + document.documentElement.requestFullScreen(); + } else if (document.documentElement.webkitRequestFullScreen) { + document.documentElement.webkitRequestFullScreen(); + } else if (document.documentElement.mozRequestFullScreen) { + document.documentElement.mozRequestFullScreen(); + } +}; +/** + * 浏览器退出全屏 + */ +export const exitFullScreen = () => { + if (document.documentElement.requestFullScreen) { + document.exitFullScreen(); + } else if (document.documentElement.webkitRequestFullScreen) { + document.webkitCancelFullScreen(); + } else if (document.documentElement.mozRequestFullScreen) { + document.mozCancelFullScreen(); + } +}; +/** + * 递归寻找子类的父类 + */ + +export const findParent = (menu, id) => { + for (let i = 0; i < menu.length; i++) { + if (menu[i].children.length != 0) { + for (let j = 0; j < menu[i].children.length; j++) { + if (menu[i].children[j].id == id) { + return menu[i]; + } else { + if (menu[i].children[j].children.length != 0) { + return findParent(menu[i].children[j].children, id); + } + } + } + } + } +}; +/** + * 判断2个对象属性和值是否相等 + */ + +/** + * 动态插入css + */ + +export const loadStyle = url => { + const link = document.createElement('link'); + link.type = 'text/css'; + link.rel = 'stylesheet'; + link.href = url; + const head = document.getElementsByTagName('head')[0]; + head.appendChild(link); +}; +/** + * 判断路由是否相等 + */ +export const diff = (obj1, obj2) => { + delete obj1.close; + var o1 = obj1 instanceof Object; + var o2 = obj2 instanceof Object; + if (!o1 || !o2) { + /* 判断不是对象 */ + return obj1 === obj2; + } + + if (Object.keys(obj1).length !== Object.keys(obj2).length) { + return false; + //Object.keys() 返回一个由对象的自身可枚举属性(key值)组成的数组,例如:数组返回下表:let arr = ["a", "b", "c"];console.log(Object.keys(arr))->0,1,2; + } + + for (var attr in obj1) { + var t1 = obj1[attr] instanceof Object; + var t2 = obj2[attr] instanceof Object; + if (t1 && t2) { + return diff(obj1[attr], obj2[attr]); + } else if (obj1[attr] !== obj2[attr]) { + return false; + } + } + return true; +}; +/** + * 根据字典的value显示label + */ +export const findByvalue = (dic, value) => { + let result = ''; + if (validatenull(dic)) return value; + if (typeof value == 'string' || typeof value == 'number' || typeof value == 'boolean') { + let index = 0; + index = findArray(dic, value); + if (index != -1) { + result = dic[index].label; + } else { + result = value; + } + } else if (value instanceof Array) { + result = []; + let index = 0; + value.forEach(ele => { + index = findArray(dic, ele); + if (index != -1) { + result.push(dic[index].label); + } else { + result.push(value); + } + }); + result = result.toString(); + } + return result; +}; +/** + * 根据字典的value查找对应的index + */ +export const findArray = (dic, value) => { + for (let i = 0; i < dic.length; i++) { + if (dic[i].value == value) { + return i; + } + } + return -1; +}; +/** + * 生成随机len位数字 + */ +export const randomLenNum = (len, date) => { + let random = ''; + random = Math.ceil(Math.random() * 100000000000000) + .toString() + .substr(0, len ? len : 4); + if (date) random = random + Date.now(); + return random; +}; +/** + * 打开小窗口 + */ +export const openWindow = (url, title, w, h) => { + // Fixes dual-screen position Most browsers Firefox + const dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : screen.left; + const dualScreenTop = window.screenTop !== undefined ? window.screenTop : screen.top; + + const width = window.innerWidth + ? window.innerWidth + : document.documentElement.clientWidth + ? document.documentElement.clientWidth + : screen.width; + const height = window.innerHeight + ? window.innerHeight + : document.documentElement.clientHeight + ? document.documentElement.clientHeight + : screen.height; + + const left = width / 2 - w / 2 + dualScreenLeft; + const top = height / 2 - h / 2 + dualScreenTop; + const newWindow = window.open( + url, + title, + 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=yes, copyhistory=no, width=' + + w + + ', height=' + + h + + ', top=' + + top + + ', left=' + + left + ); + + // Puts focus on the newWindow + if (window.focus) { + newWindow.focus(); + } +}; + +export const getScreen = isCollapse => { + if (document.body.clientWidth <= 768) { + return !isCollapse; + } else { + return isCollapse; + } +}; + +/** + * 获取顶部地址栏地址 + */ +export const getTopUrl = () => { + return window.location.href.split('/#/')[0]; +}; + +/** + * 获取url参数 + * @param name 参数名 + */ +export const getQueryString = name => { + let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i'); + let r = window.location.search.substr(1).match(reg); + if (r != null) return unescape(decodeURI(r[2])); + return null; +}; + +/** + * 下载文件 + * @param {String} path - 文件地址 + * @param {String} name - 文件名,eg: test.png + */ +export const downloadFileBlob = (path, name) => { + const xhr = new XMLHttpRequest(); + xhr.open('get', path); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function () { + if (this.status === 200 || this.status === 304) { + // 如果是IE10及以上,不支持download属性,采用msSaveOrOpenBlob方法,但是IE10以下也不支持msSaveOrOpenBlob + if ('msSaveOrOpenBlob' in navigator) { + navigator.msSaveOrOpenBlob(this.response, name); + return; + } + const url = URL.createObjectURL(this.response); + const a = document.createElement('a'); + a.style.display = 'none'; + a.href = url; + a.download = name; + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + URL.revokeObjectURL(url); + } + }; +}; + +/** + * 下载文件 + * @param {String} path - 文件地址 + * @param {String} name - 文件名,eg: test.png + */ +export const downloadFileBase64 = (path, name) => { + const xhr = new XMLHttpRequest(); + xhr.open('get', path); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function () { + if (this.status === 200 || this.status === 304) { + const fileReader = new FileReader(); + fileReader.readAsDataURL(this.response); + fileReader.onload = function () { + const a = document.createElement('a'); + a.style.display = 'none'; + a.href = this.result; + a.download = name; + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + }; + } + }; +}; +/** + * 下载excel + * @param {blob} fileArrayBuffer 文件流 + * @param {String} filename 文件名称 + */ +export const downloadXls = (fileArrayBuffer, filename) => { + let data = new Blob([fileArrayBuffer], { type: 'application/vnd.ms-excel,charset=utf-8' }); + if (typeof window.chrome !== 'undefined') { + // Chrome + var link = document.createElement('a'); + link.href = window.URL.createObjectURL(data); + link.download = filename; + link.click(); + } else if (typeof window.navigator.msSaveBlob !== 'undefined') { + // IE + var blob = new Blob([data], { type: 'application/force-download' }); + window.navigator.msSaveBlob(blob, filename); + } else { + // Firefox + var file = new File([data], filename, { type: 'application/force-download' }); + window.open(URL.createObjectURL(file)); + } +}; diff --git a/src/utils/validate.js b/src/utils/validate.js new file mode 100644 index 0000000..c3834b2 --- /dev/null +++ b/src/utils/validate.js @@ -0,0 +1,274 @@ +/** + * Created by jiachenpan on 16/11/18. + */ + +export function isvalidUsername(str) { + const valid_map = ['admin', 'editor']; + return valid_map.indexOf(str.trim()) >= 0; +} + +/* 合法uri*/ +export function validateURL(textval) { + const urlregex = + /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/; + return urlregex.test(textval); +} + +/** + * 邮箱 + * @param {*} s + */ +export function isEmail(s) { + return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s); +} + +/** + * 手机号码 + * @param {*} s + */ +export function isMobile(s) { + return /^1[0-9]{10}$/.test(s); +} + +/** + * 电话号码 + * @param {*} s + */ +export function isPhone(s) { + return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s); +} + +/** + * URL地址 + * @param {*} s + */ +export function isURL(s) { + return /^http[s]?:\/\/.*/.test(s); +} + +/* 小写字母*/ +export function validateLowerCase(str) { + const reg = /^[a-z]+$/; + return reg.test(str); +} + +/* 大写字母*/ +export function validateUpperCase(str) { + const reg = /^[A-Z]+$/; + return reg.test(str); +} + +/* 大小写字母*/ +export function validatAlphabets(str) { + const reg = /^[A-Za-z]+$/; + return reg.test(str); +} + +/*验证pad还是pc*/ +export const vaildatePc = function () { + const userAgentInfo = navigator.userAgent; + const Agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod']; + let flag = true; + for (var v = 0; v < Agents.length; v++) { + if (userAgentInfo.indexOf(Agents[v]) > 0) { + flag = false; + break; + } + } + return flag; +}; + +/** + * validate email + * @param email + * @returns {boolean} + */ +export function validateEmail(email) { + const re = + /^(([^<>()\\[\]\\.,;:\s@"]+(\.[^<>()\\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + return re.test(email); +} + +/** + * 判断身份证号码 + */ +export function cardid(code) { + let list = []; + let result = true; + let msg = ''; + var city = { + 11: '北京', + 12: '天津', + 13: '河北', + 14: '山西', + 15: '内蒙古', + 21: '辽宁', + 22: '吉林', + 23: '黑龙江 ', + 31: '上海', + 32: '江苏', + 33: '浙江', + 34: '安徽', + 35: '福建', + 36: '江西', + 37: '山东', + 41: '河南', + 42: '湖北 ', + 43: '湖南', + 44: '广东', + 45: '广西', + 46: '海南', + 50: '重庆', + 51: '四川', + 52: '贵州', + 53: '云南', + 54: '西藏 ', + 61: '陕西', + 62: '甘肃', + 63: '青海', + 64: '宁夏', + 65: '新疆', + 71: '台湾', + 81: '香港', + 82: '澳门', + 91: '国外 ', + }; + if (!validatenull(code)) { + if (code.length === 18) { + if (!code || !/(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(code)) { + msg = '证件号码格式错误'; + } else if (!city[code.substr(0, 2)]) { + msg = '地址编码错误'; + } else { + //18位身份证需要验证最后一位校验位 + code = code.split(''); + //∑(ai×Wi)(mod 11) + //加权因子 + var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; + //校验位 + var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2, 'x']; + var sum = 0; + var ai = 0; + var wi = 0; + for (var i = 0; i < 17; i++) { + ai = code[i]; + wi = factor[i]; + sum += ai * wi; + } + if (parity[sum % 11] !== code[17]) { + msg = '证件号码校验位错误'; + } else { + result = false; + } + } + } else { + msg = '证件号码长度不为18位'; + } + } else { + msg = '证件号码不能为空'; + } + list.push(result); + list.push(msg); + return list; +} + +/** + * 判断手机号码是否正确 + */ +export function isvalidatemobile(phone) { + let list = []; + let result = true; + let msg = ''; + var isPhone = /^0\d{2,3}-?\d{7,8}$/; + //增加134 减少|1349[0-9]{7},增加181,增加145,增加17[678] + if (!validatenull(phone)) { + if (phone.length === 11) { + if (isPhone.test(phone)) { + msg = '手机号码格式不正确'; + } else { + result = false; + } + } else { + msg = '手机号码长度不为11位'; + } + } else { + msg = '手机号码不能为空'; + } + list.push(result); + list.push(msg); + return list; +} + +/** + * 判断姓名是否正确 + */ +export function validatename(name) { + var regName = /^[\u4e00-\u9fa5]{2,4}$/; + if (!regName.test(name)) return false; + return true; +} + +/** + * 判断是否为整数 + */ +export function validatenum(num, type) { + let regName = /[^\d.]/g; + if (type === 1) { + if (!regName.test(num)) return false; + } else if (type === 2) { + regName = /[^\d]/g; + if (!regName.test(num)) return false; + } + return true; +} + +/** + * 判断是否为小数 + */ +export function validatenumord(num, type) { + let regName = /[^\d.]/g; + if (type === 1) { + if (!regName.test(num)) return false; + } else if (type === 2) { + regName = /[^\d.]/g; + if (!regName.test(num)) return false; + } + return true; +} + +/** + * 判断是否为空 + */ +export function validatenull(val) { + if (typeof val == 'boolean') { + return false; + } + if (typeof val == 'number') { + return false; + } + if (val instanceof Array) { + if (val.length === 0) return true; + } else if (val instanceof Object) { + if (JSON.stringify(val) === '{}') return true; + } else { + if (val === 'null' || val == null || val === 'undefined' || val === undefined || val === '') + return true; + return false; + } + return false; +} + +/** + * 判断是否为json + */ +export function validatejson(val) { + if (typeof val === 'string') { + try { + const obj = JSON.parse(val); + return obj !== null && typeof obj === 'object'; + } catch (e) { + return false; + } + } + return false; +} diff --git a/src/views/authority/apiscope.vue b/src/views/authority/apiscope.vue new file mode 100644 index 0000000..66fe087 --- /dev/null +++ b/src/views/authority/apiscope.vue @@ -0,0 +1,671 @@ + + + diff --git a/src/views/authority/datascope.vue b/src/views/authority/datascope.vue new file mode 100644 index 0000000..14d0b9a --- /dev/null +++ b/src/views/authority/datascope.vue @@ -0,0 +1,764 @@ + + + diff --git a/src/views/authority/role.vue b/src/views/authority/role.vue new file mode 100644 index 0000000..4778242 --- /dev/null +++ b/src/views/authority/role.vue @@ -0,0 +1,401 @@ + + + diff --git a/src/views/base/region.vue b/src/views/base/region.vue new file mode 100644 index 0000000..32c8fcd --- /dev/null +++ b/src/views/base/region.vue @@ -0,0 +1,472 @@ + + + + + diff --git a/src/views/desk/notice.vue b/src/views/desk/notice.vue new file mode 100644 index 0000000..6d87760 --- /dev/null +++ b/src/views/desk/notice.vue @@ -0,0 +1,309 @@ + + + + + diff --git a/src/views/finance/account.vue b/src/views/finance/account.vue new file mode 100644 index 0000000..6b427ba --- /dev/null +++ b/src/views/finance/account.vue @@ -0,0 +1,132 @@ + + + + + diff --git a/src/views/finance/settlement.vue b/src/views/finance/settlement.vue new file mode 100644 index 0000000..b8350a3 --- /dev/null +++ b/src/views/finance/settlement.vue @@ -0,0 +1,216 @@ + + + + + diff --git a/src/views/job/jobinfo.vue b/src/views/job/jobinfo.vue new file mode 100644 index 0000000..839bf7e --- /dev/null +++ b/src/views/job/jobinfo.vue @@ -0,0 +1,293 @@ + + + + + diff --git a/src/views/job/jobserver.vue b/src/views/job/jobserver.vue new file mode 100644 index 0000000..f156c46 --- /dev/null +++ b/src/views/job/jobserver.vue @@ -0,0 +1,236 @@ + + + + + diff --git a/src/views/material/material.vue b/src/views/material/material.vue new file mode 100644 index 0000000..1c8a191 --- /dev/null +++ b/src/views/material/material.vue @@ -0,0 +1,332 @@ + + + + + diff --git a/src/views/material/materialEngineer.vue b/src/views/material/materialEngineer.vue new file mode 100644 index 0000000..98429d7 --- /dev/null +++ b/src/views/material/materialEngineer.vue @@ -0,0 +1,225 @@ + + + + + diff --git a/src/views/material/materialEngineerOutbound.vue b/src/views/material/materialEngineerOutbound.vue new file mode 100644 index 0000000..932d98e --- /dev/null +++ b/src/views/material/materialEngineerOutbound.vue @@ -0,0 +1,242 @@ + + + + + diff --git a/src/views/material/materialOperation.vue b/src/views/material/materialOperation.vue new file mode 100644 index 0000000..cef14df --- /dev/null +++ b/src/views/material/materialOperation.vue @@ -0,0 +1,225 @@ + + + + + diff --git a/src/views/material/materialOperationOutbound.vue b/src/views/material/materialOperationOutbound.vue new file mode 100644 index 0000000..aca0864 --- /dev/null +++ b/src/views/material/materialOperationOutbound.vue @@ -0,0 +1,241 @@ + + + + + diff --git a/src/views/material/materialOutbound.vue b/src/views/material/materialOutbound.vue new file mode 100644 index 0000000..3015dcc --- /dev/null +++ b/src/views/material/materialOutbound.vue @@ -0,0 +1,222 @@ + + + + + diff --git a/src/views/monitor/log/api.vue b/src/views/monitor/log/api.vue new file mode 100644 index 0000000..be4fbb8 --- /dev/null +++ b/src/views/monitor/log/api.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/src/views/monitor/log/error.vue b/src/views/monitor/log/error.vue new file mode 100644 index 0000000..a94c6ca --- /dev/null +++ b/src/views/monitor/log/error.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/src/views/monitor/log/usual.vue b/src/views/monitor/log/usual.vue new file mode 100644 index 0000000..2b6d1fa --- /dev/null +++ b/src/views/monitor/log/usual.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/src/views/nh/alarmCode.vue b/src/views/nh/alarmCode.vue new file mode 100644 index 0000000..ef113a3 --- /dev/null +++ b/src/views/nh/alarmCode.vue @@ -0,0 +1,236 @@ + + + + + diff --git a/src/views/nh/alarmInfo.vue b/src/views/nh/alarmInfo.vue new file mode 100644 index 0000000..e66610b --- /dev/null +++ b/src/views/nh/alarmInfo.vue @@ -0,0 +1,43 @@ + + + diff --git a/src/views/nh/alarmInfoClosed.vue b/src/views/nh/alarmInfoClosed.vue new file mode 100644 index 0000000..881e822 --- /dev/null +++ b/src/views/nh/alarmInfoClosed.vue @@ -0,0 +1,366 @@ + + + + + diff --git a/src/views/nh/alarmInfoUnclose.vue b/src/views/nh/alarmInfoUnclose.vue new file mode 100644 index 0000000..3df6818 --- /dev/null +++ b/src/views/nh/alarmInfoUnclose.vue @@ -0,0 +1,393 @@ + + + + + diff --git a/src/views/nh/components/InefficientHistory.vue b/src/views/nh/components/InefficientHistory.vue new file mode 100644 index 0000000..bb86b5a --- /dev/null +++ b/src/views/nh/components/InefficientHistory.vue @@ -0,0 +1,268 @@ + + + + + diff --git a/src/views/nh/components/InefficientLastWeek.vue b/src/views/nh/components/InefficientLastWeek.vue new file mode 100644 index 0000000..ee92a1e --- /dev/null +++ b/src/views/nh/components/InefficientLastWeek.vue @@ -0,0 +1,277 @@ + + + + + diff --git a/src/views/nh/components/InefficientWaitConfirm.vue b/src/views/nh/components/InefficientWaitConfirm.vue new file mode 100644 index 0000000..31accec --- /dev/null +++ b/src/views/nh/components/InefficientWaitConfirm.vue @@ -0,0 +1,333 @@ + + + + + diff --git a/src/views/nh/components/InefficientYWHistory.vue b/src/views/nh/components/InefficientYWHistory.vue new file mode 100644 index 0000000..9cbf2e8 --- /dev/null +++ b/src/views/nh/components/InefficientYWHistory.vue @@ -0,0 +1,12 @@ + + + + + diff --git a/src/views/nh/components/device.vue b/src/views/nh/components/device.vue new file mode 100644 index 0000000..a26c2aa --- /dev/null +++ b/src/views/nh/components/device.vue @@ -0,0 +1,231 @@ + + + + + \ No newline at end of file diff --git a/src/views/nh/components/deviceDetail.vue b/src/views/nh/components/deviceDetail.vue new file mode 100644 index 0000000..a2243e1 --- /dev/null +++ b/src/views/nh/components/deviceDetail.vue @@ -0,0 +1,217 @@ + + + + + \ No newline at end of file diff --git a/src/views/nh/components/overview.vue b/src/views/nh/components/overview.vue new file mode 100644 index 0000000..d4f8677 --- /dev/null +++ b/src/views/nh/components/overview.vue @@ -0,0 +1,493 @@ + + + + + \ No newline at end of file diff --git a/src/views/nh/components/serviceList.vue b/src/views/nh/components/serviceList.vue new file mode 100644 index 0000000..f6a2ea7 --- /dev/null +++ b/src/views/nh/components/serviceList.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/src/views/nh/components/weather.vue b/src/views/nh/components/weather.vue new file mode 100644 index 0000000..10cc531 --- /dev/null +++ b/src/views/nh/components/weather.vue @@ -0,0 +1,246 @@ + + + + + \ No newline at end of file diff --git a/src/views/nh/device.vue b/src/views/nh/device.vue new file mode 100644 index 0000000..d96d74a --- /dev/null +++ b/src/views/nh/device.vue @@ -0,0 +1,225 @@ + + + + + diff --git a/src/views/nh/inefficientSetting.vue b/src/views/nh/inefficientSetting.vue new file mode 100644 index 0000000..22447be --- /dev/null +++ b/src/views/nh/inefficientSetting.vue @@ -0,0 +1,370 @@ + + + + + diff --git a/src/views/nh/inverterData.vue b/src/views/nh/inverterData.vue new file mode 100644 index 0000000..41a3175 --- /dev/null +++ b/src/views/nh/inverterData.vue @@ -0,0 +1,225 @@ + + + + + diff --git a/src/views/nh/inverterTree copy.vue b/src/views/nh/inverterTree copy.vue new file mode 100644 index 0000000..46aa014 --- /dev/null +++ b/src/views/nh/inverterTree copy.vue @@ -0,0 +1,415 @@ + + + + + diff --git a/src/views/nh/inverterTree.vue b/src/views/nh/inverterTree.vue new file mode 100644 index 0000000..1838b06 --- /dev/null +++ b/src/views/nh/inverterTree.vue @@ -0,0 +1,485 @@ + + + + + diff --git a/src/views/nh/map/mapProvice.vue b/src/views/nh/map/mapProvice.vue new file mode 100644 index 0000000..6e3530b --- /dev/null +++ b/src/views/nh/map/mapProvice.vue @@ -0,0 +1,234 @@ + + + + + diff --git a/src/views/nh/map/mapSpread.vue b/src/views/nh/map/mapSpread.vue new file mode 100644 index 0000000..a3c47fe --- /dev/null +++ b/src/views/nh/map/mapSpread.vue @@ -0,0 +1,388 @@ + + + + + diff --git a/src/views/nh/monitorEntryDailyStat.vue b/src/views/nh/monitorEntryDailyStat.vue new file mode 100644 index 0000000..f0ac745 --- /dev/null +++ b/src/views/nh/monitorEntryDailyStat.vue @@ -0,0 +1,225 @@ + + + + + diff --git a/src/views/nh/monitorEntryMonthStat.vue b/src/views/nh/monitorEntryMonthStat.vue new file mode 100644 index 0000000..634a7af --- /dev/null +++ b/src/views/nh/monitorEntryMonthStat.vue @@ -0,0 +1,225 @@ + + + + + diff --git a/src/views/nh/monitorEntryStat.vue b/src/views/nh/monitorEntryStat.vue new file mode 100644 index 0000000..2a49e04 --- /dev/null +++ b/src/views/nh/monitorEntryStat.vue @@ -0,0 +1,225 @@ + + + + + diff --git a/src/views/nh/monitorEntryYearStat.vue b/src/views/nh/monitorEntryYearStat.vue new file mode 100644 index 0000000..c2b196a --- /dev/null +++ b/src/views/nh/monitorEntryYearStat.vue @@ -0,0 +1,225 @@ + + + + + diff --git a/src/views/nh/monitorInverterStat.vue b/src/views/nh/monitorInverterStat.vue new file mode 100644 index 0000000..1f122ee --- /dev/null +++ b/src/views/nh/monitorInverterStat.vue @@ -0,0 +1,225 @@ + + + + + diff --git a/src/views/nh/powerStation.vue b/src/views/nh/powerStation.vue new file mode 100644 index 0000000..2742b77 --- /dev/null +++ b/src/views/nh/powerStation.vue @@ -0,0 +1,348 @@ + + + + + diff --git a/src/views/nh/powerStationDetail.vue b/src/views/nh/powerStationDetail.vue new file mode 100644 index 0000000..3f7bc17 --- /dev/null +++ b/src/views/nh/powerStationDetail.vue @@ -0,0 +1,51 @@ + + + diff --git a/src/views/nh/powerStationInefficient.vue b/src/views/nh/powerStationInefficient.vue new file mode 100644 index 0000000..884dc71 --- /dev/null +++ b/src/views/nh/powerStationInefficient.vue @@ -0,0 +1,64 @@ + + + diff --git a/src/views/order/componets/dispatch.vue b/src/views/order/componets/dispatch.vue new file mode 100644 index 0000000..9c49d2a --- /dev/null +++ b/src/views/order/componets/dispatch.vue @@ -0,0 +1,214 @@ + + + + + \ No newline at end of file diff --git a/src/views/order/componets/feedback.vue b/src/views/order/componets/feedback.vue new file mode 100644 index 0000000..ee5d318 --- /dev/null +++ b/src/views/order/componets/feedback.vue @@ -0,0 +1,90 @@ + + + + + \ No newline at end of file diff --git a/src/views/order/componets/settlement.vue b/src/views/order/componets/settlement.vue new file mode 100644 index 0000000..30e9583 --- /dev/null +++ b/src/views/order/componets/settlement.vue @@ -0,0 +1,87 @@ + + + + + \ No newline at end of file diff --git a/src/views/order/djsOrder.vue b/src/views/order/djsOrder.vue new file mode 100644 index 0000000..df5ffea --- /dev/null +++ b/src/views/order/djsOrder.vue @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/src/views/order/dpgOrder.vue b/src/views/order/dpgOrder.vue new file mode 100644 index 0000000..911ae44 --- /dev/null +++ b/src/views/order/dpgOrder.vue @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/src/views/order/fwzOrder.vue b/src/views/order/fwzOrder.vue new file mode 100644 index 0000000..8edf704 --- /dev/null +++ b/src/views/order/fwzOrder.vue @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/src/views/order/order.vue b/src/views/order/order.vue new file mode 100644 index 0000000..7aa4fd0 --- /dev/null +++ b/src/views/order/order.vue @@ -0,0 +1,643 @@ + + + + + diff --git a/src/views/order/ywcOrder.vue b/src/views/order/ywcOrder.vue new file mode 100644 index 0000000..3df8772 --- /dev/null +++ b/src/views/order/ywcOrder.vue @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/src/views/report/reportlist.vue b/src/views/report/reportlist.vue new file mode 100644 index 0000000..23175a6 --- /dev/null +++ b/src/views/report/reportlist.vue @@ -0,0 +1,201 @@ + + + + + diff --git a/src/views/resource/attach.vue b/src/views/resource/attach.vue new file mode 100644 index 0000000..fc2bf4d --- /dev/null +++ b/src/views/resource/attach.vue @@ -0,0 +1,306 @@ + + + + + diff --git a/src/views/resource/oss.vue b/src/views/resource/oss.vue new file mode 100644 index 0000000..c7de273 --- /dev/null +++ b/src/views/resource/oss.vue @@ -0,0 +1,444 @@ + + + diff --git a/src/views/resource/sms.vue b/src/views/resource/sms.vue new file mode 100644 index 0000000..b68bafc --- /dev/null +++ b/src/views/resource/sms.vue @@ -0,0 +1,461 @@ + + + diff --git a/src/views/system/client.vue b/src/views/system/client.vue new file mode 100644 index 0000000..b505b54 --- /dev/null +++ b/src/views/system/client.vue @@ -0,0 +1,368 @@ + + + + + diff --git a/src/views/system/componets/userLimit.vue b/src/views/system/componets/userLimit.vue new file mode 100644 index 0000000..533466e --- /dev/null +++ b/src/views/system/componets/userLimit.vue @@ -0,0 +1,187 @@ + + + + + \ No newline at end of file diff --git a/src/views/system/dept.vue b/src/views/system/dept.vue new file mode 100644 index 0000000..131597a --- /dev/null +++ b/src/views/system/dept.vue @@ -0,0 +1,379 @@ + + + + + diff --git a/src/views/system/dict.vue b/src/views/system/dict.vue new file mode 100644 index 0000000..92d82ef --- /dev/null +++ b/src/views/system/dict.vue @@ -0,0 +1,450 @@ + + + diff --git a/src/views/system/dictbiz.vue b/src/views/system/dictbiz.vue new file mode 100644 index 0000000..0e3f5e0 --- /dev/null +++ b/src/views/system/dictbiz.vue @@ -0,0 +1,450 @@ + + + diff --git a/src/views/system/menu.vue b/src/views/system/menu.vue new file mode 100644 index 0000000..0b45850 --- /dev/null +++ b/src/views/system/menu.vue @@ -0,0 +1,435 @@ + + + + + diff --git a/src/views/system/param.vue b/src/views/system/param.vue new file mode 100644 index 0000000..cfd47a8 --- /dev/null +++ b/src/views/system/param.vue @@ -0,0 +1,371 @@ + + + diff --git a/src/views/system/post.vue b/src/views/system/post.vue new file mode 100644 index 0000000..4ab72a5 --- /dev/null +++ b/src/views/system/post.vue @@ -0,0 +1,298 @@ + + + + + diff --git a/src/views/system/tenant.vue b/src/views/system/tenant.vue new file mode 100644 index 0000000..b2aa82c --- /dev/null +++ b/src/views/system/tenant.vue @@ -0,0 +1,603 @@ + + + + + diff --git a/src/views/system/tenantpackage.vue b/src/views/system/tenantpackage.vue new file mode 100644 index 0000000..9a90bc6 --- /dev/null +++ b/src/views/system/tenantpackage.vue @@ -0,0 +1,249 @@ + + + + + diff --git a/src/views/system/topmenu.vue b/src/views/system/topmenu.vue new file mode 100644 index 0000000..490f7e0 --- /dev/null +++ b/src/views/system/topmenu.vue @@ -0,0 +1,365 @@ + + + + + diff --git a/src/views/system/user.vue b/src/views/system/user.vue new file mode 100644 index 0000000..415bfdf --- /dev/null +++ b/src/views/system/user.vue @@ -0,0 +1,1117 @@ + + + + + diff --git a/src/views/system/userinfo.vue b/src/views/system/userinfo.vue new file mode 100644 index 0000000..205e289 --- /dev/null +++ b/src/views/system/userinfo.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/src/views/systemSet/componets/userLimit.vue b/src/views/systemSet/componets/userLimit.vue new file mode 100644 index 0000000..de75fa3 --- /dev/null +++ b/src/views/systemSet/componets/userLimit.vue @@ -0,0 +1,141 @@ + + + + + \ No newline at end of file diff --git a/src/views/systemSet/notice.vue b/src/views/systemSet/notice.vue new file mode 100644 index 0000000..be60cb5 --- /dev/null +++ b/src/views/systemSet/notice.vue @@ -0,0 +1,291 @@ + + + + + \ No newline at end of file diff --git a/src/views/systemSet/serverEngineer.vue b/src/views/systemSet/serverEngineer.vue new file mode 100644 index 0000000..7bb824e --- /dev/null +++ b/src/views/systemSet/serverEngineer.vue @@ -0,0 +1,225 @@ + + + + + diff --git a/src/views/systemSet/serverRole.vue b/src/views/systemSet/serverRole.vue new file mode 100644 index 0000000..70f53d0 --- /dev/null +++ b/src/views/systemSet/serverRole.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/systemSet/serverUser.vue b/src/views/systemSet/serverUser.vue new file mode 100644 index 0000000..bf76775 --- /dev/null +++ b/src/views/systemSet/serverUser.vue @@ -0,0 +1,256 @@ + + + + + diff --git a/src/views/systemSet/service.vue b/src/views/systemSet/service.vue new file mode 100644 index 0000000..5ad2887 --- /dev/null +++ b/src/views/systemSet/service.vue @@ -0,0 +1,242 @@ + + + + + diff --git a/src/views/systemSet/serviceMeasure.vue b/src/views/systemSet/serviceMeasure.vue new file mode 100644 index 0000000..c6df786 --- /dev/null +++ b/src/views/systemSet/serviceMeasure.vue @@ -0,0 +1,262 @@ + + + + + diff --git a/src/views/systemSet/serviceType.vue b/src/views/systemSet/serviceType.vue new file mode 100644 index 0000000..2e065a3 --- /dev/null +++ b/src/views/systemSet/serviceType.vue @@ -0,0 +1,305 @@ + + + + + diff --git a/src/views/systemSet/technicalData.vue b/src/views/systemSet/technicalData.vue new file mode 100644 index 0000000..8b98d82 --- /dev/null +++ b/src/views/systemSet/technicalData.vue @@ -0,0 +1,231 @@ + + + + + \ No newline at end of file diff --git a/src/views/test.vue b/src/views/test.vue new file mode 100644 index 0000000..f9864ea --- /dev/null +++ b/src/views/test.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/tool/code.vue b/src/views/tool/code.vue new file mode 100644 index 0000000..cc422f8 --- /dev/null +++ b/src/views/tool/code.vue @@ -0,0 +1,660 @@ + + + diff --git a/src/views/tool/datasource.vue b/src/views/tool/datasource.vue new file mode 100644 index 0000000..cc07ef2 --- /dev/null +++ b/src/views/tool/datasource.vue @@ -0,0 +1,371 @@ + + + + + diff --git a/src/views/tool/model.vue b/src/views/tool/model.vue new file mode 100644 index 0000000..5b6e8a3 --- /dev/null +++ b/src/views/tool/model.vue @@ -0,0 +1,393 @@ + + + + diff --git a/src/views/util/affix.vue b/src/views/util/affix.vue new file mode 100644 index 0000000..fbde082 --- /dev/null +++ b/src/views/util/affix.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/src/views/util/cache.vue b/src/views/util/cache.vue new file mode 100644 index 0000000..0298ad9 --- /dev/null +++ b/src/views/util/cache.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/views/util/crud-form.vue b/src/views/util/crud-form.vue new file mode 100644 index 0000000..b875e93 --- /dev/null +++ b/src/views/util/crud-form.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/src/views/util/data.vue b/src/views/util/data.vue new file mode 100644 index 0000000..4580457 --- /dev/null +++ b/src/views/util/data.vue @@ -0,0 +1,198 @@ + + + + diff --git a/src/views/util/demo/dict-classic.vue b/src/views/util/demo/dict-classic.vue new file mode 100644 index 0000000..7e30be1 --- /dev/null +++ b/src/views/util/demo/dict-classic.vue @@ -0,0 +1,352 @@ + + + + + diff --git a/src/views/util/demo/dict-horizontal.vue b/src/views/util/demo/dict-horizontal.vue new file mode 100644 index 0000000..1bbcc00 --- /dev/null +++ b/src/views/util/demo/dict-horizontal.vue @@ -0,0 +1,469 @@ + + + + + diff --git a/src/views/util/demo/dict-vertical.vue b/src/views/util/demo/dict-vertical.vue new file mode 100644 index 0000000..fc635bd --- /dev/null +++ b/src/views/util/demo/dict-vertical.vue @@ -0,0 +1,474 @@ + + + + + diff --git a/src/views/util/demo/dict.vue b/src/views/util/demo/dict.vue new file mode 100644 index 0000000..d64a51a --- /dev/null +++ b/src/views/util/demo/dict.vue @@ -0,0 +1,465 @@ + + + diff --git a/src/views/util/demo/dictbiz.vue b/src/views/util/demo/dictbiz.vue new file mode 100644 index 0000000..0d9c73c --- /dev/null +++ b/src/views/util/demo/dictbiz.vue @@ -0,0 +1,459 @@ + + + diff --git a/src/views/util/form-detail.vue b/src/views/util/form-detail.vue new file mode 100644 index 0000000..d595503 --- /dev/null +++ b/src/views/util/form-detail.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/src/views/util/form.vue b/src/views/util/form.vue new file mode 100644 index 0000000..0a5ed14 --- /dev/null +++ b/src/views/util/form.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/src/views/util/logs.vue b/src/views/util/logs.vue new file mode 100644 index 0000000..f792cf1 --- /dev/null +++ b/src/views/util/logs.vue @@ -0,0 +1,16 @@ + + + diff --git a/src/views/util/permission.vue b/src/views/util/permission.vue new file mode 100644 index 0000000..6e5cfeb --- /dev/null +++ b/src/views/util/permission.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/src/views/util/store.vue b/src/views/util/store.vue new file mode 100644 index 0000000..0ab131b --- /dev/null +++ b/src/views/util/store.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/src/views/util/table.vue b/src/views/util/table.vue new file mode 100644 index 0000000..62de4fa --- /dev/null +++ b/src/views/util/table.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/src/views/util/tags.vue b/src/views/util/tags.vue new file mode 100644 index 0000000..e333fe2 --- /dev/null +++ b/src/views/util/tags.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/views/util/test.vue b/src/views/util/test.vue new file mode 100644 index 0000000..71f1e1a --- /dev/null +++ b/src/views/util/test.vue @@ -0,0 +1,19 @@ + + + + + diff --git a/src/views/util/top.vue b/src/views/util/top.vue new file mode 100644 index 0000000..2827371 --- /dev/null +++ b/src/views/util/top.vue @@ -0,0 +1,26 @@ + + + + + diff --git a/src/views/wel/dashboard.vue b/src/views/wel/dashboard.vue new file mode 100644 index 0000000..0115426 --- /dev/null +++ b/src/views/wel/dashboard.vue @@ -0,0 +1,512 @@ + + + + + diff --git a/src/views/wel/index.vue b/src/views/wel/index.vue new file mode 100644 index 0000000..313b496 --- /dev/null +++ b/src/views/wel/index.vue @@ -0,0 +1,1139 @@ + + + + + diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..bf85b40 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,42 @@ +import { defineConfig, loadEnv } from 'vite'; + +const { resolve } = require('path'); +import createVitePlugins from './vite/plugins'; +// https://vitejs.dev/config/ +export default ({ mode, command }) => { + const env = loadEnv(mode, process.cwd()); + const { VITE_APP_BASE } = env; + return defineConfig({ + base: VITE_APP_BASE, + server: { + port: 2888, + proxy: { + '/api': { + // target: 'http://localhost:8099', + target: 'https://www.nhhyy.com/monitor-api', + // target: 'http://uat.91hyx.com/api', + changeOrigin: true, + rewrite: path => path.replace(/^\/api/, ''), + }, + }, + }, + resolve: { + alias: { + '~': resolve(__dirname, './'), + '@': resolve(__dirname, './src'), + components: resolve(__dirname, './src/components'), + styles: resolve(__dirname, './src/styles'), + utils: resolve(__dirname, './src/utils'), + }, + }, + plugins: createVitePlugins(env, command === 'build'), + build: { + target: 'esnext', + }, + optimizeDeps: { + esbuildOptions: { + target: 'esnext', + }, + }, + }); +}; diff --git a/vite/plugins/auto-import.js b/vite/plugins/auto-import.js new file mode 100644 index 0000000..bf701bb --- /dev/null +++ b/vite/plugins/auto-import.js @@ -0,0 +1,8 @@ +import autoImport from 'unplugin-auto-import/vite'; + +export default function createAutoImport() { + return autoImport({ + imports: ['vue', 'vue-router', 'vuex'], + dts: false, + }); +} diff --git a/vite/plugins/compression.js b/vite/plugins/compression.js new file mode 100644 index 0000000..21383c5 --- /dev/null +++ b/vite/plugins/compression.js @@ -0,0 +1,27 @@ +import compression from 'vite-plugin-compression'; + +export default function createCompression(env) { + const { VITE_BUILD_COMPRESS } = env; + const plugin = []; + if (VITE_BUILD_COMPRESS) { + const compressList = VITE_BUILD_COMPRESS.split(','); + if (compressList.includes('gzip')) { + plugin.push( + compression({ + ext: '.gz', + deleteOriginFile: false, + }) + ); + } + if (compressList.includes('brotli')) { + plugin.push( + compression({ + ext: '.br', + algorithm: 'brotliCompress', + deleteOriginFile: false, + }) + ); + } + } + return plugin; +} diff --git a/vite/plugins/index.js b/vite/plugins/index.js new file mode 100644 index 0000000..14714aa --- /dev/null +++ b/vite/plugins/index.js @@ -0,0 +1,15 @@ +import vue from '@vitejs/plugin-vue'; + +import createAutoImport from './auto-import'; +import createCompression from './compression'; +import createSetupExtend from './setup-extend'; +// import createSetupMock from './setup-mock'; + +export default function createVitePlugins(viteEnv, isBuild = false) { + const vitePlugins = [vue()]; + vitePlugins.push(createAutoImport()); + vitePlugins.push(createSetupExtend()); + // vitePlugins.push(createSetupMock()); + isBuild && vitePlugins.push(...createCompression(viteEnv)); + return vitePlugins; +} diff --git a/vite/plugins/setup-extend.js b/vite/plugins/setup-extend.js new file mode 100644 index 0000000..1622ea6 --- /dev/null +++ b/vite/plugins/setup-extend.js @@ -0,0 +1,5 @@ +import setupExtend from 'vite-plugin-vue-setup-extend'; + +export default function createSetupExtend() { + return setupExtend(); +} diff --git a/vite/plugins/setup-mock.js b/vite/plugins/setup-mock.js new file mode 100644 index 0000000..67ae030 --- /dev/null +++ b/vite/plugins/setup-mock.js @@ -0,0 +1,11 @@ +import { viteMockServe } from 'vite-plugin-mock'; + +export default function createSetupMock() { + return viteMockServe({ + // 更多配置见最下方 + mockPath: './mock/', //mock文件地址 + injectCode: ` import { setupProdMockServer } from './mockProdServer'; setupProdMockServer(); `, + logger: false, //是否在控制台显示请求日志 + supportTs: false, //打开后,可以读取 ts 文件模块。 请注意,打开后将无法监视.js 文件 + }); +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..4740e8f --- /dev/null +++ b/yarn.lock @@ -0,0 +1,1738 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@amap/amap-jsapi-loader@^1.0.1": + "integrity" "sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw==" + "resolved" "https://registry.npmjs.org/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz" + "version" "1.0.1" + +"@antfu/utils@^0.7.0": + "integrity" "sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==" + "resolved" "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.7.tgz" + "version" "0.7.7" + +"@babel/parser@^7.20.15", "@babel/parser@^7.21.3", "@babel/parser@^7.23.5": + "integrity" "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==" + "resolved" "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.6.tgz" + "version" "7.23.6" + +"@babel/runtime@^7.12.0": + "integrity" "sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==" + "resolved" "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.7.tgz" + "version" "7.23.7" + dependencies: + "regenerator-runtime" "^0.14.0" + +"@bpmn-io/diagram-js-ui@^0.2.2": + "integrity" "sha512-OGyjZKvGK8tHSZ0l7RfeKhilGoOGtFDcoqSGYkX0uhFlo99OVZ9Jn1K7TJGzcE9BdKwvA5Y5kGqHEhdTxHvFfw==" + "resolved" "https://registry.npmjs.org/@bpmn-io/diagram-js-ui/-/diagram-js-ui-0.2.3.tgz" + "version" "0.2.3" + dependencies: + "htm" "^3.1.1" + "preact" "^10.11.2" + +"@ctrl/tinycolor@^3.4.1": + "integrity" "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==" + "resolved" "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz" + "version" "3.6.1" + +"@element-plus/icons-vue@^2.0.6", "@element-plus/icons-vue@^2.0.9": + "integrity" "sha512-PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA==" + "resolved" "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.1.0.tgz" + "version" "2.1.0" + +"@element-plus/icons-vue@^2.3.1": + "integrity" "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==" + "resolved" "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz" + "version" "2.3.1" + +"@floating-ui/core@^1.6.0": + "integrity" "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==" + "resolved" "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz" + "version" "1.6.9" + dependencies: + "@floating-ui/utils" "^0.2.9" + +"@floating-ui/dom@^1.0.1": + "integrity" "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==" + "resolved" "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz" + "version" "1.6.13" + dependencies: + "@floating-ui/core" "^1.6.0" + "@floating-ui/utils" "^0.2.9" + +"@floating-ui/utils@^0.2.9": + "integrity" "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==" + "resolved" "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz" + "version" "0.2.9" + +"@intlify/core-base@9.2.2": + "integrity" "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==" + "resolved" "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.2.2.tgz" + "version" "9.2.2" + dependencies: + "@intlify/devtools-if" "9.2.2" + "@intlify/message-compiler" "9.2.2" + "@intlify/shared" "9.2.2" + "@intlify/vue-devtools" "9.2.2" + +"@intlify/devtools-if@9.2.2": + "integrity" "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==" + "resolved" "https://registry.npmmirror.com/@intlify/devtools-if/-/devtools-if-9.2.2.tgz" + "version" "9.2.2" + dependencies: + "@intlify/shared" "9.2.2" + +"@intlify/message-compiler@9.2.2": + "integrity" "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==" + "resolved" "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.2.2.tgz" + "version" "9.2.2" + dependencies: + "@intlify/shared" "9.2.2" + "source-map" "0.6.1" + +"@intlify/shared@9.2.2": + "integrity" "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==" + "resolved" "https://registry.npmmirror.com/@intlify/shared/-/shared-9.2.2.tgz" + "version" "9.2.2" + +"@intlify/vue-devtools@9.2.2": + "integrity" "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==" + "resolved" "https://registry.npmmirror.com/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz" + "version" "9.2.2" + dependencies: + "@intlify/core-base" "9.2.2" + "@intlify/shared" "9.2.2" + +"@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.15": + "integrity" "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "resolved" "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" + "version" "1.4.15" + +"@nodelib/fs.scandir@2.1.5": + "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==" + "resolved" "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + "version" "2.1.5" + dependencies: + "@nodelib/fs.stat" "2.0.5" + "run-parallel" "^1.1.9" + +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": + "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + "resolved" "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + "version" "2.0.5" + +"@nodelib/fs.walk@^1.2.3": + "integrity" "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==" + "resolved" "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + "version" "1.2.8" + dependencies: + "@nodelib/fs.scandir" "2.1.5" + "fastq" "^1.6.0" + +"@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7": + "integrity" "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==" + "resolved" "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz" + "version" "2.11.7" + +"@rollup/pluginutils@^5.0.2": + "integrity" "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==" + "resolved" "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "@types/estree" "^1.0.0" + "estree-walker" "^2.0.2" + "picomatch" "^2.3.1" + +"@saber/nf-design-base-elp@^1.2.0": + "integrity" "sha512-sKUkhErjggUjH+hoBTVpcUC7j38KAkGUloIVXIRl6YP1WT14QXvtf3iu8iCIOBO8iPKHgrBiq4h80UW9+qqbjQ==" + "resolved" "https://center.javablade.com/api/packages/blade/npm/%40saber%2Fnf-design-base-elp/-/1.3.0/nf-design-base-elp-1.3.0.tgz" + "version" "1.3.0" + dependencies: + "bpmn-js" "11.5.0" + "codemirror" "^5" + "randomcolor" "^0.6.2" + +"@smallwei/avue@^3.4.1": + "integrity" "sha512-Ifkt0o7KLsAMptfoNMG7qYS86OL2pEet761wWZyZGu8e48wuNNPOfqx5jnibGjx2oIoKtYUFh7tFdllOCth2EQ==" + "resolved" "https://registry.npmjs.org/@smallwei/avue/-/avue-3.6.2.tgz" + "version" "3.6.2" + dependencies: + "@element-plus/icons-vue" "^2.0.6" + "countup.js" "^1.9.3" + "dayjs" "^1.10.4" + "lodash" "^4.17.21" + +"@transloadit/prettier-bytes@0.0.7": + "integrity" "sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==" + "resolved" "https://registry.npmmirror.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz" + "version" "0.0.7" + +"@types/estree@^1.0.0": + "integrity" "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + "resolved" "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz" + "version" "1.0.5" + +"@types/event-emitter@^0.3.3": + "integrity" "sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==" + "resolved" "https://registry.npmmirror.com/@types/event-emitter/-/event-emitter-0.3.5.tgz" + "version" "0.3.5" + +"@types/lodash-es@*", "@types/lodash-es@^4.17.6": + "integrity" "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==" + "resolved" "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz" + "version" "4.17.12" + dependencies: + "@types/lodash" "*" + +"@types/lodash@*", "@types/lodash@^4.14.182": + "integrity" "sha512-w/P33JFeySuhN6JLkysYUK2gEmy9kHHFN7E8ro0tkfmlDOgxBDzWEZ/J8cWA+fHqFevpswDTFZnDx+R9lbL6xw==" + "resolved" "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.15.tgz" + "version" "4.17.15" + +"@types/mockjs@^1.0.4": + "integrity" "sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g==" + "resolved" "https://registry.npmmirror.com/@types/mockjs/-/mockjs-1.0.10.tgz" + "version" "1.0.10" + +"@types/web-bluetooth@^0.0.16": + "integrity" "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==" + "resolved" "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz" + "version" "0.0.16" + +"@uppy/companion-client@^2.2.2": + "integrity" "sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==" + "resolved" "https://registry.npmmirror.com/@uppy/companion-client/-/companion-client-2.2.2.tgz" + "version" "2.2.2" + dependencies: + "@uppy/utils" "^4.1.2" + "namespace-emitter" "^2.0.1" + +"@uppy/core@^2.0.3", "@uppy/core@^2.1.1", "@uppy/core@^2.1.4", "@uppy/core@^2.3.3": + "integrity" "sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==" + "resolved" "https://registry.npmmirror.com/@uppy/core/-/core-2.3.4.tgz" + "version" "2.3.4" + dependencies: + "@transloadit/prettier-bytes" "0.0.7" + "@uppy/store-default" "^2.1.1" + "@uppy/utils" "^4.1.3" + "lodash.throttle" "^4.1.1" + "mime-match" "^1.0.2" + "namespace-emitter" "^2.0.1" + "nanoid" "^3.1.25" + "preact" "^10.5.13" + +"@uppy/store-default@^2.1.1": + "integrity" "sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==" + "resolved" "https://registry.npmmirror.com/@uppy/store-default/-/store-default-2.1.1.tgz" + "version" "2.1.1" + +"@uppy/utils@^4.1.2", "@uppy/utils@^4.1.3": + "integrity" "sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==" + "resolved" "https://registry.npmmirror.com/@uppy/utils/-/utils-4.1.3.tgz" + "version" "4.1.3" + dependencies: + "lodash.throttle" "^4.1.1" + +"@uppy/xhr-upload@^2.0.3", "@uppy/xhr-upload@^2.0.7": + "integrity" "sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==" + "resolved" "https://registry.npmmirror.com/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz" + "version" "2.1.3" + dependencies: + "@uppy/companion-client" "^2.2.2" + "@uppy/utils" "^4.1.2" + "nanoid" "^3.1.25" + +"@vitejs/plugin-vue@^1.3.0": + "integrity" "sha512-/QJ0Z9qfhAFtKRY+r57ziY4BSbGUTGsPRMpB/Ron3QPwBZM4OZAZHdTa4a8PafCwU5DTatXG8TMDoP8z+oDqJw==" + "resolved" "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-1.10.2.tgz" + "version" "1.10.2" + +"@vue/compiler-core@3.3.13": + "integrity" "sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==" + "resolved" "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.13.tgz" + "version" "3.3.13" + dependencies: + "@babel/parser" "^7.23.5" + "@vue/shared" "3.3.13" + "estree-walker" "^2.0.2" + "source-map-js" "^1.0.2" + +"@vue/compiler-core@3.3.4": + "integrity" "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==" + "resolved" "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz" + "version" "3.3.4" + dependencies: + "@babel/parser" "^7.21.3" + "@vue/shared" "3.3.4" + "estree-walker" "^2.0.2" + "source-map-js" "^1.0.2" + +"@vue/compiler-dom@3.3.13": + "integrity" "sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==" + "resolved" "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.13.tgz" + "version" "3.3.13" + dependencies: + "@vue/compiler-core" "3.3.13" + "@vue/shared" "3.3.13" + +"@vue/compiler-dom@3.3.4": + "integrity" "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==" + "resolved" "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz" + "version" "3.3.4" + dependencies: + "@vue/compiler-core" "3.3.4" + "@vue/shared" "3.3.4" + +"@vue/compiler-sfc@^3.0.5", "@vue/compiler-sfc@^3.2.29": + "integrity" "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==" + "resolved" "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz" + "version" "3.3.4" + dependencies: + "@babel/parser" "^7.20.15" + "@vue/compiler-core" "3.3.4" + "@vue/compiler-dom" "3.3.4" + "@vue/compiler-ssr" "3.3.4" + "@vue/reactivity-transform" "3.3.4" + "@vue/shared" "3.3.4" + "estree-walker" "^2.0.2" + "magic-string" "^0.30.0" + "postcss" "^8.1.10" + "source-map-js" "^1.0.2" + +"@vue/compiler-sfc@3.3.13": + "integrity" "sha512-DQVmHEy/EKIgggvnGRLx21hSqnr1smUS9Aq8tfxiiot8UR0/pXKHN9k78/qQ7etyQTFj5em5nruODON7dBeumw==" + "resolved" "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.13.tgz" + "version" "3.3.13" + dependencies: + "@babel/parser" "^7.23.5" + "@vue/compiler-core" "3.3.13" + "@vue/compiler-dom" "3.3.13" + "@vue/compiler-ssr" "3.3.13" + "@vue/reactivity-transform" "3.3.13" + "@vue/shared" "3.3.13" + "estree-walker" "^2.0.2" + "magic-string" "^0.30.5" + "postcss" "^8.4.32" + "source-map-js" "^1.0.2" + +"@vue/compiler-ssr@3.3.13": + "integrity" "sha512-d/P3bCeUGmkJNS1QUZSAvoCIW4fkOKK3l2deE7zrp0ypJEy+En2AcypIkqvcFQOcw3F0zt2VfMvNsA9JmExTaw==" + "resolved" "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.13.tgz" + "version" "3.3.13" + dependencies: + "@vue/compiler-dom" "3.3.13" + "@vue/shared" "3.3.13" + +"@vue/compiler-ssr@3.3.4": + "integrity" "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==" + "resolved" "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz" + "version" "3.3.4" + dependencies: + "@vue/compiler-dom" "3.3.4" + "@vue/shared" "3.3.4" + +"@vue/devtools-api@^6.0.0-beta.11", "@vue/devtools-api@^6.2.1", "@vue/devtools-api@^6.5.0": + "integrity" "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==" + "resolved" "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.1.tgz" + "version" "6.5.1" + +"@vue/reactivity-transform@3.3.13": + "integrity" "sha512-oWnydGH0bBauhXvh5KXUy61xr9gKaMbtsMHk40IK9M4gMuKPJ342tKFarY0eQ6jef8906m35q37wwA8DMZOm5Q==" + "resolved" "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.13.tgz" + "version" "3.3.13" + dependencies: + "@babel/parser" "^7.23.5" + "@vue/compiler-core" "3.3.13" + "@vue/shared" "3.3.13" + "estree-walker" "^2.0.2" + "magic-string" "^0.30.5" + +"@vue/reactivity-transform@3.3.4": + "integrity" "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==" + "resolved" "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz" + "version" "3.3.4" + dependencies: + "@babel/parser" "^7.20.15" + "@vue/compiler-core" "3.3.4" + "@vue/shared" "3.3.4" + "estree-walker" "^2.0.2" + "magic-string" "^0.30.0" + +"@vue/reactivity@3.3.13": + "integrity" "sha512-fjzCxceMahHhi4AxUBzQqqVhuA21RJ0COaWTbIBl1PruGW1CeY97louZzLi4smpYx+CHfFPPU/CS8NybbGvPKQ==" + "resolved" "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.13.tgz" + "version" "3.3.13" + dependencies: + "@vue/shared" "3.3.13" + +"@vue/runtime-core@^3.0.0", "@vue/runtime-core@3.3.13": + "integrity" "sha512-1TzA5TvGuh2zUwMJgdfvrBABWZ7y8kBwBhm7BXk8rvdx2SsgcGfz2ruv2GzuGZNvL1aKnK8CQMV/jFOrxNQUMA==" + "resolved" "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.13.tgz" + "version" "3.3.13" + dependencies: + "@vue/reactivity" "3.3.13" + "@vue/shared" "3.3.13" + +"@vue/runtime-dom@3.3.13": + "integrity" "sha512-JJkpE8R/hJKXqVTgUoODwS5wqKtOsmJPEqmp90PDVGygtJ4C0PtOkcEYXwhiVEmef6xeXcIlrT3Yo5aQ4qkHhQ==" + "resolved" "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.13.tgz" + "version" "3.3.13" + dependencies: + "@vue/runtime-core" "3.3.13" + "@vue/shared" "3.3.13" + "csstype" "^3.1.3" + +"@vue/server-renderer@3.3.13": + "integrity" "sha512-vSnN+nuf6iSqTL3Qgx/9A+BT+0Zf/VJOgF5uMZrKjYPs38GMYyAU1coDyBNHauehXDaP+zl73VhwWv0vBRBHcg==" + "resolved" "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.13.tgz" + "version" "3.3.13" + dependencies: + "@vue/compiler-ssr" "3.3.13" + "@vue/shared" "3.3.13" + +"@vue/shared@3.3.13": + "integrity" "sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==" + "resolved" "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.13.tgz" + "version" "3.3.13" + +"@vue/shared@3.3.4": + "integrity" "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" + "resolved" "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.4.tgz" + "version" "3.3.4" + +"@vueuse/core@*", "@vueuse/core@^9.1.0": + "integrity" "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==" + "resolved" "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz" + "version" "9.13.0" + dependencies: + "@types/web-bluetooth" "^0.0.16" + "@vueuse/metadata" "9.13.0" + "@vueuse/shared" "9.13.0" + "vue-demi" "*" + +"@vueuse/metadata@9.13.0": + "integrity" "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==" + "resolved" "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz" + "version" "9.13.0" + +"@vueuse/shared@9.13.0": + "integrity" "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==" + "resolved" "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz" + "version" "9.13.0" + dependencies: + "vue-demi" "*" + +"@wangeditor/basic-modules@^1.1.7", "@wangeditor/basic-modules@1.x": + "integrity" "sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==" + "resolved" "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz" + "version" "1.1.7" + dependencies: + "is-url" "^1.2.4" + +"@wangeditor/code-highlight@^1.0.3": + "integrity" "sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==" + "resolved" "https://registry.npmmirror.com/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "prismjs" "^1.23.0" + +"@wangeditor/core@^1.1.19", "@wangeditor/core@1.x": + "integrity" "sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==" + "resolved" "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.19.tgz" + "version" "1.1.19" + dependencies: + "@types/event-emitter" "^0.3.3" + "event-emitter" "^0.3.5" + "html-void-elements" "^2.0.0" + "i18next" "^20.4.0" + "scroll-into-view-if-needed" "^2.2.28" + "slate-history" "^0.66.0" + +"@wangeditor/editor-for-vue@^5.1.12": + "integrity" "sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==" + "resolved" "https://registry.npmmirror.com/@wangeditor/editor-for-vue/-/editor-for-vue-5.1.12.tgz" + "version" "5.1.12" + +"@wangeditor/editor@^5.1.23", "@wangeditor/editor@>=5.1.0": + "integrity" "sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==" + "resolved" "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.23.tgz" + "version" "5.1.23" + dependencies: + "@uppy/core" "^2.1.1" + "@uppy/xhr-upload" "^2.0.3" + "@wangeditor/basic-modules" "^1.1.7" + "@wangeditor/code-highlight" "^1.0.3" + "@wangeditor/core" "^1.1.19" + "@wangeditor/list-module" "^1.0.5" + "@wangeditor/table-module" "^1.1.4" + "@wangeditor/upload-image-module" "^1.0.2" + "@wangeditor/video-module" "^1.1.4" + "dom7" "^3.0.0" + "is-hotkey" "^0.2.0" + "lodash.camelcase" "^4.3.0" + "lodash.clonedeep" "^4.5.0" + "lodash.debounce" "^4.0.8" + "lodash.foreach" "^4.5.0" + "lodash.isequal" "^4.5.0" + "lodash.throttle" "^4.1.1" + "lodash.toarray" "^4.4.0" + "nanoid" "^3.2.0" + "slate" "^0.72.0" + "snabbdom" "^3.1.0" + +"@wangeditor/list-module@^1.0.5": + "integrity" "sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==" + "resolved" "https://registry.npmmirror.com/@wangeditor/list-module/-/list-module-1.0.5.tgz" + "version" "1.0.5" + +"@wangeditor/table-module@^1.1.4": + "integrity" "sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==" + "resolved" "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.4.tgz" + "version" "1.1.4" + +"@wangeditor/upload-image-module@^1.0.2": + "integrity" "sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==" + "resolved" "https://registry.npmmirror.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz" + "version" "1.0.2" + +"@wangeditor/video-module@^1.1.4": + "integrity" "sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==" + "resolved" "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz" + "version" "1.1.4" + +"acorn@^8.10.0", "acorn@^8.11.2": + "integrity" "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==" + "resolved" "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz" + "version" "8.11.3" + +"animate.css@^4.1.1": + "integrity" "sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==" + "resolved" "https://registry.npmmirror.com/animate.css/-/animate.css-4.1.1.tgz" + "version" "4.1.1" + +"ansi-styles@^4.1.0": + "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" + "resolved" "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "color-convert" "^2.0.1" + +"anymatch@~3.1.2": + "integrity" "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==" + "resolved" "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz" + "version" "3.1.3" + dependencies: + "normalize-path" "^3.0.0" + "picomatch" "^2.0.4" + +"async-validator@^4.2.5": + "integrity" "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" + "resolved" "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz" + "version" "4.2.5" + +"avue-plugin-ueditor@^1.0.3": + "integrity" "sha512-hly5hcS5g9d9uoSY5m6h7Kf/o8wHXKQO9LZICbbtmiEX6xYlWcH0mqL0j5rKdbUVNNcjzUThBGaDVWWzXqqxBQ==" + "resolved" "https://registry.npmmirror.com/avue-plugin-ueditor/-/avue-plugin-ueditor-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "@wangeditor/editor" "^5.1.23" + "@wangeditor/editor-for-vue" "^5.1.12" + "axios" "^0.18.0" + "vue" "^3.2.47" + +"axios@^0.18.0": + "integrity" "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==" + "resolved" "https://registry.npmmirror.com/axios/-/axios-0.18.1.tgz" + "version" "0.18.1" + dependencies: + "follow-redirects" "1.5.10" + "is-buffer" "^2.0.2" + +"axios@^0.21.1": + "integrity" "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==" + "resolved" "https://registry.npmmirror.com/axios/-/axios-0.21.4.tgz" + "version" "0.21.4" + dependencies: + "follow-redirects" "^1.14.0" + +"binary-extensions@^2.0.0": + "integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + "resolved" "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz" + "version" "2.2.0" + +"bpmn-js@11.5.0": + "integrity" "sha512-Bdj53UvfiDtGE1wmiBmpgjl5RMLhCGV/C841dyC+t4kBHj7vApAeeHs2Qiycj390HO4B2U8UDROLT7yjdXEEUA==" + "resolved" "https://registry.npmjs.org/bpmn-js/-/bpmn-js-11.5.0.tgz" + "version" "11.5.0" + dependencies: + "bpmn-moddle" "^8.0.0" + "diagram-js" "^11.9.1" + "diagram-js-direct-editing" "^2.0.0" + "ids" "^1.0.0" + "inherits-browser" "^0.1.0" + "min-dash" "^4.0.0" + "min-dom" "^4.0.3" + "object-refs" "^0.3.0" + "tiny-svg" "^3.0.0" + +"bpmn-moddle@^8.0.0": + "integrity" "sha512-yI5OAFfYVJwViKTsTsonVfCBPtB3MlefADUORwNIxxBOMp21vnoxuxsdgUWlPH/dvAEZh/+mr8UtqOBNu8NC5Q==" + "resolved" "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-8.1.0.tgz" + "version" "8.1.0" + dependencies: + "min-dash" "^4.0.0" + "moddle" "^6.2.3" + "moddle-xml" "^10.1.0" + +"braces@^3.0.2", "braces@~3.0.2": + "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" + "resolved" "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "fill-range" "^7.0.1" + +"chalk@^4.1.2": + "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + "resolved" "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"chokidar@^3.5.2", "chokidar@^3.5.3", "chokidar@>=3.0.0 <4.0.0": + "integrity" "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==" + "resolved" "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz" + "version" "3.5.3" + dependencies: + "anymatch" "~3.1.2" + "braces" "~3.0.2" + "glob-parent" "~5.1.2" + "is-binary-path" "~2.1.0" + "is-glob" "~4.0.1" + "normalize-path" "~3.0.0" + "readdirp" "~3.6.0" + optionalDependencies: + "fsevents" "~2.3.2" + +"clsx@^1.2.1": + "integrity" "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" + "resolved" "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz" + "version" "1.2.1" + +"codemirror@^5": + "integrity" "sha512-Gaz4gHnkbHMGgahNt3CA5HBk5lLQBqmD/pBgeB4kQU6OedZmqMBjlRF0LSrp2tJ4wlLNPm2FfaUd1pDy0mdlpA==" + "resolved" "https://registry.npmjs.org/codemirror/-/codemirror-5.65.18.tgz" + "version" "5.65.18" + +"color-convert@^2.0.1": + "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" + "resolved" "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "color-name" "~1.1.4" + +"color-name@~1.1.4": + "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "resolved" "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz" + "version" "1.1.4" + +"commander@*": + "integrity" "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==" + "resolved" "https://registry.npmmirror.com/commander/-/commander-11.1.0.tgz" + "version" "11.1.0" + +"component-event@^0.2.1": + "integrity" "sha512-wGA++isMqiDq1jPYeyv2as/Bt/u+3iLW0rEa+8NQ82jAv3TgqMiCM+B2SaBdn2DfLilLjjq736YcezihRYhfxw==" + "resolved" "https://registry.npmjs.org/component-event/-/component-event-0.2.1.tgz" + "version" "0.2.1" + +"compute-scroll-into-view@^1.0.20": + "integrity" "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==" + "resolved" "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz" + "version" "1.0.20" + +"connect@^3.7.0": + "integrity" "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==" + "resolved" "https://registry.npmmirror.com/connect/-/connect-3.7.0.tgz" + "version" "3.7.0" + dependencies: + "debug" "2.6.9" + "finalhandler" "1.1.2" + "parseurl" "~1.3.3" + "utils-merge" "1.0.1" + +"countup.js@^1.9.3": + "integrity" "sha512-UHf2P/mFKaESqdPq+UdBJm/1y8lYdlcDd0nTZHNC8cxWoJwZr1Eldm1PpWui446vDl5Pd8PtRYkr3q6K4+Qa5A==" + "resolved" "https://registry.npmjs.org/countup.js/-/countup.js-1.9.3.tgz" + "version" "1.9.3" + +"crypto-js@^4.1.1": + "integrity" "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + "resolved" "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.1.1.tgz" + "version" "4.1.1" + +"csstype@^3.1.3": + "integrity" "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "resolved" "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz" + "version" "3.1.3" + +"d@^1.0.1", "d@1": + "integrity" "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==" + "resolved" "https://registry.npmmirror.com/d/-/d-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "es5-ext" "^0.10.50" + "type" "^1.0.1" + +"dayjs@^1.10.4", "dayjs@^1.10.6": + "integrity" "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" + "resolved" "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.7.tgz" + "version" "1.11.7" + +"dayjs@^1.11.13": + "integrity" "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + "resolved" "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz" + "version" "1.11.13" + +"debug@^4.3.2": + "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" + "resolved" "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz" + "version" "4.3.4" + dependencies: + "ms" "2.1.2" + +"debug@^4.3.3": + "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" + "resolved" "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz" + "version" "4.3.4" + dependencies: + "ms" "2.1.2" + +"debug@=3.1.0": + "integrity" "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==" + "resolved" "https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "ms" "2.0.0" + +"debug@2.6.9": + "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + "resolved" "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz" + "version" "2.6.9" + dependencies: + "ms" "2.0.0" + +"diagram-js-direct-editing@^2.0.0": + "integrity" "sha512-VpccLAnLqLF1cp3fk363QUbRVTd/qTcj2oOb+IqgcmOiWszJp7J9Ta6y5GjUvw48hDZpzCatlmWwA4CJ3MaYGQ==" + "resolved" "https://registry.npmjs.org/diagram-js-direct-editing/-/diagram-js-direct-editing-2.1.2.tgz" + "version" "2.1.2" + dependencies: + "min-dash" "^4.0.0" + "min-dom" "^4.0.2" + +"diagram-js@*", "diagram-js@^11.9.1": + "integrity" "sha512-6kO0rBN6aBIQiMELfv1oX2Ohes/brlIPuOVZUYAioeWM0EyuazhAXgHeq8iKFt29daU9NGRr4n78esGx8QjtjQ==" + "resolved" "https://registry.npmjs.org/diagram-js/-/diagram-js-11.13.1.tgz" + "version" "11.13.1" + dependencies: + "@bpmn-io/diagram-js-ui" "^0.2.2" + "clsx" "^1.2.1" + "didi" "^9.0.2" + "hammerjs" "^2.0.1" + "inherits-browser" "^0.1.0" + "min-dash" "^4.1.0" + "min-dom" "^4.1.0" + "object-refs" "^0.3.0" + "path-intersection" "^2.2.1" + "tiny-svg" "^3.0.1" + +"didi@^9.0.2": + "integrity" "sha512-q2+aj+lnJcUweV7A9pdUrwFr4LHVmRPwTmQLtHPFz4aT7IBoryN6Iy+jmFku+oIzr5ebBkvtBCOb87+dJhb7bg==" + "resolved" "https://registry.npmjs.org/didi/-/didi-9.0.2.tgz" + "version" "9.0.2" + +"dom7@^3.0.0": + "integrity" "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==" + "resolved" "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "ssr-window" "^3.0.0-alpha.1" + +"domify@^1.4.1": + "integrity" "sha512-m4yreHcUWHBncGVV7U+yQzc12vIlq0jMrtHZ5mW6dQMiL/7skSYNVX9wqKwOtyO9SGCgevrAFEgOCAHmamHTUA==" + "resolved" "https://registry.npmjs.org/domify/-/domify-1.4.2.tgz" + "version" "1.4.2" + +"echarts@^5.4.1", "echarts@^5.5.0": + "integrity" "sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==" + "resolved" "https://registry.npmmirror.com/echarts/-/echarts-5.5.0.tgz" + "version" "5.5.0" + dependencies: + "tslib" "2.3.0" + "zrender" "5.5.0" + +"ee-first@1.1.1": + "integrity" "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "resolved" "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz" + "version" "1.1.1" + +"element-plus@^2.3.7", "element-plus@>=2.2.0": + "integrity" "sha512-6tSLp5XytDS4TMZ0P3aGZnr7MXTagfNycepNfIDitd9IgwM9y01+Ssu6mglNi8RiXYhek6LBWNOd/cvpIO12+w==" + "resolved" "https://registry.npmjs.org/element-plus/-/element-plus-2.9.3.tgz" + "version" "2.9.3" + dependencies: + "@ctrl/tinycolor" "^3.4.1" + "@element-plus/icons-vue" "^2.3.1" + "@floating-ui/dom" "^1.0.1" + "@popperjs/core" "npm:@sxzz/popperjs-es@^2.11.7" + "@types/lodash" "^4.14.182" + "@types/lodash-es" "^4.17.6" + "@vueuse/core" "^9.1.0" + "async-validator" "^4.2.5" + "dayjs" "^1.11.13" + "escape-html" "^1.0.3" + "lodash" "^4.17.21" + "lodash-es" "^4.17.21" + "lodash-unified" "^1.0.2" + "memoize-one" "^6.0.0" + "normalize-wheel-es" "^1.2.0" + +"encodeurl@~1.0.2": + "integrity" "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + "resolved" "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz" + "version" "1.0.2" + +"es5-ext@^0.10.35", "es5-ext@^0.10.50", "es5-ext@~0.10.14": + "integrity" "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==" + "resolved" "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.62.tgz" + "version" "0.10.62" + dependencies: + "es6-iterator" "^2.0.3" + "es6-symbol" "^3.1.3" + "next-tick" "^1.1.0" + +"es6-iterator@^2.0.3": + "integrity" "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==" + "resolved" "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz" + "version" "2.0.3" + dependencies: + "d" "1" + "es5-ext" "^0.10.35" + "es6-symbol" "^3.1.1" + +"es6-symbol@^3.1.1", "es6-symbol@^3.1.3": + "integrity" "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==" + "resolved" "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.3.tgz" + "version" "3.1.3" + dependencies: + "d" "^1.0.1" + "ext" "^1.1.2" + +"esbuild-windows-64@0.14.54": + "integrity" "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==" + "resolved" "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz" + "version" "0.14.54" + +"esbuild@^0.14.27", "esbuild@^0.14.36": + "integrity" "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==" + "resolved" "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.54.tgz" + "version" "0.14.54" + optionalDependencies: + "@esbuild/linux-loong64" "0.14.54" + "esbuild-android-64" "0.14.54" + "esbuild-android-arm64" "0.14.54" + "esbuild-darwin-64" "0.14.54" + "esbuild-darwin-arm64" "0.14.54" + "esbuild-freebsd-64" "0.14.54" + "esbuild-freebsd-arm64" "0.14.54" + "esbuild-linux-32" "0.14.54" + "esbuild-linux-64" "0.14.54" + "esbuild-linux-arm" "0.14.54" + "esbuild-linux-arm64" "0.14.54" + "esbuild-linux-mips64le" "0.14.54" + "esbuild-linux-ppc64le" "0.14.54" + "esbuild-linux-riscv64" "0.14.54" + "esbuild-linux-s390x" "0.14.54" + "esbuild-netbsd-64" "0.14.54" + "esbuild-openbsd-64" "0.14.54" + "esbuild-sunos-64" "0.14.54" + "esbuild-windows-32" "0.14.54" + "esbuild-windows-64" "0.14.54" + "esbuild-windows-arm64" "0.14.54" + +"escape-html@^1.0.3", "escape-html@~1.0.3": + "integrity" "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "resolved" "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz" + "version" "1.0.3" + +"escape-string-regexp@^5.0.0": + "integrity" "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" + "resolved" "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz" + "version" "5.0.0" + +"estree-walker@^2.0.2": + "integrity" "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + "resolved" "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz" + "version" "2.0.2" + +"event-emitter@^0.3.5": + "integrity" "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==" + "resolved" "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz" + "version" "0.3.5" + dependencies: + "d" "1" + "es5-ext" "~0.10.14" + +"ext@^1.1.2": + "integrity" "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==" + "resolved" "https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz" + "version" "1.7.0" + dependencies: + "type" "^2.7.2" + +"fast-glob@^3.2.12", "fast-glob@^3.2.7": + "integrity" "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==" + "resolved" "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz" + "version" "3.2.12" + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + "glob-parent" "^5.1.2" + "merge2" "^1.3.0" + "micromatch" "^4.0.4" + +"fastq@^1.6.0": + "integrity" "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==" + "resolved" "https://registry.npmmirror.com/fastq/-/fastq-1.16.0.tgz" + "version" "1.16.0" + dependencies: + "reusify" "^1.0.4" + +"fill-range@^7.0.1": + "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" + "resolved" "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "to-regex-range" "^5.0.1" + +"finalhandler@1.1.2": + "integrity" "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==" + "resolved" "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.1.2.tgz" + "version" "1.1.2" + dependencies: + "debug" "2.6.9" + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "on-finished" "~2.3.0" + "parseurl" "~1.3.3" + "statuses" "~1.5.0" + "unpipe" "~1.0.0" + +"follow-redirects@^1.14.0": + "integrity" "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==" + "resolved" "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.4.tgz" + "version" "1.15.4" + +"follow-redirects@1.5.10": + "integrity" "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==" + "resolved" "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.5.10.tgz" + "version" "1.5.10" + dependencies: + "debug" "=3.1.0" + +"fs-extra@^10.0.0": + "integrity" "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==" + "resolved" "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz" + "version" "10.1.0" + dependencies: + "graceful-fs" "^4.2.0" + "jsonfile" "^6.0.1" + "universalify" "^2.0.0" + +"function-bind@^1.1.2": + "integrity" "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + "resolved" "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz" + "version" "1.1.2" + +"glob-parent@^5.1.2", "glob-parent@~5.1.2": + "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" + "resolved" "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "is-glob" "^4.0.1" + +"graceful-fs@^4.1.6", "graceful-fs@^4.2.0": + "integrity" "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "resolved" "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz" + "version" "4.2.11" + +"hammerjs@^2.0.1": + "integrity" "sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==" + "resolved" "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz" + "version" "2.0.8" + +"has-flag@^4.0.0": + "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "resolved" "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz" + "version" "4.0.0" + +"hasown@^2.0.0": + "integrity" "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==" + "resolved" "https://registry.npmmirror.com/hasown/-/hasown-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "function-bind" "^1.1.2" + +"htm@^3.1.1": + "integrity" "sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==" + "resolved" "https://registry.npmjs.org/htm/-/htm-3.1.1.tgz" + "version" "3.1.1" + +"html-void-elements@^2.0.0": + "integrity" "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==" + "resolved" "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz" + "version" "2.0.1" + +"i18next@^20.4.0": + "integrity" "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==" + "resolved" "https://registry.npmmirror.com/i18next/-/i18next-20.6.1.tgz" + "version" "20.6.1" + dependencies: + "@babel/runtime" "^7.12.0" + +"ids@^1.0.0": + "integrity" "sha512-XQ0yom/4KWTL29sLG+tyuycy7UmeaM/79GRtSJq6IG9cJGIPeBz5kwDCguie3TwxaMNIc3WtPi0cTa1XYHicpw==" + "resolved" "https://registry.npmjs.org/ids/-/ids-1.0.5.tgz" + "version" "1.0.5" + +"immer@^9.0.6": + "integrity" "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==" + "resolved" "https://registry.npmmirror.com/immer/-/immer-9.0.21.tgz" + "version" "9.0.21" + +"immutable@^4.0.0": + "integrity" "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==" + "resolved" "https://registry.npmmirror.com/immutable/-/immutable-4.3.4.tgz" + "version" "4.3.4" + +"inherits-browser@^0.1.0": + "integrity" "sha512-CJHHvW3jQ6q7lzsXPpapLdMx5hDpSF3FSh45pwsj6bKxJJ8Nl8v43i5yXnr3BdfOimGHKyniewQtnAIp3vyJJw==" + "resolved" "https://registry.npmjs.org/inherits-browser/-/inherits-browser-0.1.0.tgz" + "version" "0.1.0" + +"is-binary-path@~2.1.0": + "integrity" "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==" + "resolved" "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "binary-extensions" "^2.0.0" + +"is-buffer@^2.0.2": + "integrity" "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + "resolved" "https://registry.npmmirror.com/is-buffer/-/is-buffer-2.0.5.tgz" + "version" "2.0.5" + +"is-core-module@^2.13.0": + "integrity" "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==" + "resolved" "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz" + "version" "2.13.1" + dependencies: + "hasown" "^2.0.0" + +"is-extglob@^2.1.1": + "integrity" "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + "resolved" "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz" + "version" "2.1.1" + +"is-glob@^4.0.1", "is-glob@~4.0.1": + "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==" + "resolved" "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "is-extglob" "^2.1.1" + +"is-hotkey@^0.2.0": + "integrity" "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==" + "resolved" "https://registry.npmmirror.com/is-hotkey/-/is-hotkey-0.2.0.tgz" + "version" "0.2.0" + +"is-number@^7.0.0": + "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "resolved" "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz" + "version" "7.0.0" + +"is-plain-object@^5.0.0": + "integrity" "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + "resolved" "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz" + "version" "5.0.0" + +"is-url@^1.2.4": + "integrity" "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" + "resolved" "https://registry.npmmirror.com/is-url/-/is-url-1.2.4.tgz" + "version" "1.2.4" + +"js-base64@^3.7.4": + "integrity" "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" + "resolved" "https://registry.npmmirror.com/js-base64/-/js-base64-3.7.5.tgz" + "version" "3.7.5" + +"js-cookie@^3.0.0": + "integrity" "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==" + "resolved" "https://registry.npmmirror.com/js-cookie/-/js-cookie-3.0.5.tgz" + "version" "3.0.5" + +"js-md5@^0.7.3": + "integrity" "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==" + "resolved" "https://registry.npmmirror.com/js-md5/-/js-md5-0.7.3.tgz" + "version" "0.7.3" + +"jsonc-parser@^3.2.0": + "integrity" "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" + "resolved" "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz" + "version" "3.2.0" + +"jsonfile@^6.0.1": + "integrity" "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==" + "resolved" "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz" + "version" "6.1.0" + dependencies: + "universalify" "^2.0.0" + optionalDependencies: + "graceful-fs" "^4.1.6" + +"local-pkg@^0.4.2", "local-pkg@^0.4.3": + "integrity" "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==" + "resolved" "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz" + "version" "0.4.3" + +"lodash-es@*", "lodash-es@^4.17.21": + "integrity" "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + "resolved" "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz" + "version" "4.17.21" + +"lodash-unified@^1.0.2": + "integrity" "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==" + "resolved" "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz" + "version" "1.0.3" + +"lodash.camelcase@^4.3.0": + "integrity" "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + "resolved" "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" + "version" "4.3.0" + +"lodash.clonedeep@^4.5.0": + "integrity" "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + "resolved" "https://registry.npmmirror.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" + "version" "4.5.0" + +"lodash.debounce@^4.0.8": + "integrity" "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + "resolved" "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + "version" "4.0.8" + +"lodash.foreach@^4.5.0": + "integrity" "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==" + "resolved" "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz" + "version" "4.5.0" + +"lodash.isequal@^4.5.0": + "integrity" "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + "resolved" "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz" + "version" "4.5.0" + +"lodash.throttle@^4.1.1": + "integrity" "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" + "resolved" "https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz" + "version" "4.1.1" + +"lodash.toarray@^4.4.0": + "integrity" "sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==" + "resolved" "https://registry.npmmirror.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz" + "version" "4.4.0" + +"lodash@*", "lodash@^4.17.21": + "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + "version" "4.17.21" + +"magic-string@^0.25.7": + "integrity" "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==" + "resolved" "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz" + "version" "0.25.9" + dependencies: + "sourcemap-codec" "^1.4.8" + +"magic-string@^0.26.7": + "integrity" "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==" + "resolved" "https://registry.npmmirror.com/magic-string/-/magic-string-0.26.7.tgz" + "version" "0.26.7" + dependencies: + "sourcemap-codec" "^1.4.8" + +"magic-string@^0.27.0": + "integrity" "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==" + "resolved" "https://registry.npmmirror.com/magic-string/-/magic-string-0.27.0.tgz" + "version" "0.27.0" + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.13" + +"magic-string@^0.30.0", "magic-string@^0.30.5": + "integrity" "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==" + "resolved" "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.5.tgz" + "version" "0.30.5" + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + +"memoize-one@^6.0.0": + "integrity" "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + "resolved" "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz" + "version" "6.0.0" + +"merge2@^1.3.0": + "integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + "resolved" "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz" + "version" "1.4.1" + +"micromatch@^4.0.4": + "integrity" "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==" + "resolved" "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz" + "version" "4.0.5" + dependencies: + "braces" "^3.0.2" + "picomatch" "^2.3.1" + +"mime-match@^1.0.2": + "integrity" "sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==" + "resolved" "https://registry.npmmirror.com/mime-match/-/mime-match-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "wildcard" "^1.1.0" + +"min-dash@^4.0.0", "min-dash@^4.1.0", "min-dash@^4.2.1": + "integrity" "sha512-qbhSYUxk6mBaF096B3JOQSumXbKWHenmT97cSpdNzgkWwGjhjhE/KZODCoDNhI2I4C9Cb6R/Q13S4BYkUSXoXQ==" + "resolved" "https://registry.npmjs.org/min-dash/-/min-dash-4.2.2.tgz" + "version" "4.2.2" + +"min-dom@^4.0.2", "min-dom@^4.0.3", "min-dom@^4.1.0": + "integrity" "sha512-TMoL8SEEIhUWYgkj7XMSgxmwSyGI+4fP2KFFGnN3FbHfbGHVdsLYSz8LoIsgPhz4dWRmLvxWWSMgzZMJW5sZuA==" + "resolved" "https://registry.npmjs.org/min-dom/-/min-dom-4.2.1.tgz" + "version" "4.2.1" + dependencies: + "component-event" "^0.2.1" + "domify" "^1.4.1" + "min-dash" "^4.2.1" + +"mlly@^1.1.0", "mlly@^1.2.0": + "integrity" "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==" + "resolved" "https://registry.npmmirror.com/mlly/-/mlly-1.4.2.tgz" + "version" "1.4.2" + dependencies: + "acorn" "^8.10.0" + "pathe" "^1.1.1" + "pkg-types" "^1.0.3" + "ufo" "^1.3.0" + +"mockjs@^1.1.0", "mockjs@>=1.1.0": + "integrity" "sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==" + "resolved" "https://registry.npmmirror.com/mockjs/-/mockjs-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "commander" "*" + +"moddle-xml@^10.1.0": + "integrity" "sha512-erWckwLt+dYskewKXJso9u+aAZ5172lOiYxSOqKCPTy7L/xmqH1PoeoA7eVC7oJTt3PqF5TkZzUmbjGH6soQBg==" + "resolved" "https://registry.npmjs.org/moddle-xml/-/moddle-xml-10.1.0.tgz" + "version" "10.1.0" + dependencies: + "min-dash" "^4.0.0" + "moddle" "^6.0.0" + "saxen" "^8.1.2" + +"moddle@^6.0.0", "moddle@^6.2.3": + "integrity" "sha512-bLVN+ZHL3aKnhxc19XtjUfvdJsS3EsiEJC7bT6YPD11qYmTzvsxrGgyYz1Ouof7TZuGw0lDJ1OLmEnxcpQWk3Q==" + "resolved" "https://registry.npmjs.org/moddle/-/moddle-6.2.3.tgz" + "version" "6.2.3" + dependencies: + "min-dash" "^4.0.0" + +"ms@2.0.0": + "integrity" "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "resolved" "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz" + "version" "2.0.0" + +"ms@2.1.2": + "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "resolved" "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz" + "version" "2.1.2" + +"namespace-emitter@^2.0.1": + "integrity" "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==" + "resolved" "https://registry.npmmirror.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz" + "version" "2.0.1" + +"nanoid@^3.1.25", "nanoid@^3.2.0": + "integrity" "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + "resolved" "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz" + "version" "3.3.6" + +"nanoid@^3.3.7": + "integrity" "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" + "resolved" "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz" + "version" "3.3.7" + +"next-tick@^1.1.0": + "integrity" "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + "resolved" "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz" + "version" "1.1.0" + +"normalize-path@^3.0.0", "normalize-path@~3.0.0": + "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "resolved" "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz" + "version" "3.0.0" + +"normalize-wheel-es@^1.2.0": + "integrity" "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" + "resolved" "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz" + "version" "1.2.0" + +"nprogress@^0.2.0": + "integrity" "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" + "resolved" "https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz" + "version" "0.2.0" + +"object-refs@^0.3.0": + "integrity" "sha512-eP0ywuoWOaDoiake/6kTJlPJhs+k0qNm4nYRzXLNHj6vh+5M3i9R1epJTdxIPGlhWc4fNRQ7a6XJNCX+/L4FOQ==" + "resolved" "https://registry.npmjs.org/object-refs/-/object-refs-0.3.0.tgz" + "version" "0.3.0" + +"on-finished@~2.3.0": + "integrity" "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==" + "resolved" "https://registry.npmmirror.com/on-finished/-/on-finished-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "ee-first" "1.1.1" + +"parseurl@~1.3.3": + "integrity" "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + "resolved" "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz" + "version" "1.3.3" + +"path-intersection@^2.2.1": + "integrity" "sha512-9u8xvMcSfuOiStv9bPdnRJQhGQXLKurew94n4GPQCdH1nj9QKC9ObbNoIpiRq8skiOBxKkt277PgOoFgAt3/rA==" + "resolved" "https://registry.npmjs.org/path-intersection/-/path-intersection-2.2.1.tgz" + "version" "2.2.1" + +"path-parse@^1.0.7": + "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "resolved" "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz" + "version" "1.0.7" + +"path-to-regexp@^6.2.0": + "integrity" "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==" + "resolved" "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz" + "version" "6.2.1" + +"pathe@^1.0.0", "pathe@^1.1.0", "pathe@^1.1.1": + "integrity" "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==" + "resolved" "https://registry.npmmirror.com/pathe/-/pathe-1.1.1.tgz" + "version" "1.1.1" + +"picocolors@^1.0.0": + "integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "resolved" "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz" + "version" "1.0.0" + +"picomatch@^2.0.4", "picomatch@^2.2.1", "picomatch@^2.3.1": + "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "resolved" "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz" + "version" "2.3.1" + +"pkg-types@^1.0.1", "pkg-types@^1.0.3": + "integrity" "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==" + "resolved" "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "jsonc-parser" "^3.2.0" + "mlly" "^1.2.0" + "pathe" "^1.1.0" + +"postcss@^8.1.10", "postcss@^8.4.13", "postcss@^8.4.32": + "integrity" "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==" + "resolved" "https://registry.npmmirror.com/postcss/-/postcss-8.4.33.tgz" + "version" "8.4.33" + dependencies: + "nanoid" "^3.3.7" + "picocolors" "^1.0.0" + "source-map-js" "^1.0.2" + +"preact@^10.11.2", "preact@^10.5.13": + "integrity" "sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ==" + "resolved" "https://registry.npmmirror.com/preact/-/preact-10.19.3.tgz" + "version" "10.19.3" + +"prettier@^2.8.7": + "integrity" "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==" + "resolved" "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz" + "version" "2.8.8" + +"prismjs@^1.23.0": + "integrity" "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==" + "resolved" "https://registry.npmmirror.com/prismjs/-/prismjs-1.29.0.tgz" + "version" "1.29.0" + +"queue-microtask@^1.2.2": + "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + "resolved" "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz" + "version" "1.2.3" + +"randomcolor@^0.6.2": + "integrity" "sha512-Mn6TbyYpFgwFuQ8KJKqf3bqqY9O1y37/0jgSK/61PUxV4QfIMv0+K2ioq8DfOjkBslcjwSzRfIDEXfzA9aCx7A==" + "resolved" "https://registry.npmjs.org/randomcolor/-/randomcolor-0.6.2.tgz" + "version" "0.6.2" + +"readdirp@~3.6.0": + "integrity" "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==" + "resolved" "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz" + "version" "3.6.0" + dependencies: + "picomatch" "^2.2.1" + +"regenerator-runtime@^0.14.0": + "integrity" "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + "resolved" "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" + "version" "0.14.1" + +"resize-detector@^0.3.0": + "integrity" "sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ==" + "resolved" "https://registry.npmjs.org/resize-detector/-/resize-detector-0.3.0.tgz" + "version" "0.3.0" + +"resolve@^1.22.0": + "integrity" "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==" + "resolved" "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz" + "version" "1.22.8" + dependencies: + "is-core-module" "^2.13.0" + "path-parse" "^1.0.7" + "supports-preserve-symlinks-flag" "^1.0.0" + +"reusify@^1.0.4": + "integrity" "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "resolved" "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz" + "version" "1.0.4" + +"rollup@^1.20.0||^2.0.0||^3.0.0||^4.0.0", "rollup@>=2.59.0 <2.78.0": + "integrity" "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==" + "resolved" "https://registry.npmmirror.com/rollup/-/rollup-2.77.3.tgz" + "version" "2.77.3" + optionalDependencies: + "fsevents" "~2.3.2" + +"run-parallel@^1.1.9": + "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==" + "resolved" "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "queue-microtask" "^1.2.2" + +"sass@*", "sass@^1.37.5": + "integrity" "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==" + "resolved" "https://registry.npmmirror.com/sass/-/sass-1.62.1.tgz" + "version" "1.62.1" + dependencies: + "chokidar" ">=3.0.0 <4.0.0" + "immutable" "^4.0.0" + "source-map-js" ">=0.6.2 <2.0.0" + +"saxen@^8.1.2": + "integrity" "sha512-xUOiiFbc3Ow7p8KMxwsGICPx46ZQvy3+qfNVhrkwfz3Vvq45eGt98Ft5IQaA1R/7Tb5B5MKh9fUR9x3c3nDTxw==" + "resolved" "https://registry.npmjs.org/saxen/-/saxen-8.1.2.tgz" + "version" "8.1.2" + +"scroll-into-view-if-needed@^2.2.28": + "integrity" "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==" + "resolved" "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz" + "version" "2.2.31" + dependencies: + "compute-scroll-into-view" "^1.0.20" + +"scule@^1.0.0": + "integrity" "sha512-sHtm/SsIK9BUBI3EFT/Gnp9VoKfY6QLvlkvAE6YK7454IF8FSgJEAnJpVdSC7K5/pjI5NfxhzBLW2JAfYA/shQ==" + "resolved" "https://registry.npmmirror.com/scule/-/scule-1.1.1.tgz" + "version" "1.1.1" + +"slate-history@^0.66.0": + "integrity" "sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==" + "resolved" "https://registry.npmmirror.com/slate-history/-/slate-history-0.66.0.tgz" + "version" "0.66.0" + dependencies: + "is-plain-object" "^5.0.0" + +"slate@^0.72.0", "slate@>=0.65.3": + "integrity" "sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==" + "resolved" "https://registry.npmmirror.com/slate/-/slate-0.72.8.tgz" + "version" "0.72.8" + dependencies: + "immer" "^9.0.6" + "is-plain-object" "^5.0.0" + "tiny-warning" "^1.0.3" + +"snabbdom@^3.1.0": + "integrity" "sha512-wHMNIOjkm/YNE5EM3RCbr/+DVgPg6AqQAX1eOxO46zYNvCXjKP5Y865tqQj3EXnaMBjkxmQA5jFuDpDK/dbfiA==" + "resolved" "https://registry.npmmirror.com/snabbdom/-/snabbdom-3.5.1.tgz" + "version" "3.5.1" + +"source-map-js@^1.0.2", "source-map-js@>=0.6.2 <2.0.0": + "integrity" "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + "resolved" "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz" + "version" "1.0.2" + +"source-map@0.6.1": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"sourcemap-codec@^1.4.8": + "integrity" "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + "resolved" "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz" + "version" "1.4.8" + +"ssr-window@^3.0.0-alpha.1": + "integrity" "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==" + "resolved" "https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz" + "version" "3.0.0" + +"statuses@~1.5.0": + "integrity" "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" + "resolved" "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz" + "version" "1.5.0" + +"strip-literal@^1.0.0": + "integrity" "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==" + "resolved" "https://registry.npmmirror.com/strip-literal/-/strip-literal-1.3.0.tgz" + "version" "1.3.0" + dependencies: + "acorn" "^8.10.0" + +"supports-color@^7.1.0": + "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" + "resolved" "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz" + "version" "7.2.0" + dependencies: + "has-flag" "^4.0.0" + +"supports-preserve-symlinks-flag@^1.0.0": + "integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + "resolved" "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + "version" "1.0.0" + +"tiny-svg@^3.0.0", "tiny-svg@^3.0.1": + "integrity" "sha512-9mwnPqXInRsBmH/DO6NMxBE++9LsqpVXQSSTZGc5bomoKKvL5OX/Hlotw7XVXP6XLRcHWIzZpxfovGqWKgCypQ==" + "resolved" "https://registry.npmjs.org/tiny-svg/-/tiny-svg-3.1.3.tgz" + "version" "3.1.3" + +"tiny-warning@^1.0.3": + "integrity" "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + "resolved" "https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz" + "version" "1.0.3" + +"to-regex-range@^5.0.1": + "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" + "resolved" "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "is-number" "^7.0.0" + +"tslib@2.3.0": + "integrity" "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + "resolved" "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz" + "version" "2.3.0" + +"type@^1.0.1": + "integrity" "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + "resolved" "https://registry.npmmirror.com/type/-/type-1.2.0.tgz" + "version" "1.2.0" + +"type@^2.7.2": + "integrity" "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + "resolved" "https://registry.npmmirror.com/type/-/type-2.7.2.tgz" + "version" "2.7.2" + +"ufo@^1.3.0": + "integrity" "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==" + "resolved" "https://registry.npmmirror.com/ufo/-/ufo-1.3.2.tgz" + "version" "1.3.2" + +"unimport@^1.0.1": + "integrity" "sha512-fOkrdxglsHd428yegH0wPH/6IfaSdDeMXtdRGn6en/ccyzc2aaoxiUTMrJyc6Bu+xoa18RJRPMfLUHEzjz8atw==" + "resolved" "https://registry.npmmirror.com/unimport/-/unimport-1.3.0.tgz" + "version" "1.3.0" + dependencies: + "@rollup/pluginutils" "^5.0.2" + "escape-string-regexp" "^5.0.0" + "fast-glob" "^3.2.12" + "local-pkg" "^0.4.3" + "magic-string" "^0.27.0" + "mlly" "^1.1.0" + "pathe" "^1.0.0" + "pkg-types" "^1.0.1" + "scule" "^1.0.0" + "strip-literal" "^1.0.0" + "unplugin" "^1.0.1" + +"universalify@^2.0.0": + "integrity" "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==" + "resolved" "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz" + "version" "2.0.1" + +"unpipe@~1.0.0": + "integrity" "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + "resolved" "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz" + "version" "1.0.0" + +"unplugin-auto-import@^0.11.2": + "integrity" "sha512-nvbL2AQwLRR8wbHpJ6L1EBVNmjN045RSedTa4NtsGRkSQFXkI1iKHs4dTqJwcKZsnFrZOAKtLPiN1/oQTObLZw==" + "resolved" "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.11.5.tgz" + "version" "0.11.5" + dependencies: + "@antfu/utils" "^0.7.0" + "@rollup/pluginutils" "^5.0.2" + "local-pkg" "^0.4.2" + "magic-string" "^0.26.7" + "unimport" "^1.0.1" + "unplugin" "^1.0.0" + +"unplugin@^1.0.0", "unplugin@^1.0.1": + "integrity" "sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==" + "resolved" "https://registry.npmmirror.com/unplugin/-/unplugin-1.6.0.tgz" + "version" "1.6.0" + dependencies: + "acorn" "^8.11.2" + "chokidar" "^3.5.3" + "webpack-sources" "^3.2.3" + "webpack-virtual-modules" "^0.6.1" + +"utils-merge@1.0.1": + "integrity" "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + "resolved" "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz" + "version" "1.0.1" + +"vite-plugin-compression@^0.5.1": + "integrity" "sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==" + "resolved" "https://registry.npmmirror.com/vite-plugin-compression/-/vite-plugin-compression-0.5.1.tgz" + "version" "0.5.1" + dependencies: + "chalk" "^4.1.2" + "debug" "^4.3.3" + "fs-extra" "^10.0.0" + +"vite-plugin-mock@^2.9.4": + "integrity" "sha512-YTQM5Sn7t+/DNOwTkr+W26QGTCk1PrDkhGHslTJ90lIPJhJtDTwuSkEYMAuLP9TcVQ/qExTFx/x/GE3kxJ05sw==" + "resolved" "https://registry.npmmirror.com/vite-plugin-mock/-/vite-plugin-mock-2.9.8.tgz" + "version" "2.9.8" + dependencies: + "@types/mockjs" "^1.0.4" + "chalk" "^4.1.2" + "chokidar" "^3.5.2" + "connect" "^3.7.0" + "debug" "^4.3.2" + "esbuild" "^0.14.36" + "fast-glob" "^3.2.7" + "path-to-regexp" "^6.2.0" + +"vite-plugin-vue-setup-extend@^0.4.0": + "integrity" "sha512-WMbjPCui75fboFoUTHhdbXzu4Y/bJMv5N9QT9a7do3wNMNHHqrk+Tn2jrSJU0LS5fGl/EG+FEDBYVUeWIkDqXQ==" + "resolved" "https://registry.npmmirror.com/vite-plugin-vue-setup-extend/-/vite-plugin-vue-setup-extend-0.4.0.tgz" + "version" "0.4.0" + dependencies: + "@vue/compiler-sfc" "^3.2.29" + "magic-string" "^0.25.7" + +"vite@^2.5.10", "vite@^2.9.16", "vite@>=2.0.0": + "integrity" "sha512-X+6q8KPyeuBvTQV8AVSnKDvXoBMnTx8zxh54sOwmmuOdxkjMmEJXH2UEchA+vTMps1xw9vL64uwJOWryULg7nA==" + "resolved" "https://registry.npmmirror.com/vite/-/vite-2.9.16.tgz" + "version" "2.9.16" + dependencies: + "esbuild" "^0.14.27" + "postcss" "^8.4.13" + "resolve" "^1.22.0" + "rollup" ">=2.59.0 <2.78.0" + optionalDependencies: + "fsevents" "~2.3.2" + +"vue-demi@*": + "integrity" "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==" + "resolved" "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz" + "version" "0.14.10" + +"vue-demi@^0.13.11": + "integrity" "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==" + "resolved" "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz" + "version" "0.13.11" + +"vue-echarts@^6.7.2": + "integrity" "sha512-vXLKpALFjbPphW9IfQPOVfb1KjGZ/f8qa/FZHi9lZIWzAnQC1DgnmEK3pJgEkyo6EP7UnX6Bv/V3Ke7p+qCNXA==" + "resolved" "https://registry.npmjs.org/vue-echarts/-/vue-echarts-6.7.3.tgz" + "version" "6.7.3" + dependencies: + "resize-detector" "^0.3.0" + "vue-demi" "^0.13.11" + +"vue-i18n@^9.1.9": + "integrity" "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==" + "resolved" "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.2.2.tgz" + "version" "9.2.2" + dependencies: + "@intlify/core-base" "9.2.2" + "@intlify/shared" "9.2.2" + "@intlify/vue-devtools" "9.2.2" + "@vue/devtools-api" "^6.2.1" + +"vue-router@^4.2.4": + "integrity" "sha512-9PISkmaCO02OzPVOMq2w82ilty6+xJmQrarYZDkjZBfl4RvYAlt4PKnEX21oW4KTtWfa9OuO/b3qk1Od3AEdCQ==" + "resolved" "https://registry.npmmirror.com/vue-router/-/vue-router-4.2.4.tgz" + "version" "4.2.4" + dependencies: + "@vue/devtools-api" "^6.5.0" + +"vue@^2.6.12 || ^3.1.1", "vue@^3.0.0", "vue@^3.0.0-0 || ^2.6.0", "vue@^3.0.5", "vue@^3.2.0", "vue@^3.2.40", "vue@^3.2.47", "vue@>=3.2.0", "vue@3.3.13": + "integrity" "sha512-LDnUpQvDgsfc0u/YgtAgTMXJlJQqjkxW1PVcOnJA5cshPleULDjHi7U45pl2VJYazSSvLH8UKcid/kzH8I0a0Q==" + "resolved" "https://registry.npmmirror.com/vue/-/vue-3.3.13.tgz" + "version" "3.3.13" + dependencies: + "@vue/compiler-dom" "3.3.13" + "@vue/compiler-sfc" "3.3.13" + "@vue/runtime-dom" "3.3.13" + "@vue/server-renderer" "3.3.13" + "@vue/shared" "3.3.13" + +"vuex@^4.0.2": + "integrity" "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==" + "resolved" "https://registry.npmmirror.com/vuex/-/vuex-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "@vue/devtools-api" "^6.0.0-beta.11" + +"webpack-sources@^3.2.3": + "integrity" "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==" + "resolved" "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz" + "version" "3.2.3" + +"webpack-virtual-modules@^0.6.1": + "integrity" "sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==" + "resolved" "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz" + "version" "0.6.1" + +"wildcard@^1.1.0": + "integrity" "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==" + "resolved" "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz" + "version" "1.1.2" + +"zrender@5.5.0": + "integrity" "sha512-O3MilSi/9mwoovx77m6ROZM7sXShR/O/JIanvzTwjN3FORfLSr81PsUGd7jlaYOeds9d8tw82oP44+3YucVo+w==" + "resolved" "https://registry.npmmirror.com/zrender/-/zrender-5.5.0.tgz" + "version" "5.5.0" + dependencies: + "tslib" "2.3.0"